高效率多通道语音记录系统的研制
介绍一种采用一片TMS320C542实现4路电话压缩的话音处理卡,对处理卡硬件结构和RPE-LTP算法及DSP实现作了叙述,最后提出一种基于该处理卡的语音记录系统的构想。
关键词: 语音记录器 语音编解码 数字信号处理器(DSP)规则脉冲激励-长时线性预测(RPE-LEP) ADPCM算法
多通道的语音记录和回放系统有着广泛的应用背景,主要应用在语音记录、话音档案、数字语音存储等领域。随着计算机性价比不断提高和应用的普及,由计算机管理的语音系统越来越受到重视。
传统的多通道语音记录系统,过去由于受到DSP运算能力和价格的限制,一般采用ITU-G.726建议书提出的ADPCM作为压缩语音的算法。该算法运算量少,最低码率为16kb/s,但低码率时语言质量较差。近年来DSP的性价比不断提高,这使性能更好的语音压缩算法可以应用于多路语音压缩系统。本项目采用了美国德州仪器(TI)的DSP芯片TMS320C542PGE-40,完成了在GSM系统中使用的规则脉冲激励-长时线性预测(RPE-LTP)算法,实现了高效率的多通道语音记录系统。
本系统具有面向应用的配置和灵活的扩展接口。由配置的不同,系统可支持4~8路话音处理。系统采用ISA总线与PC机接口。为了加强业务扩展能力,卡上保留一个外部接口,可用于功能扩展。在无扩展部分时支持4路话音处理。
1 硬件结构
硬件框图如图1所示。系统硬件包括’C542、扩展RAM、ISA总线接口、模拟接口、扩展接口(虚线框中部分)五大部分。其中,模拟接口(ADC)为TMS320AC01,扩展RAM为TC55B8016,两者都是TI的产品。FIFO为IDT公司的IDT7201。
’C542是系统的核心部件,它的功能是进行底层硬件的管理和语音数据的压缩。’C542是TI公司于1995年推出的面向移动通信的新一代产品。它采用改进的哈佛体系结构,集成了许多并行处理单元,使它特别适合完成高复杂度的算法。本系统采用的’C542具有40MIPS的运算能力。’C542还具有几种高效的片内外设:1个64K×16的并口,2个同步串口,1个8位的主机接口(HPI)和1个定时器。它能响应5个中断,具有总线挂起功能。’C542丰富的片内外设极大地减省了片外电路。
模拟接口由以主从方式级连在一起的四个’AC01组成,这四个ADC挂接在’C542的串口0上,如图2所示。因为四路输入电路相同故只完整画出一路。此时’C542的同步串口工作在触发模式,即:数据的传输由’AC01主动触发。四个’AC01通过FSD信号(类似于接力棒)以时分复用方式与串口通信。首先,主’AC01发出帧同步脉冲,传输一个采样点。串行传完16位信息后,主’AC01通过FSD信号通知第一个从’AC01开始传数,同时触发帧同步。第一个从’AC01传完一个样值后通知第二个从’AC01,依此类推。待四个ADC都传完第一个样值后再在由主’AC01传输第二个样值,如此循环。在传入’C542的16位信息中,高14位是2进制补码形式的样值。低2位为00时表示该值是由主’AC01传入,为01表示该值是由从’AC01传入。DSP程序根据这一点区分各路语音数据。由图2可见’C542串口的收、发帧同步信号(FSR、FSX)被接在一起,所以,’C542在收到一个数据的同时也向当时发数的’AC01发出一个数据。’AC01将收到的数据通过它的DA部分转变成模拟量。
’AC01前端的电路为输入整形电路。Vi首先经过一个低通滤波器,然后通过电压跟随器被运算电路分解成两个差分分量in+,in-。其中in+=Vm+Vi/2;in-=Vm-Vi/2。’AC01工作在+5V,Vm是它提供的中值电压:Vm=2.5V。在输入前端Vi已被限制在±5V的范围。
在整个系统中,PC作为数据存储器和人机交换信息窗口,它的作用是存储数据和管理整个插卡运行,在系统的初始化阶段PC机还要为DSP装载程序。PC与’C542的接口部分由ISA总线和’C542的主机接口HPI组成。HPI是’C542的片内外设,它为’C542内部的一段2K字的RAM提供一个窗口,主机通过此窗口可以直接访问这段RAM。可见,这段2K字RAM的作用就相当于传统片外片扩展的双口RAM。因为HPI的RAM在DSP片内,所以它能提供更高的读写效率。同时主机接口作为一个’C542的部件,它还能用来中断主机和接受主机中断,’C542还有HPI的bootload方式。在本系统中,主机首先用’C542的HPI bootload方式将程序载入’C542中,并让它运行,然后再以HPI RAM中的160字作为缓冲区来与’C542交换数据。
有了上面三个基本部分,本系统已经具备了同时记录和播放4路语音的能力。我们注意到,此时’C542的潜力还没有得到充分的发挥。实际上,4路GSM编解码(这种情况不常用)仅用掉约20MIPS的运算能力,为其运算能力的一半。另外,并口、串口1、定时器等片内外设都没有使用。图1的虚框内的部分用来扩展这部分资源。
扩展RAM是16K字的SRAM。它直接挂在’C542的地址、数据总线上,可以实现0等待周期读写。扩展接口是板外电路访问板上资源(包括并口、串口1、定时器、中断等)的途径。利用这两个部件可以进一步提高本卡处理语音的能力;它能同时压缩8路语音,或者它还能完成数据搬移、转储、分析等功能。
2 RPL-LTP算法
我们采用的语音编码算法是RPE-LTP法,具体算法在ETSI-G.06.10中规定。它要求的采样率为8kHz,采样精度为13位,算法的原始码率为104kb/s,编码码率是13kb/s,MOS分为3.6,编解码延迟为。这种算法与传统的多路语音记录系统所采用的ADPCM算法相比具有非常良好的语音回放质量。在ITU-G.726,ADPCM算法当码率为32kb/s时MOS分为4;当码率为24kb/s时MOS分为3.2;当码率为16kb/s时MOS分仅为2。相应地这种算法较ADPCM算法复杂,它是一种混合编码:它既利用了语音信号的相关性进行参数编码,又利用了激励源信号的幅度特性进行波形编码。另外,还利用人耳的听觉特性,进一步消除语音信号中的主观冗余度。在我们的实现中,其运算复杂度为4.7M,IPS(编解码),所用程序、数据存储空间分别为2K和1.2K。单纯地从运算能力上看,单片’C542可以压缩近8路语音。因此可以预测,在多路语音记录系统设计中,随着DSP性价比的不断提高,一些码率低、语音质量好的压缩算法将逐渐取代ADPCM算法。
RPE-LTP算法的流程如图3。
3 软件设计
软件部分包括DSP编程和PC编程。DSP编程的主要任务是初始化、管理板上的资源和完成语音编解码算法。PC编程则重点在管理DSP操作和应用层软件编写。DSP与PC之间的软件接口则是一套自定义的“通信协议”。
DSP程序首先初始化’C542和模拟接口,使四个’AC01按照时分复用的方式传输四路语音的样值。在一帧语音?20ms?之后的中断中,服务程序首先将4路语音数据分开,分别存入四个缓冲区,然后调用编码程序依次编码。编码程序为每路语音数据保留一个缓冲区,用来保存其中间结果以备下一帧使用。编码完成后程序将压缩码流写入HOI RAM中,同时中断主机,主机读出码流后存储。解码过程相对简单,主机按帧将码流写入HPI RAM,’C542解码后放入输出缓冲区,同步串口依次将该帧的数据以采样率速度传给’AC01回放。待一帧传完后,’C542的中断服务程序通知主机传输下一帧码流。
系统中多路语音的有无是随机的,因此在压缩算法之前加入了话音的存在性检测单元。可有两种选择,一种是手工方式,即程序检查一个硬件状态位,它是在人工干预下触发(如摘机);另一种方式是利用程序进行话音的活性检测,它利用语音区别于噪声的性质检测语音的存在性。具体算法在ETSI-G.06.32中规定。在每帧的样值和码流的头部标识出该帧是否存在。
PC方的编程则包括DSP接口部分和应用层编程部分。在PC程序的开始,与DSP接口部分的程序先调用初始化函数将DSP程序下载到DSP中。由于HPI RAM只有2k字而DSP程序大于2k字。所以初始化程序须首先在DSP中载入一个很小的自举程序,然后通过自举程序一段一段地把全部程序载入DSP。初始化完成后,与DSP接口部分程序再按自定义的“通信协议”在指定位置读出DSP处理结果帧或DSP的请求帧,并将它交给上一层(应用程序)处理。应用程序亦通过与DSP接口部分程序向DSP发出各种命令。
上层应用程序是用户使用系统的界面,它提供语音数据库管理和系统管理两项功能。语音数据库管理包括语音的录入、分类、监听、回放等。由于硬盘空间有限,语音数据库还要定期备份、清理。这部分功能是系统的重点,它应能使用户以最便捷的方式管理信息。系统管理则包括设置、读取系统状态。它的目标是让用户能有效地控制系统的操作,及时获得系统的运行状态。
4 基于本处理卡的话音记录系统
在某些关键岗位,如厂矿的指挥室、远洋轮船的指挥室、音讯服务台,为了跟踪事故和提高工作人员的责任感,利用本卡可以对其话音进行记录。利用卡中’C542的剩余处理能力可以提供诸如说话人识别、数据分析等功能。另外,利用该卡的扩展接口还可以完成数据搬移的功能,如将远洋轮船或战地指挥部的全球定位数据(GPS)存入微机,以供处理。
图4是一个实用的处理卡。该卡可以同时记录四路电话信息和拨入、拨出的电话号码。FIFO是回放话音时的缓冲区。同时利用RS232电路把本机信息传出或接受串行信号。
综上所述,本处理卡是建立在PC机上的一个语音记录、管理系统。系统设计中采用了模块化的方式,用户可根据需要制定系统。由于DSP程序由主机下载,系统容易升级和增加功能。因次,它具有广泛的应用前景。
评论
查看更多