文档库

最新最全的文档下载
当前位置:文档库 > 一种适用于单片机的语音编码算法及应用

一种适用于单片机的语音编码算法及应用

采用数字技术对语音进行处理具有许多优越性,但其数据量较大,如果不进行数据压缩,则无论存储或传输都很难实用化。

目前,用于语音压缩的许多低速率算法,如线性预测编码、多脉冲激励线性预测编码、规划脉冲激(LPC)(MPLPC)励线性预测编码、码本激励线性预测编码(KPELPC),能达到较高的压缩比,但算法复杂,且往往需要(CELP)专用芯片,成本较高。为了降低实现成本和使用方便,我们提出一种在IMA-ADPCM(Adaptive Differential Pulse Code 基础上进行改进的编码算法,并讨论在Modulation)C8051F*系列单片机上的具体实现。**自适应差分脉冲编码算法

1 编码算法简介

1.1 IMA-ADPCM 语音信号是一种具有短时平稳性的非平稳随机过程,其相邻样点间有着很强的相关性。利用语音信号的这些特点,采用自适应量化和自适应预测技术对语音信号进行编码,可以在较低的数据率情况下,获得较高质量的重构语音。自适应差分脉冲编码算法是使用前一个样本或前几个样本来预()测当前样本,然后算出当前样本与预测值的差值,并对差值进行量化。对于每一个输入样本值,所对应的编码值直接就是量化阶的确定数目。解码时就是用这个编码值乘以量化阶可能会再加上半个量化阶以得到更好的精度即得到重建的()音频样本。编码和解码能随时修正量化阶以响应输入样本大小的变化。它的简便之处在于对预测值并不进行自适应,而是对量化阶进行自适应。是一种针对IMA-ADPCM 、比特声音波形数据的一种有损压缩算法,它将44 100Hz 16声音流中每次采样的比特数据以比特存储,所以压缩比164。

4:1对编码算法的改进

1.2 IMA-ADPCM 由于只适用于位的声音数据,而以单片IMA-ADPCM 16机为核心的语音系统通常使用取样频率为的位声11.025kHz 8音数据,因此对算法进行改进,将声音流中每次采样的比8特数据以比特存储,压缩因子达到。编码值为位,其

38:33中最左边位是符号位,其余位是对当前音频样本计算所得12的量化级数。

(0-3)在算法中,自适应调整是通过查询两个表IMA-ADPCM 来实现的。在改进算法中,由于声音信号为位,采样时将8声音信号强弱分为级,因此取预测初值为,并对两个256128表的数据修改。通过查询这两个表,对量化阶进行修正。改进算法的编码原理

1.2.1 对于编码来说,主要是对实际值与预测值的差值进行量化,从而得到编码值。假设用i 表示采样点的位置,x [i 表示]在i 点的编码输出。输入信号的实际值用y [i 表示,输入信号]的预测值用z [i 表示,△表示实际值和预测值的差值,则

]x [i ]=2*(y [i ]-z [i ])/step[index]

△=step[index]*x [i ]/2+step[index]/4z [i+1]=z [i △

]+其中,表中给出了量化阶的尺度,为表中的所对应step index

一种适用于单片机的语音编码算法及应用

一种适用于单片机的语音编码算法及应用

1 一种适用于单片机的语音编码算法及应用

万晓华,陈连坤

北京交通大学计算机与信息技术学院,北京(100044)

摘要: 提出了一种采用自适应差分脉冲编码技术的语音压缩编码算法,压缩比为,因其算法非常简单,可用单片机如系列实现。此8:3(51)算法可用于低成本的单片机语音存储系统或语音传输系统。最后还给出了此算法在远距离语音信号传输中的应用实例,在此实例中采用的是单片机,在传输信道上实现了全双工远距离语音信号传输。C8051F330RS-422关键词:语音压缩;自适应差分脉冲调制;微控制器;单片机;C8051F***

A Speech Code Algorithm on SCM and Its Application

WAN Xiaohua, CHEN Liankun

(School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044)

【Abstract 】This paper presents an algorithm which adopts the technology of adaptive differential pulse code modulation to promote the compress ratio to 8:3 and is fulfilled by SCM (for example the series of 51) because of its simplicity. This algorithm can be applied to low-cost SCM speech memory system or speech transportation system. Finally the instance is presented which is applied to the long-distance transportation of speech signal with C8051F330 SCM on RS-422 channel.

【Key words 】Speech compression; ADPCM; MCU; SCM; C8051F***

第卷 第期316№Vol.31 6计 算 机 工 程Computer Engineering

年月

20053 March 2005

·多媒体技术及应用·

中图分类号: TP912.34

文章编号:———10003428(2005)06 018402

文献标识码:A

——

184

表显出了样本差值大小和编码的输出。例如,如果样1本实际值与预测值的差值在范围中,其中是阶尺[1ss,1.5ss)ss 度,则输出是。

0|10表阶尺度和位量化编码

