基于TMS320C542话音处理卡研制的多通道语音记录系统

时间:2011-09-04

  随着计算机性价比不断提高和应用的普及,由计算机管理的语音系统越来越受到重视。在语音记录、话音档案、数字语音存储等领域上多通道的语音记录和回放系统有着广泛的应用背景。

  传统的多通道语音记录系统,过去由于受到DSP运算能力和价格的限制,一般采用ITU-G.726建议书提出的ADPCM作为压缩语音的算法。该算法运算量少,码率为16kb/s,但低码率时语言质量较差。近年来DSP的性价比不断提高,这使性能更好的语音压缩算法可以应用于多路语音压缩系统。本项目采用了美国德州仪器(TI)的DSP芯片TMS320C542PGE-40,完成了在GSM系统中使用的规则脉冲激励-长时线性预测(RPE-LTP)算法,实现了高效率的多通道语音记录系统。

  硬件结构

  硬件框图如图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路语音,或者它还能完成数据搬移、转储、分析等功能。

  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算法。

  1.RPL简介

  RPL(Remote Initial Program Load:远程启动服务)是一种较早出现的无盘网络组建技术,这种启动方式的典型代表是早期以Windows NT Server 4.0为服务器操作系统组建而成的Windows 95无盘网络。RPL是DOS和WIN95无盘启动时代的产物,同时WIN2000已不再内置RPL无盘启动,虽然我们通过软件可使WIN2000 RPL无盘启动,也可真正作到WIN98的内核。

  2.LTP简介

  LTP(Linux Test Project)是一个由SGI发起并由IBM负责维护的合作计划。它的目的是为开源社区提供测试套件来验证Linux的可靠性、健壮性和稳定性。LTP测试套件包括测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。

  海马LTP可能是学习记忆的分子基础。1973年Bliss及其合作者,电刺激麻醉兔的内嗅皮层,使海马表层的穿通纤维兴奋,可在齿状回记录到场电位。先用高频电刺激几秒钟后,再用单个电刺激,记录到的部分场电位幅度大大超过原先记录的对照值,并可持续几小时,几天。这一现象称为长时程增强效应(LTP)。1983年发现NMDA(N—甲基—D—门冬氨酸)受体通道复合体在LTP过程中起重要作用,进一步深化了对LTP在大脑学习记忆中作用的理解。LTP定义:给突触前纤维一个短暂的高频刺激后,突触传递效率和强度增加几倍且能持续数小时至几天保持这种增强的现象。

  LTP有三个基本特征:

  ①协同性(Cooperativity):诱导LTP需要很多纤维同时被激活;

  ②联合性(Associativity ):有关的纤维和突触后神经元需要以联合的形式一起活动;

  ③特异性(Input-Specificity):所诱导的LTP对被激活的通路是特异的,在其他通路上不产生LTP。按LTP的时程分①PTP,强直后增强,一般5分钟后衰减;②STP,短时程增强,持续半小时左右;③,LTP长时程增强,持续一小时以上

  2、同突触长时程增强,强的突触输入作用后,在同一突触输入通路上产生长时程的突触传递效率的增强,

  3、联合型突触长时程增强,弱的和强的突触输入协同作用后,在弱的突触输入通路上产生长时程的突触传递效率的增强

  A、异突触长时程增强,强的突触输入作用后,可诱导产生弱的突触输入通路上突触传递效率的增强,

  B、异突触长时程压抑LTD,强的突触输入作用后,引起弱的突触输入通路上突触传递效率的压抑,

  C、同突触长时程压抑LTD,弱的突触输入作用后,在同一突触输入通路上突触传递效率的压抑。

  RPE-LTP算法的流程如图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发出各种命令。

  上层应用程序是用户使用系统的界面,它提供语音数据库管理和系统管理两项功能。语音数据库管理包括语音的录入、分类、监听、回放等。由于硬盘空间有限,语音数据库还要定期备份、清理。这部分功能是系统的重点,它应能使用户以便捷的方式管理信息。系统管理则包括设置、读取系统状态。它的目标是让用户能有效地控制系统的操作,及时获得系统的运行状态。

  基于本处理卡的话音记录系统

  在某些关键岗位,如厂矿的指挥室、远洋轮船的指挥室、音讯服务台,为了跟踪事故和提高工作人员的责任感,利用本卡可以对其话音进行记录。利用卡中’C542的剩余处理能力可以提供诸如说话人识别、数据分析等功能。另外,利用该卡的扩展接口还可以完成数据搬移的功能,如将远洋轮船或战地指挥部的定位数据(GPS)存入微机,以供处理。

  图4是一个实用的处理卡。该卡可以同时记录四路电话信息和拨入、拨出的电话号码。FIFO是回放话音时的缓冲区。同时利用RS232电路把本机信息传出或接受串行信号。

  综上所述,本处理卡是建立在PC机上的一个语音记录、管理系统。系统设计中采用了模块化的方式,用户可根据需要制定系统。由于DSP程序由主机,系统容易升级和增加功能。因次,它具有广泛的应用前景。

  结束语

  本文一种采用一片TMS320C542实现4路电话压缩的话音处理卡,对处理卡硬件结构和RPE-LTP算法及DSP(数字信号处理)实现作了叙述,提出一种基于该处理卡的语音记录系统的构想。

 




  

参考文献:

[1]. FSR datasheet https://www.dzsc.com/datasheet/FSR_2346447.html.
[2]. FSX datasheet https://www.dzsc.com/datasheet/FSX_2346448.html.
[3]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.
[4]. TMS320C542 datasheet https://www.dzsc.com/datasheet/TMS320C542_1077808.html.


上一篇:大程序和数掘空间的设计和实现
下一篇:H.264流媒体播放器设计和实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料