夏晓峰
(韶关学院 韶州师范分院计算机系,广东 韶关 512009)
当语音信号在实际传输过程中不可避免地要受到来自周围环境和传输媒介引入的噪声、通讯设备内部噪声、乃至其它语音的干扰时,不可能完全消除干扰信号,语音增强的主要任务就是从噪声背景中提取有用的语音信号,抑制、降低噪音干挠,提高语音质量。[1]
目前的语音识别系统大多工作在安静环境下,背景噪声的引入会严重影响识别系统的性能,判定一个语音识别系统好坏有两个指标,分别是改善语音质量和提高语音可懂度,但是两个指标难以同时达到,需要根据语音增强的具体应用场合做出不同的选择。[2]基于进一步提高语音质量和实用化、降低码率的考虑,本文对SMV算法进行改进。
SMV由四种编解码器组成,分别是全速率(Rate 1)、半速率(Rate 1/2)、1/4速率(Rate 1/4)和1/8速率(Rate 1/8)编解码器,编码率分别为8.5kbps、4.0 kbps、2.0kbps和0.8 kbps;[3]SMV有6种可选工作模式,分别记为模式0—模式5,不同模式在ADR(平均码率)和语音质量之间的侧重点略有不同,SMV编码器原理框图如图1所示。
图1 SMV编码器原理框图
其中预处理模块包括静音增强、高通滤波、噪声抑制和自适应倾斜补偿滤波。帧处理模块包括LPC分析、LSP平滑和量化、开环基音周期搜索、信号修正和语音分类。对每一语音帧(20ms),速率判决模块根据语音参数和模式信息对输入语音进行分类,并选择适当的编码类型和编码速率,再根据选择的类型和编码速率对语音参数进行量化和编码。
本文从降低码率和提高语音质量出发,对SMV 算法进行优化与改进。依次采用调整模式/码率,帧长和采样率方式进行优化,每一次优化都在前一次的基础上进行。
选用四种码率全速率、半速率、1/4速率和1/8速率中的两种全速率和1/8速率。全速率是SMV 算法中码率最高的编码方式,编码的语音质量最好,在VAD判决出有语音的情况下用它进行编码,较之原来的SMV 算法,码率提高,同时语音质量也提高,因而语音质量得以保证; 1/8速率是SMV 算法中码率最低的编码方式,在VAD判决出没有语音的情况下用它进行编码,语音质量不会降低很多;总的来说,由于码率全速率的使用概率增加,码率提高,语音质量有所改善。[4]对定点C语音的改动包括两方面:一是删除不需要的另外两种码率的程序,二是全速率的VAD检测的门限值改为1/4速率的门限值,这样原先判决用1/2速率、1/4速率编码的帧用全速率编码,编码程序简化,解码程序相对应的得到简化。
从降低码率的角度出发,增加编码帧的长度,编码时只需增加少数的比特来表示增加的脉冲,而其它的参数比特数不变,按比例总体比特数减少,从而可以达到降低码率的目的。[5]这里把语音帧20ms (60个样点)长度增加到32ms (56个样点)一帧,没有超过50ms的语音准平稳时间范围。对定点C语音的改进主要是对固定码本脉冲轨道的修改,增加的脉冲数要确保能体现增加的语音长度,同时增加的量化比特数不能太多,否则就达不到降低码率的作用。本文每个子帧增加1个脉冲,7个量化比特数,四个子帧一共增加28个比特数,下面的表1就是最后一个Rate1/Type1帧子码本单个8脉冲轨道。
表1 Rate1/Type1帧子码本单个8脉冲轨道
从提高语音质量的角度出发,采样率提高,输入语音质量提高,在输入一帧的样本数(256个样点)不变的情况下,编码语音的质量也相应提高。本文把采样率从8000/s提高到11025/s。对定点C语音的改进只需对基音周期的搜索和量化进行修改。本文每个子帧增加1个比特量化基音周期,四个子帧一共增加4个比特数。[6]
下面分别把原始SMV 算法和改进后算法的编码码率和语音质量列表进行量化比较。
1.原始SMV的四种传输码率:8550、4000、2000和800bps,改进后两种码率:8742、689bps。
2.SMV的Rate1编码后的总比特数为171 bits,编码码率计算为(171 bits)/(20ms)=8.55 kbps,改进后的Rate1编码后的总比特数为203(171+28+4)bits。
3.编码码率计划(203 bits)/(23.22ms)=8.742 kbps;改进后的Rate1/8的比特数不变,编码码率计算为(16bit)/(23.22ms)=0.689kbps。那么平均码率为8742*0.667+689*0.333=6095bps。
4.SMV算法8k解码程序所解语音的平均编码码率为6.89kbit/s,而改进算法11.025k解码程序所解语音的平均编码码率为6.82kbit/s。从仿真结果可知,两个解码语音的语音效果一样。
5.通过对程序进行汇编优化,使得算法在时间上获得了较优化,一段32ms的语音帧解码从优化前60ms到现在只需要10ms的时间,从而使得在实际应用中能为其它相关
图2 原始8K语音和原始SMV解码语音比较
图3 原始11.025K语音和原始SMV解码语音比较
的功能和算法预留更多的时间,实用化。
图4 功率谱比较
下面给出原始信号,原始SMV解码信号和改进SMV解码信号的PCM语音信号和功率谱的各种比较图。图2是原始8K语音和原始SMV解码语音比较,图3是原始11.025K语音和原始SMV解码语音比较,图4是功率谱比较。
本文对可选模式声码器SMV算法进行了深入的探讨,对SMV算法的模式/码率进行优化,不仅降低了解码程序的复杂度,有利于算法在终端的实现,而且降低了成本;对SMV算法的帧长进行优化,在语音短时平稳性范围内适量加大编码帧的长度,能够降低编码码率;对SMV算法的采样频率进行优化,把采样频率从8000hz提高到11025hz,丰富了高频成分,提高了语音质量。
在仿真平台上对优化后的SMV的算法进行编程仿真,从仿真结果观察,对优化前后的语音质量和码率进行分析和比较,表明了优化后的算法是可行的、有效的,达到了预期的质量效果。
[1]彭坦,崔慧娟,唐昆.基于低速率语音的自适应联合编码调制方案[J].清华大学学报(自然科学版),2007,47(7):1151-1154.
[2]赵力.语音信号处理[M].机械工业出版社,2003:64-65.
[3]徐燕,黄冰.CDMA的两种变速率语音编码性能比较[J].现代电子技术,2006(9):14-16.
[4]宁更新,方敏群,韦岗.SMV语音编码算法及仿真[J].计算机工程与应用,2003,29(10):84-86.
[5]黄德智,马尽文.LD-CELP语音编码算法中矢量量化过程的改进[J].电子学报,2001(10):1415-1417.
[6]苗勇,江洁.基于SMV算法的嵌入式系统设计与实现[J].微计算机信息,2008,32(11):15-16.