1 3如果差值落入区间位3编码如果差值落入区间位3编码∞)[1.5SS,011∞(-,-1.5SS]111)[1SS,1.5SS 010(-1.5SS,-1SS]110)[0.5SS,1SS 001(-1SS,-0.5SS]101)

[0,0.5SS 000

(-0.5SS,0)

100

编码算法的自适应调整

1.2.2 编码算法的自适应调整主要是对量化阶进行自适应修

正,量化阶尺度的变化基于当前阶的尺度和上一个量化输出。位编码中除最左边位符号位外的其余位作为对当前

312音频样本计算得到的量化级数,用作第一个表的索引。这个表中查得的表项用于第二个表的索引修正。索引修正与上一次储存的索引相加,检查所得到的和,看是否处于合适的范围,然后作为索引用于第二个表的查询。这个索引值被存储起来,用于下一步的自适应计算。第二个表中查得的表项是新的量化阶尺度。图显示了这一过程。

2index[i+1]=index[i]+index [X i ]

一种适用于单片机的语音编码算法及应用

图阶尺度自适应

2 表和表即为这两个表。当量化值较大时,表用232 index 较大的阶尺度调整索引。

表2 index

位量化的幅度2索引调节00-101-110

211

4

表3 step

索引步长索引步长索引步长索引步长0261312371888137161343191002481914502011336923155821

127

4

8102716675

10

11

32

17

77

编码算法在单片机上的具体应用

2 在机与通信工业中特别是远距离传输应用最广泛的PC 串行接口是和。定义了一种平衡通信RS-422RS-485RS-422接口,最大传输距离为英尺约,最大传输速率4 000(1219m)为。其平衡双绞线的长度与传输速率成反比,在10Mbps 速率以下,才可能达到最大传输距离。而与100kbps RS-485一样,要在速率以下,才可能使用规定最长RS-422100kbps 的电缆长度。在实际应用中,语音信号的采样频率通常为,如果不进行压缩,则传输速率达到11.025kHz 11.025*8*10/,不利于远距离传输,无法传输几公里甚至十

8=110.25kbps 几公里的距离,传输性能也不稳定。而通过采用这一改进算法,传输信道上实现了全双工远距离语音信号传RS-422输。

通信参数的选择

2.1 以单片机为核心的语音系统在远距离传输时要保证运行速度快、准确度高,就必须选用高性能、高速的C8051F***系列单片机。在实验中采用单片机,取,C8051F33024.5MHz 作为系统时钟,语音信号采样频率为,单片机语11.025kHz 音信号进行传输时数据格式是位,其中包括个起始位,1119个数据位和个停止位,表给出了具体格式。

14表数据格式

4 数据1(3)数据2(3)数据3(3)STOP(1)

每次传输时包括了个位编码。在语音传输时必须保证33通信速率≥,取通信速率11.025*3*11/9=40.425kHz =,保证了压缩编码传输的44.384kHz(24.5MHz/552(2*12*23))准确性。编解码算法在单片机应用上的具体改进

2.2 /单片机包含位的,具体实验中因采样C8051F33010ADC 声音数据为位,只用到中的位。编码时采用定时器8ADC 8中断作为系统时基,计数值为185(24.5MHz/11.025kHz=,位自动重装。编码算法的时间计数值2222.2222=12*1858)为,在定时器允许范围内,即声音数据经过转换后能12A/D 及时压缩,避免了时间上的冲突。解码时使用了缓冲区,将接收到的编码值先存放在缓冲区内,再进行解码,以免发生编码溢出。编码在传输过程中存在一定的误码率,但经实验测试证明,并不影响声音的可听度。压缩解压缩过程中的自动校频

2.3 /由于编码和解码的单片机时钟频率不同,压缩和解压缩的速度不同步,往往会出现解码时编码溢出或停止,使连续的语音信号中断,因此必须进行自动校频,使解压缩的频率能自动跟踪上压缩的频率。算法中规定每收到个编码值400就自动进行校验,看解码的频率是否与编码频率一致,不一致则进行调整,并将调整值进行保存,以便下次调整时与其进行比较并校频。通过自动校频过程,理论上最佳效果是解码频率能与编码频率一致,理论误差为由于定时器计数1%(值大约为,因此误差为。

1801/180=1%)在具体实验中,由于的定时器误差为,C8051F3302%为防止解码频率过调,因此规定解码的频率调整也在±。

2%结束语

3 通过具体实验表明,该编码算法能有效地应用于单片机特别是远距离传输语音信号系统,压缩比达到:,并且()83算法简单,能在满足成本低廉的条件下达到较好的语音压缩效果,产生分为的语音质量。

MOS(Mean Opinion Score)4参考文献

1 Salomon D. Data Compression: the Complete Reference (Second

北京:电子工业出版社,Edition). 2003

李刚,林凌与兼容的高性能、高速单片机2 . 8051-C8051F***. 北京:北京航空航天大学出版社,2002

房德新,魏建强语音编码器在上的实现微计算3 . ITU G.726 DSP . 机信息,2001

徐爱钧,彭秀华单片机高级语言应用程序设计北京:电子工4 . C51.业出版社,1998

——

185