基于TMS320C6713的多路CVSD语音编解码
2010-05-13苏凌旭,徐智敏
苏凌旭,徐智敏
摘 要:介绍一种对语音信号的实时采样和编码处理的方法。该系统采用高精度可编程芯片TLV320AIC23B对多路原始语音信号进行模数转换后经DSP的片上外设MCBSP送入TMS320C6713进行CVSD编码压缩,之后又由MCBSP送出,同时MCBSP接收多路A律PCM信号,经TMS320C6713转换成CVSD信号后由MCBSP送出,TMS320C6713亦可接收CVSD编码信号转化成A律PCM信号后送出。该系统充分发挥了DSP的高速数字信号处理的性能,同时处理多路信号收发及数字运算具备非常好的实时性。
关键词:CVSD;编码;解码;语音
中图分类号:TN919文献标识码:A
文章编号:1004-373X(2009)19-076-02
Multi-channel CVSD Speech Codec and Decodec Based on TMS320C6713
SU Lingxu1,2,XU Zhimin2
(1.Institute of Software,Chongqing University,Chongqing,400030,China;2.Chongqing Jinmei Communication Corporation,Chongqing,400030,China)
Abstract:In this article,a method which is used for real-time sample and codec to speech signal is introduced.This system applies high precision programmed TLV320AIC23B converse speech signal to digital signal,then transmits the digital signal to TMS320C6713 through the on-chip device MCBSP for CVSD coding.At last,the CVSD signal is sent out of DSP.In addition to above function,TMS320C6713 receives multi-channel A-law PCM signal through MCBSP,then transmits A-law PCM signal to CVSD signal,and vice versa.The system takes full advantage of DSP in high-speed digital signal proceed.The system deals with multichannel signal transceiver,at the same time,so it posseses good real-time performance.
Keywords:CVSD;codec;decodec;speech
64 Kb/s的A律或μ律的对数压扩PCM编码在大容量的光纤通信系统和数字微波系统中已得到广泛应用,但由于占用较大的传输带宽和具有复杂的成帧结构[1]。连续可变斜率增量(Continuously Variable Slope Delta,CVSD)调制以其较低的应用难度、成本和编码速率,较好的语音质量广泛应用于战术通信网、卫星通信、蓝牙等无线语音传输领域。于是不同码制的网络之间的互连对两种码制之间的转换提出了更高的要求[2,3]。针对近年来FPGA、DSP技术的不断发展,本文提出了一种满足此需求的设计方案,以适应通信技术日新月异的发展。
1 多路数据信号的收发
1.1 McASP(Multichannel Audio Serial Port)
McASP在C5000系列DSP处理器基础上新增加的一个专门用来实现多通道音频应用的通用串行端口,它包括收/发两个功能部件,二者间即可完全同步也可各自采用完全独立的主时钟、位时钟和帧同步时钟,具备不同的数据传输模式和位码流格式。
支持多种数据协议:I2S,S/PDIF,IEC60958-1,AES-3等格式码流,支持时分复用(TDM码流),多达32个通道进行收发传输的字长可以是8位/12位/16位/20位/24位/32位等[4]。
1.2 多路数据收发的实现
1.2.1 TDM模式
本文讨论的是音频数据的传输,当MCASP工作于TDM格式时可以用于DSP和多个ADC及DAC直接相连接。数据的多路传输取决于每一收(发)帧多达32个时隙的传输模式。图1显示了6个SLOT的传输模式。
图1 TDM传输模式
TMS320C6713的多路数据输出/输入需经过一个数据组合和分离的时序控制单元,这一任务由一块FPGA完成,其功能是接收所有来自DSP的数据,将相同的时隙组合在一起后根据相应的连接设备的时序送出,同时将来自不同的设备的数据组合后以TDM的方式送入DSP,如图2所示。
图2 多路数据输入/输出
1.2.2 时钟和帧同步
通过设置DSP的收发帧同步控制寄存器可以设置TDM的具体模式,而相应的位时钟、帧同步时钟可由编程控制由外部产生或直接由内部产生,图3是时钟的相关控制关系。高频时钟AHCLKX可由高频时钟控制寄存器设置为内部产生或外部输入,ACLKX可由时钟控制寄存器设置为内部产生或外部输入[5]。如果采用内部高频时钟,则由AUXCLK经分频后得到,分频数值由高频时钟控制寄存器的0~11 b决定;高频时钟分频后得到位时钟,分频数值由时钟控制寄存器的0~4 b决定。
图3 时钟信号的产生
1.3 AD采样和语音信号的回放
TLV320AIC23B是输入输出模拟音频接口编解码器,该编解码器采用了Sigma-Delta技术进行数模和模数转换,并和McBSP直接相连,AIC23还提供了麦克风输入、线性输入、线性输出和耳机输出4个模拟接口。TLV320AIC23B的控制字可通过SPI方式或者I2C方式写入[6]。图4是I2C方式控制字的读写时序图。
设定控制寄存器的工作方式后即可利用TLV320AIC23B对语音信号进行高精度的采样和回放。
2 CVSD编解码
CVSD也叫数字检测音节压扩增量调制,进入实用阶段已有十多年的历史。数字CVSD编译码器中音节平滑滤波器及编译码器中的主积分器的转移函数如下[7]:
音节平滑滤波器:
H1(z)=G11-a1z-1
图4 TLV320AIC23B 控制字时序
编码器双积分器:
H2C(z)=G2C(1+C1z-1)1-b1z-1b2z-2
译码器主积分器:
H2D(z)=G2D1-b1z-1-b2z-2
图5是编译码器的流程图。对上述公式做Z的反变换可以得到三个差分方程,按照相应的差分方程实现相应的编解码器代码编写[8]。
图5 CVSD编解码
3 PCM码与CVSD码的转换
PCM码采样频率是8 kHz,CVSD编码的采样频率是16 kHz,把PCM码转化为CVSD码先要把PCM码转换成线性PCM,然后加2倍内插低通滤波器以使采样频率从8 kHz变换到16 kHz,之后送入CVSD编码器生成16 Kb/s的CVSD码[9];CVSD码转化成PCM码则是一个相反的过程,即将CVSD码送入译码器即可得到线性的PCM码,与此时的PCM码相对应的采样频率为16 kHz,而不是8 kHz。为使采样频率从16 kHz变换到8 kHz,需要加2倍抽取低通滤波器,把线性PCM变换成A律PCM。而滤波器可以选择FIR滤波器[10]。
4 结 语
本文提出的多路音频数据的输入/输出设计,利用了6000系列DSP的高速数据处理功能,同时处理多路数据的CVSD编解码、PCM码与CVSD码的相互转换,对于不同码制的网络之间的互连具有重要的应用意义。
参考文献
[1]Greefles J A,Dejager F.Continuous Delta Modulation[J].Philips Research Reports,1968,23 (2):233-246.
[2][美]拉宾纳L R,谢弗R W.语音信号数字处理[M].北京:科学出版社,1983.
[3]易克初,田彬,付强.语音信号处理[M].北京:国防工业出版社,2000.
[4]罗闻,王峻峰,史铁林.基于McASP的高速串行数据采集系统设计[J].微计算机信息,2006,22(25):176-178.
[5]任丽香,冯淑芬.TMS320C6000系列DSPs的原理与应用[M].北京:电子工业出版社,2001.
[6]徐君毅.单片机微型计算机原理及应用[M].上海:上海科技出版社,1988.
[7]黄福贵,朱志国,孙波.语音编码调制的CVSD算法及实现[J].声学与电子工程,2005(4):19-22.
[8]李欣,藏笛,罗程.CVSD编码/译码器在语音系统中的应用[J].电子与自动化,1999(3):32-33.
[9]陈显治.现代通信技术[M].北京:电子工业出版社,2001.
[10]Labrosse J J.μC/OS-Ⅱ源码公开的实时嵌入式操作系统[M].邵贝贝,译.北京:中国电力出版社,2001.