梧桐园小区:基于DSP的实时语音压缩
来源:百度文库 编辑:偶看新闻 时间:2024/05/02 02:31:07
2007-07-12 嵌入式在线 收藏 |打印
DSP(数字信号处理器)具有强大的数字信号处理能力,在其应用系统中,大多由ADC和DAC通道来完成对模拟信号的数字化处理。本文介绍了一种集成ADC和DAC于一体的TLC320AD50C模拟接口电路与TMS320VC5416定点DSP接口电路的硬件设计方法,并结合一个具体的软件实例说明主从模式下软件的实现方法。
一、引言
目前,语音信号压缩技术发展十分迅速,出现了很多高效率的语音压缩编码方法。以语音信号压缩的国际标准G.729为例,它可将经过采样的64kb/s语音信号高保真地压缩到8kb/s,但其模型编码算法的运算量很大。同时又要求对语音信号进行实时采样实时压缩处理,这样对数据采集和处理系统提出了更高的要求。
针对上述的问题通常的解决方法有三种:
第一种方法是使用嵌入式处理器(比如凌阳SPCE061A芯片)构成嵌入式语音系统实现语音处理压缩功能。该方法设计简单,价格便宜,使用方便灵活。但语音处理能力有限。只有在数据量不大、处理系统不繁忙的情况下,这种方法才有效。
第二种方法是使用FPGA/CPLD构成片上系统实现实时语音压缩处理。该方法开发周期短,利用重配置可以减少硬件的开销。但在比较低的取样速率时和有很高复杂度的软件问题的情况下,FPGA实现很困难。
第三种方法是使用通用数字信号处理器(DSP)强大的数据处理能力,由于DSP采用内部多总线结构,使数据的存储和指令的执行更加快捷。最重要的一点是,DSP具有快速的指令周期,如TMS320系列己经从第一代的200ns降低到现在的5ns(1600MIPS)以下,如此高的运算速度使其可以满足许多实时处理的需要。
二、实时语音压缩的原理
在电话通信中,语音信号的编码方式一般为PCM(Pulse Code Modulation)编码。由于需要采集、存储、传输和处理的音频数据量极大,只有进行压缩后才能正常进行传输和存储。目前,用于语音压缩编码的算法有ADPCM,CELP,RPE—LTP,LPC,MBE,PW1,MELP等。其中最常用的是u/A律压缩解压。
u/A律压缩解压编码是国际电报电话协会(CCITT)最早推出的G711语音压缩解压编码的一种格式的主要内容。其中欧洲和中国等国家采用A律压缩解压编码,美国和日本采用u律压缩解压编码。现在介绍A律的资料较多,所以本实例着重介绍u律压缩解压算法。
所谓u律压缩就是压缩器的压缩特性具有如下关系的压缩律:
у=ln(1+ux)/ ln(1+u) 0≤x≤1
式中 у——归一化的压缩器输出电压,
即 у=压缩器输出电压/压缩器可能的最大输出电压
x——归一化的压缩器输出电压,
即 x=压缩器输出电压/压缩器可能的最大输出电压
u——压扩参数,表示压缩的程度。
在使用u律的处理过程为:压缩和解压,压缩是指在发送端对输入信号进行压缩处理,再均匀量化,相当于非均匀量化;解压是在接收端进行相应的解压处理,以恢复原始信号。
图1是DSP硬件实现数据压缩解压的简单流程。
图 1 数据压缩解压流程
经过压缩的采样信号,按8位二进制编码,编码表如下:
Biased Input Values
Compressed Code Word
Chord
Step
Bit: 12 11 10 9 8 7 6 5 4 3 2 1 0
Bit: 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1 a b c d x
0 0 0
a b c d
0 0 0 0 0 0 1 a b c d x x
0 0 1
a b c d
0 0 0 0 0 1 a b c d x x x
0 1 0
a b c d
0 0 0 0 1 a b c d x x x x
0 1 1
a b c d
0 0 0 1 a b c d x x x x x
1 0 0
a b c d
0 0 1 a b c d x x x x x x
1 0 1
a b c d
0 1 a b c d x x x x x x x
1 1 0
a b c d
1 a b c d x x x x x x x x
1 1 1
a b c d
8位码有三部分组成:极性码(0:负极性信号;1:正极性信号)、段落码、电平码。
U率解压编码表与编码表左右相反。U律编码= 极性码(musign)+段落码(muchord)+电平码(mustep),算法如下:
muchord = (19- T|EXP)<<4 = 190 - (T|EXP)*16 + 10H;
musign = (AH * (-1)) << 7 = (AH * FFFFH)*128 = AH * (FFFFH * 128) = AH * (FFFFH << 7) = AH * FF80H
mustep = (((|int| + 33) << (T|EXP)) << -26 ) -10H
三、实时语音压缩的硬件部分设计
实时语音压缩的硬件电路框图如图1所示。本系统实现的是ITU-T的G711国际标准建议mu律PCM的语音处理过程。通过TCL320AD50对话筒输入或声卡输出的语音进行压缩,录入的数据存储在数据空间0x2000~0xa000。
图2、实时语音压缩的硬件电路框图
四、实时语音压缩的软件部分设计
一旦完成了正确的硬件连接,接下来就可以进行软件编程调试了。要完成的工作包括:
(1)TMS320VC5416串口的初始化。首先将DSP串口1复位,再对串口1的16个寄存器进行编程,使DSP串口工作在以下状态:以SPI模式运行,每帧一段,每段一个字,每字16位,采样率发生器由DSP内部产生,帧同步脉冲低电平有效,并且帧同步信号和移位时钟信号由外部产生。
(2)AD50初始化。该初始化操作过程包括通过TMS320VC5416的同步串口发送两串16位数字信息到AD50。第一串为0000 0000 0000 0001B,最低有效位(bits0)说明下一个要传输的数据字属于二次通信。第二个数据值用来对AD50的4个数据寄存器的某一个进行配置。
Bits15~11位为0,Bits10~8位为所选寄存器地址值,Bits7~0位为所选中寄存器的编程值。4个用户可编程寄存器的描述如下:R1中包含模拟输入通道选择,硬件 / 软件编程方式选择;R2进行单机 / 从机工作和电话模式选择;R3控制带从机个数选择;R4用来设置模拟信号可编程放大增益和A/D、D/A转换频率。其它两个寄存器R5、R6是厂家留着测试用的,用户不可以对其编程。我们在以下例程中对4个可编程寄存器编程,使AD50C工作在以下状态:选择INP/INM为工作模拟输入,15+1位ADC和15+1位DAC模式,不带从机,采样频率为8KHz,模拟信号输入和输出放大增益均为0dB。
(3)用户代码的编写。完成对音频信号采集
图3、实时语音压缩的软件电路框图
五、程序运行的结果
下面图3为压缩前的原始信号“喂,喂”,而图4为TLC320AD50C与TMS320VC5416组成的数据采集系统对压缩前的原始信号“喂,喂”的采集结果。
图4、压缩前的原始信号“喂,喂”
图5、压缩后的语音信号“喂,喂”
经过对压缩前后的语音信号对比分析,TLC320AD50C可以对语音信号进行无失真压缩。
七、结束语
本文以TMS320VC5416与TLC320AD50C为例,详细介绍了AD50与DSP串口通信的硬件接口及软件实现。从实验结果我们可以发现TLC320AD50C可以对语音信号进行无失真采样,完全能满足后续语音信号处理的要求,并且与DSP接口简单,高性能,低功耗,已成为当前语音处理的主流产品。广泛适用于音频处理,语音增强,语音安全,回声抵消,VoIP等电话或语音应用中。
本文作者创新点::基于DSP的实时语音压缩解压的算法很多,其中u/A律压缩解压编码是最常用的形式。介绍A律的资料较多,但是u律的几乎没有。本文就是介绍u律压缩解压算法。通过实验,压缩的语音信号解压能够很好的自然度和可懂性。实验结果能够达到预期的目标。
参考文献
[1]TMs32oc54xDsP Applications Guide.Texas Instuments, 1999
[2]TMS320C54xDSPEnhancedPeripherals.TexasInstuments, 1999
[3]戴明祯,周建江.TMS320C54X DSP结构、原理及应用. 北京;北京航空航天大学出版社,2001
[4]高浩,须文波 基于DSP改进的MBE语音算法的研究 北京;微计算机信息(嵌入式与SOC片上系统)2005年12期85页
DSP(数字信号处理器)具有强大的数字信号处理能力,在其应用系统中,大多由ADC和DAC通道来完成对模拟信号的数字化处理。本文介绍了一种集成ADC和DAC于一体的TLC320AD50C模拟接口电路与TMS320VC5416定点DSP接口电路的硬件设计方法,并结合一个具体的软件实例说明主从模式下软件的实现方法。
一、引言
目前,语音信号压缩技术发展十分迅速,出现了很多高效率的语音压缩编码方法。以语音信号压缩的国际标准G.729为例,它可将经过采样的64kb/s语音信号高保真地压缩到8kb/s,但其模型编码算法的运算量很大。同时又要求对语音信号进行实时采样实时压缩处理,这样对数据采集和处理系统提出了更高的要求。
针对上述的问题通常的解决方法有三种:
第一种方法是使用嵌入式处理器(比如凌阳SPCE061A芯片)构成嵌入式语音系统实现语音处理压缩功能。该方法设计简单,价格便宜,使用方便灵活。但语音处理能力有限。只有在数据量不大、处理系统不繁忙的情况下,这种方法才有效。
第二种方法是使用FPGA/CPLD构成片上系统实现实时语音压缩处理。该方法开发周期短,利用重配置可以减少硬件的开销。但在比较低的取样速率时和有很高复杂度的软件问题的情况下,FPGA实现很困难。
第三种方法是使用通用数字信号处理器(DSP)强大的数据处理能力,由于DSP采用内部多总线结构,使数据的存储和指令的执行更加快捷。最重要的一点是,DSP具有快速的指令周期,如TMS320系列己经从第一代的200ns降低到现在的5ns(1600MIPS)以下,如此高的运算速度使其可以满足许多实时处理的需要。
二、实时语音压缩的原理
在电话通信中,语音信号的编码方式一般为PCM(Pulse Code Modulation)编码。由于需要采集、存储、传输和处理的音频数据量极大,只有进行压缩后才能正常进行传输和存储。目前,用于语音压缩编码的算法有ADPCM,CELP,RPE—LTP,LPC,MBE,PW1,MELP等。其中最常用的是u/A律压缩解压。
u/A律压缩解压编码是国际电报电话协会(CCITT)最早推出的G711语音压缩解压编码的一种格式的主要内容。其中欧洲和中国等国家采用A律压缩解压编码,美国和日本采用u律压缩解压编码。现在介绍A律的资料较多,所以本实例着重介绍u律压缩解压算法。
所谓u律压缩就是压缩器的压缩特性具有如下关系的压缩律:
у=ln(1+ux)/ ln(1+u) 0≤x≤1
式中 у——归一化的压缩器输出电压,
即 у=压缩器输出电压/压缩器可能的最大输出电压
x——归一化的压缩器输出电压,
即 x=压缩器输出电压/压缩器可能的最大输出电压
u——压扩参数,表示压缩的程度。
在使用u律的处理过程为:压缩和解压,压缩是指在发送端对输入信号进行压缩处理,再均匀量化,相当于非均匀量化;解压是在接收端进行相应的解压处理,以恢复原始信号。
图1是DSP硬件实现数据压缩解压的简单流程。
图 1 数据压缩解压流程
经过压缩的采样信号,按8位二进制编码,编码表如下:
Biased Input Values
Compressed Code Word
Chord
Step
Bit: 12 11 10 9 8 7 6 5 4 3 2 1 0
Bit: 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1 a b c d x
0 0 0
a b c d
0 0 0 0 0 0 1 a b c d x x
0 0 1
a b c d
0 0 0 0 0 1 a b c d x x x
0 1 0
a b c d
0 0 0 0 1 a b c d x x x x
0 1 1
a b c d
0 0 0 1 a b c d x x x x x
1 0 0
a b c d
0 0 1 a b c d x x x x x x
1 0 1
a b c d
0 1 a b c d x x x x x x x
1 1 0
a b c d
1 a b c d x x x x x x x x
1 1 1
a b c d
8位码有三部分组成:极性码(0:负极性信号;1:正极性信号)、段落码、电平码。
U率解压编码表与编码表左右相反。U律编码= 极性码(musign)+段落码(muchord)+电平码(mustep),算法如下:
muchord = (19- T|EXP)<<4 = 190 - (T|EXP)*16 + 10H;
musign = (AH * (-1)) << 7 = (AH * FFFFH)*128 = AH * (FFFFH * 128) = AH * (FFFFH << 7) = AH * FF80H
mustep = (((|int| + 33) << (T|EXP)) << -26 ) -10H
三、实时语音压缩的硬件部分设计
实时语音压缩的硬件电路框图如图1所示。本系统实现的是ITU-T的G711国际标准建议mu律PCM的语音处理过程。通过TCL320AD50对话筒输入或声卡输出的语音进行压缩,录入的数据存储在数据空间0x2000~0xa000。
图2、实时语音压缩的硬件电路框图
四、实时语音压缩的软件部分设计
一旦完成了正确的硬件连接,接下来就可以进行软件编程调试了。要完成的工作包括:
(1)TMS320VC5416串口的初始化。首先将DSP串口1复位,再对串口1的16个寄存器进行编程,使DSP串口工作在以下状态:以SPI模式运行,每帧一段,每段一个字,每字16位,采样率发生器由DSP内部产生,帧同步脉冲低电平有效,并且帧同步信号和移位时钟信号由外部产生。
(2)AD50初始化。该初始化操作过程包括通过TMS320VC5416的同步串口发送两串16位数字信息到AD50。第一串为0000 0000 0000 0001B,最低有效位(bits0)说明下一个要传输的数据字属于二次通信。第二个数据值用来对AD50的4个数据寄存器的某一个进行配置。
Bits15~11位为0,Bits10~8位为所选寄存器地址值,Bits7~0位为所选中寄存器的编程值。4个用户可编程寄存器的描述如下:R1中包含模拟输入通道选择,硬件 / 软件编程方式选择;R2进行单机 / 从机工作和电话模式选择;R3控制带从机个数选择;R4用来设置模拟信号可编程放大增益和A/D、D/A转换频率。其它两个寄存器R5、R6是厂家留着测试用的,用户不可以对其编程。我们在以下例程中对4个可编程寄存器编程,使AD50C工作在以下状态:选择INP/INM为工作模拟输入,15+1位ADC和15+1位DAC模式,不带从机,采样频率为8KHz,模拟信号输入和输出放大增益均为0dB。
(3)用户代码的编写。完成对音频信号采集
图3、实时语音压缩的软件电路框图
五、程序运行的结果
下面图3为压缩前的原始信号“喂,喂”,而图4为TLC320AD50C与TMS320VC5416组成的数据采集系统对压缩前的原始信号“喂,喂”的采集结果。
图4、压缩前的原始信号“喂,喂”
图5、压缩后的语音信号“喂,喂”
经过对压缩前后的语音信号对比分析,TLC320AD50C可以对语音信号进行无失真压缩。
七、结束语
本文以TMS320VC5416与TLC320AD50C为例,详细介绍了AD50与DSP串口通信的硬件接口及软件实现。从实验结果我们可以发现TLC320AD50C可以对语音信号进行无失真采样,完全能满足后续语音信号处理的要求,并且与DSP接口简单,高性能,低功耗,已成为当前语音处理的主流产品。广泛适用于音频处理,语音增强,语音安全,回声抵消,VoIP等电话或语音应用中。
本文作者创新点::基于DSP的实时语音压缩解压的算法很多,其中u/A律压缩解压编码是最常用的形式。介绍A律的资料较多,但是u律的几乎没有。本文就是介绍u律压缩解压算法。通过实验,压缩的语音信号解压能够很好的自然度和可懂性。实验结果能够达到预期的目标。
参考文献
[1]TMs32oc54xDsP Applications Guide.Texas Instuments, 1999
[2]TMS320C54xDSPEnhancedPeripherals.TexasInstuments, 1999
[3]戴明祯,周建江.TMS320C54X DSP结构、原理及应用. 北京;北京航空航天大学出版社,2001
[4]高浩,须文波 基于DSP改进的MBE语音算法的研究 北京;微计算机信息(嵌入式与SOC片上系统)2005年12期85页
基于DSP的调制解调器设计
基于WEB的实时数据流研究
基于实时操作系统对DVD的控制
基于DSP的空间矢量控制系统的设计
求任意一篇基于DSP图象加强的外文论文
什么是实时信号和非实时信号处理的概念?DSP信号的应用实例?
谁能帮帮我?~~基于dsp和单片机的数据采集与处理系统设计??
基于LabVIEW的语音信号编码应如何设计?
下列可以实时语音交流的有哪几个
基于DCT的静止图象压缩编码的程序设计
现在的摄像机都能够实时压缩吗?
关于基于DSP的中值滤波算法,有哪位大侠正在研究,可以给点帮助不
求助:基于J2EE的web发布实时显示系统如何实现?
基于Web技术的煤矿井下供电电网实时监控系统是什么?
基于USB实时数据采集系统电路图
如何在没有压缩卡的情况下,采集DV视频时实时压缩成MPEG2?
实时压缩卡是什么用途
语音文件怎么压缩?
我急需关于语音识别方面的资料,用dsp实现,请各位高手帮忙啊,谢谢谢谢
求”基于DTW算法的语音识别的实现”这方面的资料
谁有关于这方面的论文《基于单片机的语音报警系统实现》?急要!!!!!谢谢
什么是dsp的构架
DSP仿真器的作用
MP3的DSP是什么?