基于DSP的语音采集与回音效果的系统实现
引言
数字技术的应用几乎已经渗透到现代科技的每一个角落,而数字音频技术则是应用最广泛的领域之一。现在大量的数字音频设备已相当成熟,利用软件在已有的硬件平台上实现不同的功能已成为一种趋势,软件编程的灵活性给很多设备增加不同的功能提供了方便。和其它数字系统一样,DSP系统具有许多模拟系统所不具备的优点,如灵活、可编程,支持时分复用,易于模块化设计,可重复使用,可靠性高等。随着DSP技术的发展,以DSP为内核的设备越来越多。基于DSP技术的开发应用正在成为数字时代应用技术领域的潮流。 在实际生活中,当声源遇到物体时一般会发生反射,反射的声波和声源声波一起传输,听者会发现反射声波部分比声源声波慢一些从而形成回音。而现在,在已知一个数字音源后,也可以利用计算机,以数字方式通过计算来模拟回声效应。简单地讲。就是在原声音流中叠加延迟一段时间后的声流来实现回音效果。如此产生的回音,我们称之为数字回音。 1 主要器件介绍 本设计选用的TLV320AIC23是TI公司生产的一款高性能的多媒体数字语音编解码器,它的内部ADC和DAC转换模块带有完整的数字滤波器,其数据传输宽度可以是16位、20位、24位和32位,采样频率范围为8~96 kHz,并可通过控制接口来编辑该器件的控制寄存器,同时可支持SPI和I2C两种控制模式。TLV320AIC23的控制模式由MODEM管脚决定,本系统选用I2C模式。 TMS320VC5509A是TI公司C5000 DSP系列中的新一代产品。该DSP对C54X有很好的继承性。并与C54x源代码兼容,从而有效地保护用户在软件上的投资。TMS320VC5509A功耗低、成本低,并可在有限的功率条件下保持最好的性能。 2 系统方案设计 2.1 系统工作原理 该回音系统中的I2C接口模块由串行数据SDA和串行时钟SCL组成,SDA和SCL均为双向接口。连接在同一总线上的I2C设备可以工作在多主线工作模式下。包括TMS320C55x DSP在内的每个I2C设备都有唯一的设备地址可供软件寻址。其中,主设备用于发送时钟并启动数据传输,被主设备寻址的则为从设备。这些设备根据各自的功能,既可以作为发送器,也可以作为接收器。 当系统进行初始化配置时,DSP通过I2C总线将配置命令发送到TLV320AIC23,并在配置完成后TLVAIC23开始工作。 对于DSP的多通道缓冲串口(MCBSP)设置,由于TLV320AIC23采样输出的是串行数据,因此,需要协调好与之相配的DSP的串行传输协议。因而必须对DSP的串口进行正确设置。MCBSP串口一般可通过六个引脚让数据通路和控制通路与外部设备相连。数据经MCBSP串口与外没的通信一般通过DR和DX脚来传输,控制同步信号则由CLKX、CLKR、FSX、FSR等四引脚来完成。由于MCBSP串口的数据线DR和DX带有缓存寄存器,而帧同步信号FSX、FSR以及时钟信号CLKX、CLKR都具有可编程性,因此,它与TLV320A-IC23之间的接口设计非常灵活。从这些特点可以看到:将MCBSP串口设置为SPI模式,并使串口的接收器和发送器同步,然后由TLV320AIC23的帧同步信号LRCIN、LRCOUT启动串口传输,同时将发送接收的数据字长设定为32 Bit (左声道16Bit,右声道16 Bit)单帧模式,就可以方便地实现与TLV320AIC23之间的无缝连接。 输入语音信号时,TLV320AIC23先通过其中的AD转换采集输入的语音信号,每采集完一个信号便将数据发送到DSP的McBSP接口上,以便DSP可以读取语音数据。每个数据均为16位无符号整数,左右通道各有一个数值。 语音信号输出时,可由DSP将语音数据通过McBSP接口发送给TLV320AIC23,再由TLV320AIC23的DA器件将他们变成模拟信号输出。 2.2 硬件电路设计 TLV320AIC23能在数字和模拟电压下工作,并可与TMS320C55x DSP的I/O电压兼容,因而能够实现与C55x DSP的McBsP (多通道缓冲串口)端口的无缝连接,以使系统设计更加简单。 系统中,TLV320AIC23的主时钟11.2896MHz直接南DSP时钟产生,MODE接数字地表示利用I2C控制接口来对TLV320AIC23数据进行传输控制。SCLK和SDIN是TLV320AIC23控制端口的移位时钟和数据输入端,它们将分别与TMS320VC5509的I2C模块端口SCL和SDA相连。TMS320VC5509A的MCBSP0应工作在SPI模式下,这样可使MCBSP0的接收器和发送器同步。收发时钟信号CLKX0和CLKR0由TLV320AIC23的串行数据传输时钟BCLK提供,并由TLV320AIC23的帧同步信号LRCIN、LRCOUT启动串口数据传输,DX0和DR0分别与TLV320AIC23的DIN和DOUT相连,可用于完成DSP与TLV320AIC123之间的数字通信。 2.3 软件设计 本系统的软件主要由程序和数字回音处理程序两部分组成。其中主程序主要完成系统的初始化,如EMIF(外部存储器接口)、CPU频率、TLV320AIC23的初始化等,结束之后,再循环调用数字回音模块;数字回音模块主要用于初始化语音缓冲区和工作变量、读取语音数据并保存,然后根据延迟参数读回保存数据,并根据音效参数与当前声音混响把最后的语音数据输出到McBSP0。 在对TLV320AIC23寄存器进行写操作时,应注意: (1)在写过一次I2C地址后,只能对一个寄存器进行写操作,而不能一次性对所有寄存器进行写操作。也就是说,在写每个寄存器之前都要按部就班的写一遍I2C地址。 (2)I2C模式下,数据是分为三个8 Bit写入的,而TLV320AIC23有7位地址和9位数据,也就是说,需要把数据项上面的最高位补充到第二个8Bit中的最后一位。 (3)存对控制寄存器编程时,对应于每一次工作状态的改变,不能仅仅修改某个寄存器的值,而要对这十个寄存器都重新写入一遍,否则,系统将无**常工作,而且应首先写0到初始化寄存器以启动初始化,同时还应埘所有寄存器进行复位处理。 2.4 系统效果的实现 编程过程中,在选择需要制作数字回音时,同时可选择设置两个参数delay和effect。这样,在产生回音时,就可分别调整这两个参数,从而调整和控制回音的延时及响度。系统工作时,假如话筒里有声音输入,我们可以在听筒里听到两个声音,其中一个是原声,而另一个就是制作的数字回音,数字回音的延时及强弱可由参数delay和effect决定。 如有必要,还可通过适当的程序设计,以在这个系统的基础上实现二重回音、三重回音等,也可以模拟真实场景里的多重回音效果。 3 结束语 20世纪90年代以后,DSP芯片的发展突飞猛进。其功能日益强大,性价比也不断上升,开发手段不断改进。DSP芯片已成为集成电路中发展最快的电子产品。DSP芯片迅速成为众多电子产品的核心器件,而DSP系统也被广泛地应用于当今技术革命的各个领域,可以说,基于DSP技术的开发应用正在成为数字时代应用技术领域的一种潮流,本系统只是DSP系统应用的一个实例。
|