您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

TMS320VC5402 DSP与ISD4004语音录放芯片

时间:2007-1-20栏目:电子通信论文


2 信息管理

在采用本模块的拟人机器人语言交互系统中,若干条语音按顺序分别被录入到芯片,并将期编程为1、2、3等。DSP可以通过SPI接口获得每次录音结束时的ISD内部信息指针,据此构建一个信息地址表(MAT),并将此表存入Flash Memory中,作为以后录放、删除操作时信息管理的依据。

ISD4004内部存储器分为2400行,每行1600列。对器件寻址即选择一行,从行首开始录放,而每行中的列不可寻址。对于8kHz采样率的ISD4004,采样间隔为125μs。器件地址分辨率可按如下计算:

(1/Fs)×1600=200ms

2.1 MAT

由于ISD4004内部可寻址多达2400行,而每行固定存储200ms语音,为了可录放、删除任意长度的语音,有必要建立MAT。MAT跟踪每一条语音的开始地址以及每一个信息碎块的开始结束地址。ISD4004共2400行,实际只需要12位地址即可完成寻址。为节省MAT存储空间,将地址最高位bit15作为语音起始点标志。建立MAT的规则如下:

(1)MAT表项值全为0(0000 0000 0000 0000):表示对应行未存储任何语音;

(2)MAT表项值的bit15为1(1XXX XXXX XXXX XXXX),表示对应的是某句语音的起始行;

(3)MAT表项值的bit15为0,其余各位是有效地址(0XXX XXXX XXXX XXXX),表示对应的行是某句语音的一行,但不是起始行;

(4)ISD的第一行总是某句语音的起始行。

同一句语音的地址在MAT中总是连续存储的。由若干行组成的句语音,它的各行地址总是从小到大,但不一定两两相连。以行地址为表项的MAT,所要求的存储空间是较大的。本例中为2400行语句,则要求MAT具有2400个表项。为了减小MAT大小,也可对语音进行分块。若8以位为一个语音块,则MAT大小减小为300个表项。经过几次录音和删除手,建立的MAT如表1所示。

表1 MAT实例

MAT bit15 实际行地址 句 1000 0000 0000 0000 1 0000 0000 0000 0000 1 0000 0000 0000 0001 0 0000 0000 0000 0001 0000 0000 0000 0002 0 0000 0000 0000 0002 1000 0000 0000 0003 1 0000 0000 0000 0003 2 0000 0000 0000 0005 0 0000 0000 0000 0005 0000 0000 0000 0006 0 0000 0000 0000 0006 1000 0000 0000 0004 1 0000 0000 0000 0004 4 0000 0000 0000 0007 0 0000 0000 0000 0007 0000 0000 0000 0008 0 0000 0000 0000 0008

2.2 信息管理操作

放音时,DSP从MAT表头开始搜索bit15为1的表项。要播放第几条语句,则寻找第几个bit15为1的表项。由于RAC的周期和器件的行相同,且其低脉冲时间长达25ms,在播放当前行语音的同时,RAC触发DSP的INT3中断。INT3中断服务程序验证下一行bit15是否为1,若不为1则将该行地址送入ISD,则输入的地址不会立刻生效,而是在缓冲器中等待当前结束;若为1则指示下一行为新语句开始地址,DSP不送任何指令。放音遇到EOM或者OVF时产生INT中断,停止放音。

录音时,按NUM键启动录音操作,DSP首先找出MAT中的个全0行,发录音指令;在录制当前行的同时,DSP等待RAC信号触发INT3中断,中断服务程序继续寻找全0行、发带该行地

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页