基于 DM642语音处理系统研究与实现
2010-09-13崔丽珍马勇王慧琴
崔丽珍, 马勇, 王慧琴
(内蒙古科技大学信息工程学院,内蒙古包头 014010)
0 引言
语音通信是现代通信中一种最简单便捷的方式,可以迅速的实现信息的传递,随着通信技术的不断发展和社会的不断进步,人们对信息的需求也越来越丰富,不仅仅局限在语音方面,对图像、视频等多媒体技术需求更加广泛,而语音处理作为通信技术中基础的内容,要求更高,实现实时性更强、话音质量更逼真,所以对语音信号处理研究也成为一个热点。DSP技术的发展为语音处理提供了有利的条件,其独特的哈佛结构和快速实现各种数字信号处理算法的优点[1]。
1 硬件结构
现采用 TI的 TMS320DM642(简称 DM642)[2],该芯片是TI公司于2003年左右推出的一款 32位定点 DSP芯片,主要面向数字媒体,属于 C6000系列 DSP芯片。DM642保留了C64x原有的内核结构,工作频率由内部倍频器设置,可以达到 500 MHz、600MHz、720 MHz。 DM652采用 TI公司第 2代增强型超长指令集(VelociT1.2)片上带有多通道串行音频接口,可同时处理 4路立体声输入/输出音频信号[3]。
TLV320AIC23B(简称 AIC23)是一款集成了模拟功能的高性能立体声音频编解码器,支持 MIC和LINE IN两种输入方式,输入/输出都具有可编程增益。AIC23与 DM642的接口有两个,一个是控制接口,用于设置 AIC23B的工作参数;另一个是数据口,用于输入/输出 AIC23的 A/D,D/A数据[4]。
1.1 硬件设计
AIC23和DM642的连接图如图 1所示,数据口可以与DM642的McASP接口实现无缝连接。在帧同步信号(LRCIN/LRCOUT)作用下,串行口先传送左声道数据,然后再传送右声道数据。DSP的 McASP口每接收(或送出)一个字(即当 XDATA或 RDATA标志位由 0跳变为 1时)其内部会自动触发一次事件,进而触发相应 EDMA通道开始一次数据传输。由锁相环芯片 PLL1708提供音频编解码器的工作时钟,时钟频率为 18.432MHz[5]。
图 1 TLVAIC23B与 DM642接口连接
1.2 控制接口
TLV 320AIC23B的控制接口则通过I2C总线与DM642连接[6]。TLV320AIC23B内部有 11个可编程控制寄存器通过不同设置(见表 1),可以改变芯片的工作状态,如采样率、左右声道音量等。这些寄存器都是通过AIC23B的控制接口来编程的。控制接口可选择采用 SPI或 I2C接口,外部引脚MODE的状态决定采用哪种接口方式[7]。
表 1 AIC23B配置寄存器
2 DSP软件设计
该系统实现了一个语音采集 -回放任务,用 48K/秒的采样率采集立体声音频输入,用给定的回声控制参数叠加数字回声播放出来。程序有单个任务组成(tsk AudioDemo),具体实现如数据流程图如图 2所示[8]。
图2 数据流程
2.1 DSP/BIOS配置
在 Task Manager中,除了默认的 TSK_idle之外,根据需要建立一个 Task,即 tskAudio,对于 tskAudio,由于其存储数据量大,将其堆栈分配到外部 SDRAM。堆栈的大小可以使用DSP/BIOS所提供的 Kernal/Object View工具查看实际需求来估计。该设计为 4 096。然后将task配置中的函数指定为源代码中对应的函数。例如,源代码中函数为tskAudio,则配置为_tskAudio。
2.2 具体驱动设计
首先,需要使用配置工具建立驱动程序的入口。在DSP/BIOSconfig下的 cdb文件中,依次选择 Input/Output——Device Drivers— — User-defined Drivers[9],一 般已 经添加 了udevCodec,需要的话可以自己添加或编辑。右键单击选择Properties来编辑其属性,其属性应如下设置:
Comment:可以加入自己的注释,Init function:键入_EVMDM642_EDMA_AIC23_init,Function table ptr:键入 _EVMDM642_EDMA_AIC23_Fxns,unction table type:选择 IOM_Fxns,Device id:这一项会被自动忽略,因为 DM642EVM板上只有一块 TLV320AIC23Device params ptr:这是 TLV320AIC23参数结构的入口指针,使用缺省参数时设为 0x0,Device global data ptr:必须设置为 0x0正确配置驱动程序入口后,就要按照需要设置相关的参数了。下面具体讨论 TLV320AIC23参数的设置在一般的应用中,主要需要修改的是 aic23Config,它是TLV 320AIC23控制寄存器值的控制结构体,需要通过它来控制TLV 320AIC23的工作模式、输入输出选择、采样率等重要参数。
2.3 数字回声算法程序主要代码
3 结语
设计了一个通用的音频处理系统,该系统主要运用TI提供的 CODEC驱动程序来实现语音数据的处理,并且实现了数字回声处理,算法主要在数字回声处理程序里,可以方便进行系统的修改和二次开发,具有较高的实用性。
[1]张健,吉立新,安克.基于 DSP和 FPGA的高速实时语音数据处理的设计与实现[J].通信技术,2008,41(02):71-72.
[2]王跃宗,刘京会.TMS320DM642DSP应用系统设计与开发[M]北京:人民邮电出版社,2009,10-25.
[3]庄益强,余轮.基于 DM642的 X264视频监控系统的软件实现[J].通信技术,2007,40(12):397-399.
[4]齐敏,王玲,韩韬.基于 TMS320DM642的实时语音处理系统[J].电声技术,2009(01):65-67.
[5]涂水林,薛正明.TMS320DM642与音频编解码器的接口设计[J].电声技术,2006(09):26-29.
[6]胡涛,陈超.TLV320AIC23B与 TMS320DM642的接口设计[J].仪表技术与传感器,2006(06):36-37.
[7]TLV320AIC23B Stereo Audio CODEC.8-to 96-kHz,With Inegarated Headphone[EB/OL].(2004-02-01)[2010-02-01].http://www.ti.com.
[8]Audio Loopback/Echo Example[EB/OL].(2004-02-01)[2010-02-01].http://www.ti.com.