摘 要: 介绍了一个完整的基于PC机和DSP(TMS320C50)的通用语音信号处理系统。该系统通过编程设计可实现不同的语音信号分析和处理算法,能针对不同的应用和新的处理方法,不断添加DSP程序模块,以此来改进和扩充系统的功能。另外,该系统还提供了高的语音数据采集和语音数据回放功能,且整个系统有较好的通用性和较高的运行效率。 关键词: 语音处理 数字信号处理 TMS320C50芯片
|
语言是人类相互沟通信息的重要工具。随着现代科学技术的发展,特别是语音通信和各种语音产品的广泛普及,语音信号的数字化处理在越来越多的领域中发挥着巨大的作用。目前,各种以语音信号数字处理为特点的商品已经进入市场,商品化的语音信号处理机也已问世,如KAY公司的CSLTM(Computerized Speech Lab)。
|
一个完备的语音信号处理系统不但要具备语音信号的采集和回放功能,而且更重要的是要能完成复杂的语音信号分析和处理算法。通常这些算法运算量大,且又要满足实时或准实时的快速高效处理要求,因此需采用高速DSP芯片。另外,在要求系统满足较好的通用性的同时,针对不同的应用和不断出现的新处理方法,还要使系统便于功能的改进和扩展。 为此,我们以PC机为主机,以TMS320C50为信号处理设计了该系统,其硬件配置框图见图1。 |
|
其中,TMS320C50是美国Texas Instrument公司的16位定点DSP产品,它包括改进的哈佛(Harvard结构、高性能CPU、片内存储器、在片外围接口以及一套高效的汇编指令集,计算速度可达40Mips,且性能价格比好。
|
1 系统结构 系统硬件配置如图1所示。 |
1.1 PC主机 考虑到系统的通用性和易实现性,我们把PC机作为系统的主机,其具体配置由不同的应用确定。它主要提供系统的人机对话界面,以控制完成系统的各项功能。 1.2 PREPROC部件 整个系统采用全模块化结构,配置灵活,调试维护方便,支持软件实现的各种语音数字处理算法。整个系统由一台PC机和四个模块部件组成。这四个模块部件分别为输入信号放大部件(PREPROC)、功率放大部件(POSPROC)、高速数字信号处理部件(DSP)和18位高采样回放部件(AD/DA)。其中,DSP部件完成具体的信号处理任务,并控制AD/DA部件完成语音信号的采集和回放;PREPROC部件完成对输入语音信号的放大和防混叠滤波;POSPROC部件完成平滑滤波和功率放大。 该部件对话筒输入信号或线路输入信号进行放大和防混叠滤波处理,其输出供给AD/DA部件进行采样。其设计指标为:话筒输入范围1mV~31.6mV,线路输入范围100mV~3.16V,输入阻抗10kΩ,部件增益可调,在标称范围内可将信号放大到AD输入的满刻度±10V。其中的防混叠滤波器作为独立的插件,详细设计在后面说明。 1.3 POSPROC部件 该部件对D/A送出的模拟信号进行恢复滤波和功率放大,其输出供给扬声器。可输出功率为1W,用来推动8Ω的扬声器。其中恢复滤波器作为独立的插件,详细设计在下面说明。 1.4 滤波器插件 本系统提供10kHz和20kHz两种滤波器插件供选择。为适应不同的应用需要,系统可配置不同截止频率的滤波器插件或外接截止频率可调的滤波器。 系统提供的防混叠滤波器和恢复滤波器,分别由两片MAX274及其外接电阻构成的两个八阶切比雪夫低通滤波器串联构成。由器件手册可知,MAX274由四个同样的滤波单元组成,每个滤波单元就是一个二阶滤波器。为了方便起见,将四个滤波单元依次编号A、B、C、D。由《有源滤波器设计》可查得通带起伏为0.2dB的八阶切比雪夫低通滤波器的归一化参数B和C,然后,由MAX274器件手册可知:对于每一个滤波单元,有:
在应用中,我们把MAX274的FC脚接地,则Rx/Ry=0.2,由此可计算出各个电阻值。实际应用中,因为阻值较特殊,每个电阻值须由两个精密电阻串联得到。 1.5 DSP部件 该部件是块插在ISA总线上的半长板,它控制AD/DA部件完成语音数据的采集和回放,并根据软件完成相应的信号分析,是该系统的关键部件。它由TMS320C50(工作频率40MHz)、双端口RAM(4K×8)、FIFO(1K×8)及相应的控制电路组成。 使用时,DSP程序由主机通过双端口RAM到C50的内部程序区。采样前,C50通过内部定时器Timer来设置AD/DA部件的采样频率。单个样点采样完成后,AD/DA部件产生C50硬件中断INT1,C50响应中断INT1,将来自AD的采样数据写入FIFO,主机通过读FIFO获得采样数据;语音回放前,C50按照回放频率设置内部定时器Timer,使之产生中断INT1;回放时,主机将数据写入FIFO,C50定时响应中断INT1,从FIFO读取数据并将它送到DA输出;信号处理任务在C50内部完成,单次处理的输入输出数据通过双端口RAM在主机与DSP部件之间交换。 为了方便地编写软件,在此我们列出DSP部件与PC机以及AD/DA部件之间的接口参数: 对于PC ·双端口RAM的地址范围是D800H(段地址):0000H~0FFFH(偏移地址)。 ·命令口CMD的地址为300H,命令字设计如下:
BIT0:复位FIFO:BIT1、BIT7:暂时未用;BIT2:复位TMS320C50;BIT3:PC与C50的握手信号:BIT4~6:产生C50中断INT2~INT4。 ·状态口STS的地址为0301H,状态字设计如下: BIT0:FIFO2空标志;BIT1:FIFO1满标志;BIT2:FIFO1半满标志;BIT3:C50与PC的握手信号;BIT4~6暂时未用。 ·FIFO1的写地址为302H,读地址为303H。 对于DSP ·双端口RAM的地址范围是F000H~FFFFH。 ·状态口STS的地址为PA1,状态字如下:
BIT5:FIFO1空标志;BIT6:FIFO2半满标志;BIT7:FIFO2满标志;其余位暂时未用。 ·FIFO2写地址为PA2,读地址为PA3。 ·AD采样的地址为PA8。 ·DA采用两级锁存,级锁存地址为PA11,第二级锁存地址为PA10。 1.6 AD/DA部件 该部件是一块插在PC机ISA总线上的半长板,其采样频率达100kHz,它在DSP部件的控制下完成语音数据的采样和回放。该部件的输入输出范围为±10V,分辨率为16bit。A/D转换的数据为二进制补码格式,D/A转换的数据为偏移二进制码格式。
|
2 系统工作的软件流程 该语音信号处理系统以实时方式或中断方式工作,它们的软件流程和结构大体相同。这里以中断方式为例说明软件流程,如图2和图3所示。 |
|
整个工作流程主要由主机控制流程和DSP中断处理流程构成。其中INT1用于语音信号的采样和回放;INT2用于主机向DSP传送程序运行参数;INT3用于主机向DSP传送DSP程序(对于不同的分析处理有不同的DSP程序)。图3a为DSP主程序流程图,图3b为INT1中断服务流程图图3c为INT2中断处理流程图3d为INT3中断服务流程。 |
|
3 系统调试结果 对各部件独立进行电性能测试,全部达到技术指标要求后,对整个系统进行联调。在系统全部电性能指标达到要求后,又进行了大量的软件测试,结果均满足设计要求。目前,该系统已被成功地运用于"话者自动识别"的实验,利用它可完成语音信号的LPC分析,不同点数的FFT分析,实时频谱分析等。
|
参考文献:
[1]. TMS320C50 datasheet https://www.dzsc.com/datasheet/TMS320C50_1011926.html.
[2]. MAX274 datasheet https://www.dzsc.com/datasheet/MAX274_1058312.html.
[3]. PA10 datasheet https://www.dzsc.com/datasheet/PA10_539409.html.