语音压缩的DSP实现概要.docx
- 文档编号:16976142
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:11
- 大小:68.10KB
语音压缩的DSP实现概要.docx
《语音压缩的DSP实现概要.docx》由会员分享,可在线阅读,更多相关《语音压缩的DSP实现概要.docx(11页珍藏版)》请在冰点文库上搜索。
语音压缩的DSP实现概要
语音信号压缩的DSP实现
XX
XXXX电子信息工程学院,XX,XXXXXX
摘要:
随着人们需求的提高,语音信号所占带宽过大成了亟待解决的问题,便有了我国主要采用的A律压缩的方法。
当然也有其他举措可以解决此问题来提高利用率。
本文则是对语音压缩的DSP实现做了一定的实验。
全文开篇介绍了语音信号的产生与接收,并在第二部分对其压缩实现原理做了一定讲述,紧接着第三部分便提出了大概的实现方案并给出了结果。
关键词:
语音;压缩;DSP
TheCompressionofVoiceSingalviaDSP
XxxXxxx
Abstract:
Withtheimprovementofpeopledemand,voicesignalofexcessivebandwidthbecameAproblemtobesolved,haveourcountrymainlyUSESthemethodofAlawofcompression.Ofcoursethereareotherstepscansolvethisproblemistoimproveefficiency.ThisarticleistovoicecompressionDSPimplementationdosomeexperiment.Thefullopeningofspeechsignalisintroducedtoproduceandreceive,andinthesecondpartofthecompressionprinciple,bethefollowedbythethirdpartisabouttheimplementationoftheschemewasputforwardandtheresultsaregiven.
Keywords:
Voicesignal;Compression;DSP
第一章引言
语音信号是当今多媒体应用中不可缺少的组成部分,媒体播放、视频会议、远程医疗等应用都离不开语音信号。
语音更是是人类活动中最基本的、最直接的交流信息的手段,自从1876年贝尔发明电话以来,电话通信始终以最快的速度持续发展着。
电话通信在最初的90年间以模拟电话为主,在语音信号的传输和交换两方面均采用模拟方式。
到本世纪70年代由于微电子技术和计算机技术的发展,电话通信全面转向数字方式。
数字语音信号的传输和存储,无论在可靠性、抗干扰性、保密性还是价格方面都远优于模拟语音信号,但数字语音信号占用的带宽比模拟语音信号增加许多.随着网络的飞速发展和通讯数据的日益剧增,存储介质的容量和通信信道的带宽容量受限的问题愈发不可忽视,同时语音处理的实时性要求也越来越高。
因此为了减少话音信号所占的带宽,探索和研究有效的数据压缩算法、完成相应的硬件实现,对于降低传输和存储语音的代价,实现高质量的语音编码具有一定的科学研究意义和实际应用价值。
目前,语音信号压缩技术发展十分迅速,出现了很多高效率的语音压缩编码方法。
以语音信号压缩的国际标准G.729为例,它可将经过采样的64kb/s语音信号高保真地压缩到8kb/s,但其模型编码算法的运算量很大。
同时又要求对语音信号进行实时采样实时压缩处理,这样对数据采集和处理系统提出了更高的要求。
针对上述的问题通常的解决方法有三种:
第一种方法是使用嵌入式处理器(比如凌阳SPCE06IA芯片)构成嵌入式语音系统实现语音处理压缩功能。
该方法设计简单,价格便宜,使用方便灵活。
但语音处理能力有限。
只有在数据量不大、处理系统不繁忙的情况下,这种方法才有效。
第二种方法是使用FPGA/CPLD构成片上系统实现实时语音压缩处理。
该方法开发周期短,利用重配置可以减少硬件的开销。
但在比较低的取样速率时和有很高复杂度的软件问题的情况下,FPGA实现很困难。
第三种方法是使用通用数字信号处理器(DSP)强大的数据处理能力,由于DSP采用内部多总线结构,使数据的存储和指令的执行更加快捷。
最重要的一点是,DSP具有快速的指令周期,如TMS320系列已经从第一代的200ns降低到现在的5ns(1600MLPS)以下,如此高的运算速度使其可以满足许多实时处理的需要。
我们采取了第三种。
专业来讲,人的语音有清音和浊音之分。
发浊音时声带振动,发清音时声带不振动。
浊音有其振动的基本频率(称为基音);清音则无基音。
它具有平坦频谱,与白噪声相似。
语音的一种产生方式是说话时两片声带在杓状软骨的作用下相互靠近但不完全封闭,这样声门变成一条窄缝,当气流通过这个窄缝隙时其间的压力减小,从而两片声带完全合拢使气流不能通过。
在气流阻断时压力恢复正常,因此声带间的空隙再次形成,气流再次通过。
这一过程周而复始地进行。
就形成了一串周期性的脉冲气流送入声道。
语音的另一种产生方式是声门完全封闭,这时声道不是受声门周期脉冲气流的激励而是利用口腔内存有的空气释放出来而发声,由于该气流通过一个狭通道时在口腔中形成湍流,因而明显地具有随机噪声的特点。
实践证明,语音虽然客观存在,但是人的主观感觉(听觉)和客观实际(语音波形)并不完全一致。
这是由于人耳听觉有其独特性。
要研究语音信号,不但要了解语音的特征和语音信号的频谱特点,还要深入了解和研究人耳的听觉特性。
人的听觉系统具有复杂的功能,没有哪一种物理仪器具有人耳那样惊人的特性。
听觉机构不但是一个极端灵敏的声音接收器,它还具有非线性、高频定位和掩蔽效应等特性。
实践证明,人的听觉系统并非完全线性的,声音信号在人的听觉系统中会被非线性“加工”,当有一个强度适当的纯音作用到耳朵时,能听到原频率的一系列谐波或泛音,当有两个声音作用时能听到一组音,它包括这两个基本音和它们的谐音、和音及差音等主观音,这些主观音客观上并不存在.它们是由听觉机构非线性效应引起的。
人耳还具有高频定位特性,对于大约2kHz以上的高频声音信号,人耳感觉不出具体的单个周期的声音波形,只能感受时域波形的包络。
方向的决定取决于信号包络在内耳的延时以及人耳所能感受到的信号频率,包络变化很快的时域声音信号,在声音定位时作用大,而时域包络比较平稳的声音信号,对于人耳的声音定位影响很小,另外人耳无法判断在频率上非常接近的各个高频信号的方向[1,2]。
人耳的掩蔽效应是一种常见的心理声学现象。
它指的是在一个较强的声音附近,弱的声音将不被人耳所察觉.即被“掩蔽”掉。
以上所述人耳的几个听觉特性特别是人耳的掩蔽效应。
对于语音信号处理有着很重要的意义。
不过在此论文中,我们是基于已经得到语音波形的情况下,为了降低传输和存储语音的代价,提高传输效率而进行的语音信号压缩的DSP实现。
第二章语音压缩实现原理
在电话通信中。
语音信号的编码方式一般为PCM(PulseCodeModulation)编码。
由于需要采集、存储、传输和处理的音频数据量极大,只有进行压缩后才能正常进行传输和存储。
目前,用于语音压缩编码的算法有ADPCM,CELP,RPE-LTP,LPC,MBE,PWl,MELP等。
其中最常用的是
/A律压缩解压。
/A律压缩解压编码是国际电报电话协会(CCITT)最早推出的G711语音压缩解压编码的一种格式的主要内容。
其中欧洲和中国等国家采用A律压缩解压编码,美国和日本采用
律压缩解压编码。
由于语音信号的幅度(发音强度)并非均匀分布,小信号占的比例比大信号大很多,因此在本文中进行非均匀量化。
达到这一目标的基本做法是,对大信号使用大的量化间隔,而小信号则使用小的台阶。
ITU-TG.711建议的PCMA律和µ律语音压缩标准可以分别将13比特和14比特压缩为8比特,达到语音压缩的目的。
在此论文中采用了较为常见的A律压缩方式[3]。
语音的A律压缩其特性可表示为:
很明显,小信号时为线性特性,大信号时近似为对数特性。
这种压扩特性常把压缩、量化和编码合为一体。
A律可用13段折线逼近(相当于A=87.6),便于用数字电路实现。
13段折线的压缩规则如表一。
过程为:
第一步:
把x(x>0部分)划分为不均匀的8段。
第一分点取在V/2处,然后每段都是剩下部分的1/2;依次取第八段为V~V/2,第七段为V/2~V/4;第一段为V/128~0。
第二步:
把每段均匀划分为16等份,每一份表示一个量化级,显然8段共
个量化级,需要二进制7位编码表示。
可以看出每个量化级是不均匀的。
在小信号的量化台阶很小,使小信号时量化噪声减小。
如果按均匀量化计算,以最小台阶
为单位,最大信号需用L=128X16=2048=
个量化级表示,即需要11位编码。
这样非均匀编码使小信号量化台阶缩小了16倍,相当于小信号信噪比改善了20dB。
第三步:
把y轴均匀划分为8段,每段均匀分为16分。
这样y也分为128个量化级,与x轴的128个量化级对应。
因此,压扩特性各段的斜率
是不同的。
第一段斜率
,其他段为:
,
,
,
,
,
,
。
以上分段为x取正值时的情况。
而x取负值时,压扩特性与x取正值成奇对称。
在正8段和负8段中,正1,2段和负1,2段斜率相同,合为一段。
所以原来的16段折线变为13段折线。
压缩前的码字
丢弃的比特数
压缩后的码字
输入值
段值,量化值
比特:
11109876543210
比特:
6543210
0000000abcdx
1
000abcd
0000001abcdx
1
001abcd
000001abcdxx
2
010abcd
00001abcdxxx
3
011abcd
0001abcdxxxx
5
100abcd
001abcdxxxxx
6
101abcd
01abcdxxxxxx
7
110abcd
1abcdxxxxxxx
8
111abcd
表一.A律压缩编码表
DSP将传输来的压缩后的数据进行解压成16位或者32位,然后对解压后的数据进行分析、处理,最后将处理后的数据按照要求压缩成8位的数据格式输出到相应设备,供其他设备读取。
DSP将压缩的8位数据解压成16位的DSP通用数据格式,其中高13位为解压后的数据,低3位补0。
这是因为A律压缩只能对13位数据操作。
DSP将解压后的数据放在缓冲串口的发送寄存器中,只要运行发送指令,缓冲串口就会将数据发送出去。
缓冲串口对接收数据的解压过程和压缩过程完全相反。
DSP内部的缓冲串口(McBSPs)带有硬件实现的A律压缩解压,用户只需要在相应寄存器中进行设置就可以了[4,5]。
McBSP通过7引脚(DX、DR、CLKX、CLKR、FSX、FSR和CLKS)与外设接口。
其中DX和DR引脚完成与外部设备进行通信时数据的发送和接收,由CLKX、CLKR、FSX、FSR实现时钟和帧同步的控制。
由CLKS来提供系统时钟。
发送数据时,CPU和DMA控制器将要发送的数据写到数据发送寄存器DXR,在FSX和CLKX作用下,由DX引脚输出。
接收数据时,来自DR引脚的数据在FSR和CLKR作用下,从数据接收寄存器DRR中读出数据。
接收和发送帧同步脉冲即可以由内部采样速率产生器产生,也可以由外部脉冲源驱动,McBSP分别在相应时钟的上升沿和下降沿进行数据检测。
我们在进行A律压缩时,采样后的12位数据,默认其最高位为符号位,压缩时要保持最高位即符号位不变,原数据的后11位要压缩成7位。
这7位码由3位段落码和4位段内码组成。
具体的压缩变换后的数据根据后11位数据大小决定。
另外,在通常情况下McBSP先传输信号的高位后传输低位,但是在字长为8比特的数据传输时,McBSP提供了比特倒序的功能,即可以先传输低位后传输高位。
在主程序中通过A/D抽样量化,可以得到16位的线性编码,再由编码表通过软件计算得到8位A律编码,其中最高位为符号位,第6位到第4位为段落码,低4位为段内码。
将8位的压缩结果存储到系统RAM中进行缓存,根据抽样率、语音存储时间以及系统RAM的容量设置语音存储缓冲区的大小,待缓冲区存满后,将缓冲区内的数据进行解压缩,然后输出到SPEAKER接口输出端。
若使用A/D转换器,必须首先对A/D转换器进行初始化设置,即设置A/D转换器的工作模式、输入增益以及抽样频率等。
我们现已对语音压缩的实现原理有了一定了解,在下文将会对实现方案做出一定说明。
第三章语音压缩实现方案及结果
DSP程序设计应包括用户程序、存储器配置程序。
为了实现语音信号的采集与回放,先将语音信号采集,运用A律压缩算法将信号压缩并存入存贮器中,当放音开始时运用A律解压算法将信号解压并从存储器中释放出来,实现语音的回放[6,7]。
流程如图一。
图一.流程图
基本部分:
(1)使用DSP实现语音压缩和解压缩的基本算法,算法类型自定,例如可以采用G.711、G.729等语音压缩算法。
(2)采用A/D转换器从MIC输入口实时采集语音信号,进行压缩后存储到DSP的片内和片外RAM存储器中,存储时间不小于10秒。
(3)存储器存满之后,使用DSP进行实时解压缩,并从SPEAKER输出口进行回放输出。
(4)使用指示灯对语音存储和回放过程进行指示。
使用算法进行语音的压缩、存储和解压缩。
我们使用的是TMS320VC5509A,其提供了三个高速、全双工、多通道缓存串行口。
它提供了双缓存的发送寄存器和三缓存的接收寄存器,具有全双工的同步或异步通信功能,允许连续的数据流传输;数据发送和接收有独立可编程的帧同步信号;能够与工业标准的解码器、模拟接口芯片或其它串行A/D与D/A设备(如AD50,AIC23)、SPI设备等直接相接;支持外部时钟输入或内部可编程时钟;每个串行口最多可支持128通道的发送和接收;串行字长度可选,包括8、12、16、20、24和32位;支持
律和A律数据压缩扩展。
一旦完成了正确的硬件连接.接下来就可以进行软件编程调试了。
要完成的工作包括:
1.TMS320VC5509A串口的初始化。
首先将DSP串口1复位,再对串口1的16个寄存器进行编程,使DSP串口工作在以下状态:
以SPI模式运行,每帧一段,每段一个字,每字16位,采样率发生器由DSP内部产生。
帧同步脉冲低电平有效。
并且帧同步信号和移位时钟信号由外部产生。
2.AD50初始化。
该初始化操作过程包括通过TMS320VC5509A的同步串口发送两串16位数字信息到AD50。
第一串为0000000000000001B。
最低有效位(bitsO)说明下一个要传输的数据字属于二次通信。
第二个数据值用来对AD50的4个数据寄存器的某一个进行配置。
Bitsl5—1l位为0,Bitsl0~8位为所选寄存器地址值,Bits7~0位为所选中寄存器的编程值。
4个用户可编程寄存器的描述如下:
R1中包含模拟输入通道选择。
硬件,软件编程方式选择;R2进行单机,从机工作和电话模式选择;R3控制带从机个数选择;R4用来设置模拟信号可编程放大增益和加、D,A转换频率。
其它两个寄存器R5、R6是厂家留着测试用的,用户不可以对其编程。
我们在以下例程中对4个可编程寄存器编程。
使AD50C工作在以下状态:
选择INP/INM为工作模拟输入,15+1位ADC和15+1位DAC模式,不带从机,采样频率为8KHz,模拟信号输入和输出放大增益均为0dB。
3.用户代码的编写。
完成对音频信号采集。
程序结果如下图:
原信号a.
A律波形a.
原信号b.
A律波形b.
第四章总结
语音信号作为通信交流的主要研究对象之一,其重要性不可小觑,对于如何减少信号冗余,提高信号的利用率也是一重要研究课题,虽然本文属于验证性论文,且其压缩方法也愈发精简方便,仍然具有研究极高的价值。
近几年来,DSP芯片、应用软件和系统的发展非常迅速,在如今数字化时代背景下,已成为通信、计算机、消费类产品等领域的基础器件。
在本文中,已体现了作为最小系统在语音处理方面的功能。
DSP在数字信号处理方面的优势也是我们选择其作为语音信号压缩方案的原因。
DSP产业的发展依赖于通信技术和通信市场。
随着新的通信体制、传输方式和多媒体智能终端的迅速发展,其算法、标准和规程都需要在实践中不断发展、改进和优化。
DSP编程的灵活性和不断增强的运算能力,同时又将使通信技术向更高层次迈进。
这对通信领域的广大科技人员具有极大的吸引力。
通过此篇论文,在实验的基础上对DSP有了进一步的了解。
通过查询很多资料来完成此篇论文,但是仍旧收获颇丰,希望在以后的学习生活中能对DSP有更多的学习和研究。
参考文献
[1]杨行俊,迟惠生.语音信号数字处理.北京:
电子工业出版社,1995.
[2]谢依兰.语音信号数字技术.学苑出版社,1993.
[3]赵晓群.数字语言编码.北京:
机械工业出版社,2007.
[4]戴明桢.数字信号处理的硬件实现.北京:
航空工业山版社,1998.
[5]]苏涛,蔡建隆,何学辉.DSP接口电路设计与编程[M].西安:
西安电子科技大学出版社.2003.
[6]彭启琮,李玉柏等.DSP与实时信号处理.成都:
电子科技大学出版社,1995.
[7]徐速.基于DSP的实时语音压缩.DSP开发与应用.2007.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 压缩 DSP 实现 概要