[摘要]为了满足数字通信及其它商业应用的需求,语音压缩编码技术得到了迅速发展。特别是低码率语音编码的研究具有十分重要的现实意义。在现有的语音编码研究中,混合激励线性预测编码(MELP)是一种比较好的方法。对MELP编解码算法的原理进行简要分析,讨论如何在MATLAB上实现该算法,并研究其关键技术,最后对测试结果进行分析和比较。

[关键词]MELP语音编码混合激励线谱频率

中图分类号:TJ8文献标识码:A文章编号:1671-7597(2009)1210021-02

一、引言

随着通信技术以及互联网语音实时传输技术的迅速发展,对语音的传输速率和存储容量都提出了很高的要求,解决这些问题的主要途径之一就是语音编码。因此,语音编码的研究,特别是低码率语音编码的研究具有十分重要的现实意义。

在现有的语音编码研究中,混合激励线性预测编码(MELP)是一种比较好的方法,它结合了二元激励、码激励和多带激励的优点,将短时语音段划分为若干子带,在每个子带中分别进行清浊音判断;在合成端,采用周期性脉冲序列和随机噪声的混合序列去激励语音合成滤波器,能在较低的码率下得到较好的再生语音。2.4kb/s混合激励线性预测语音编码(MELP)的编码方法已经被确立为美国新的联邦语音编码标准。

二、MELP编解码算法

MELP算法声码器作为美军声码器技术的重要类型,在各国及各领域有广泛的应用。整个算法分为三个部分:语音参数提取、参数量化、解码。

(一)语音特征参数提取

模拟输入语音首先经过低通滤波器,然后转化成数字语音。采样率为8KHz,按180个样点(22.5ms)为一帧提取语音参数。MELP编码技术将语音分为清音、浊音和抖动浊音三种状态。一帧语音信号经过一个4阶切比雪夫高通滤波器,滤除50Hz的工频干扰,经过滤波之后的语音信号称为输入语音信号。这一帧语音信号再做以下处理:

1.基音分析:首先经过1KHz的巴特沃思低通滤波器,用归一化互相关法进行基音粗估,得到整数基音值T,然后进行分数基音分析,采用内插方法,求得分数基音估计的小数部分,此时分数基音值P为整数基音T与分数基音小数部分之和。采用6阶巴特沃思带通滤波器将一帧语音信号分为五个带,分别是[0,500Hz],[500,1000Hz],[1000,2000Hz],[2000,3000Hz],[3000,4000Hz]五个频带,利用[0,500Hz]子带信号与残差信号在分数基音值P前后5个样点进行精细基音搜索,从而得到精确基音值。

2.带通分析:在五个频带中分别计算语音强度Vi。最低频带确定非周期标志位,如果最低频带语音强度低于门限值,则非周期标志设为1,否则即为0。其余频带的语音强度由该频带与其时域包络围绕分数基音值P进行精细搜索时的归一化互相关值来决定。

3.10阶线性预测(LPC)分析:LPC线性预测分析系数的计算采用Levinson-Durbin递归算法,计算时对输入语音信号加窗,窗长200个样点(25ms),窗的中心点位于当前帧的最后一个样点。此外,对求得的10个预测系数Ai(i=1,2…10)均乘以带宽扩大系数K。LPC系数化为适合量化的线谱对(LSF)系数。

4.增益计算:使用自适应窗长,每一帧计算两次基音值。增益值是加窗信号的均方根值,以dB形式输出。

5.清浊音判决:利用由LPC系数决定的预测滤波器对输入语音信号进行滤波,得到残差信号,取残差信号的160个样点计算峰值,如果峰值大于门限值,则置最低频带的语音声强为1,如果峰值大于另一个门限值,则最低的三个频带语音声强置1。

(二)参数量化

参数提取结束,需要量化的参数有基音周期、子带清浊音判断、增益、线性预测系数、傅立叶系数、非周期标志。一共量化为54bit。具体量化包括如下:

1.基音量化:基音值和全局清浊音判断共同量化为7比特。如果低频段语音声强小于或者等于门限值,则当前帧是清音帧,传送全零码。否则为浊音帧,先将基音值取对数,再进行99级均匀量化,量化后的标号映射到7比特码本。

2.子带清浊音判决:当最低频带语音声强大于门限值时,如果其余四个子带声强值也大于门限值,则量化为0。如果其余四个子带量化后的值为0001,那么高子带置0。如果最低频带语音声强小于或者等于门限值,则该项参数量化为0。

3.增益:每一帧均传送两个增益参数。第一个增益参数采用自适应算法量化为3比特。第二个增益参数,在10.0到77.0范围内使用级均匀量化器量化为5比特。

4.线性预测系数量化:首先将LPC系数转化为易于量化的LSF系数。采用多级矢量量化方法,码本设置四级,每级量化的比特数分别为7、6、6、6。

5.傅立叶系数:若当前帧为浊音帧,则10阶傅立叶系数采用矢量量化方法。量化比特为8。若当前帧是清音帧,则不进行量化。

(三)解码部分

整个解码过程包括对接收到的数据进行解包,生成混合激励信号,再对混合激励信号经过自适应谱增强,LPC合成滤波,增益调整,脉冲离散滤波等,最后合成语音输出。总体编解码框图见图1。

图1MELP编解码原理框图

三、程序实现研究和测试结果

测试方法是这样的:采集了一段语音,采用8000bit/s采样速率,单声道,16位。先用麦克风生成一个WAV文件;接着用该程序中的WAV数据提取函数取出数据,生成一个纯数据的语音文件;然后用MELP算法处理程序对语音文件进行处理并生成一个发送的数据包文件并通过一个模拟的信道进行传送;接收端对接收到的数据包进行解码,并合成语音生成一个纯数据的语音合成文件;接着WAV数据合成函数生成一个WAV文件格式的文件;在MATLAB中使用WAVREAD命令,将原始语音读入,并用PLOT将其时域显示出来,显示波形如图2所示。

最后通过扬声器放出来,六个人比较它们的效果,比较原始语音和合成语音的有四个人认为合成语音质量不错,有二个人觉得一般。结论:合成语音的质量还可以,达到了预期的效果。

图2原始语音信号时域波形

经过MELP编码后的合成语音,数据打包放在一个数组中。然后在MATLAB环境下,用WAVWRITE命令,将其数据写出到一个WAV格式的音频文件中。用PLOT命令观察其波形,如图3所示。

图3合成语音时域波形

四、MELP编码性能分析及仿真结果

图2和图3是经过MATLAB软件仿真后所得的原始语音信号和合成语音信号的波形比较图,仿真所用的采样频率为8KHz,每个采样点用8比特进行量化。为便于观察选取其中的第100000个采样点进行观察比较,从显示结果中可以看出MELP编码算法在较低的编码比特率基础上较好的重构了原始语音信号,从听音测试的结果来看,采用MELP编码的合成语音也同样能够很好的满足现今通信系统对语音质量的要求。

参考文献:

[1]王洪、唐凯,低速率语音编码[M].北京:国防工业出版社,2006.

[2]鲍长春,低比特率数字语音编码基础,北京:北京工业大学出版社,2001,149-178.

[3]Alan V.McCree,Kwan Truong,E.Bryan George and Thomas P.Barnwell.A 2.4K BITPS MELP coder candidate for the new U.S.Federal.Proceeding of ICASSP.1996,107-112.

[4]陈显治,现代通信技术[M],北京:电子工业出版社,2001.

[5]钟明,一种2.4Kbps改进型MBELP编码,电子科学学报,2000,9(5).

[6]McCree A V.Barnwell T P.A NewMixed Excitation LPC Vocoder.IC2ASSP.199l,593-596.

[7]王炳锡,语音编码[M],西安,西安电子科技大学出版社,2002.

[8]刘宽海、葛万成,MELP低比特率数字语音编码技术研究[J]信息技术,2003,27(8):52-54.

[9]W.B.Kleijn,K.K.Paliwal.Speech Coding and Synt hesis,Amsterdam[M].The Net herlamds,Else-vier,1995,15-40.

[10]王都生、铁满霞、樊昌信,2.4kbit/s多带混合激励线性预测语音编码器的模拟[J].西安电子科技大学学报,2000,27(4):476-478.

作者简介:

贾亮(1971-),男,汉族,辽宁大石桥人,硕士研究生导师,副教授,主要从事信号处理方面的研究工作,研究方向:信号与信息处理;赵鹏飞(1980-),男,汉族,内蒙古呼和浩特人,硕士研究生,研究方向:信号与信息处理;危国腾(1984-),男,汉族,江西南昌人,硕士研究生,汉族,研究方向:信号与信息处理。

melp算法matlab,svpwm过调制算法研究与实现 [MELP声码器的算法研究及实现]相关推荐

  1. 哈密尔顿算法matlab,复杂制造过程最优哈密尔顿圈算法的MATLAB仿真与分析.doc

    摘要:当今的工业制造过程越来越复杂,产品生产批量化,单个产品组成零部件数量庞大,加工需要多道工序,且工序间连续性强,整个制造过程属于离散制造,这样必然会使生产制造过程复杂化.在这种情况下,加工方案的制 ...

  2. 基2FFT算法matlab程序编写,频率抽取(DIF)基2FFT算法的MATLAB实现

    频率抽取(DIF)基2FFT算法和时间抽取(DIT)基2FFT算法是两种等价的FFT算法,其相同之处: (1)DIF与DIT两种算法均为原位运算. (2)DIF与DIT运算量相同. 不同之处: (1) ...

  3. 卫星测控matlab程序,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序).docx...

    PAGE 4 北斗卫星导航信号串行捕获算法MATLAB仿真报告 原理 卫星导航信号的串行捕获算法如图1所示. 图1 卫星导航信号的串行捕获算法 接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且 ...

  4. burg算法 matlab,基于burg算法的谱估计研究及其matlab实现.doc

    基于burg算法的谱估计研究及其matlab实现 XX大学学院 毕业设计(论文) 相关资料 题目: 基于 其MATLAB实现 机电 系 电子信息工程 专业学 号: 学生姓名: 指导教师: (职称:讲 ...

  5. aoa定位算法matlab仿真,基于信号到达角度(AOA)的定位算法研究

    内容摘要:基于信号到达角度(AOA)的定位算法是一种常见的无线传感器网络节点自定位算法,算法通信开销低,定位精度较高.由于各种原因,估测的多个节点位置可能存在不可靠位置,提出了一种改进的基于信号到达角 ...

  6. 机组配对算法matlab,基于MATLAB的风力发电机组控制算法的研究 - 北极星风力发电网...

    4.2 载荷仿真 BLADED软件外部控制器模块能使用任何期望的控制算法,因此为验证本文所设计控制算法的性能,将对新控制算法与在VC下开发的常规控制算法进行载荷仿真比较,运行风况为如图6所示,下图所示 ...

  7. SVPWM过调制算法实现

    SVPWM过调制算法实现 我们知道SVPWM的在线性调制区的其最大的输出电压为Udc/sqrt(3),采用过调制的方法,可以时输出的基波幅值达到*2Udc/Π*.在永磁同步电机高速运行时,由于电枢反电 ...

  8. 最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究

    BP 算法的改进在M a tlab 的实现研究 姚文俊 (中南民族大学电子信息工程学院 湖北武汉 430074) 摘 要:利用M atlab 中的神经网络工具箱提供的丰富网络学习和训练函数,对BP 网 ...

  9. matlab生鲜或农产品(河马等)配送路径优化研究【matlab优化算法十八】

    生鲜农产品的定义 生鲜农产品是指可以直接在货架上出售而无需再进行进一步制作的现场加工的鲜果等初级产品.目前,生鲜农产品主要具体包括新鲜上市的蔬菜.水果.花卉.蛋.奶.生禽和水产品以及鲜肉产品,这些种类 ...

  10. 标准差分进化算法matlab程序实现(转载)

    标准差分进化算法matlab程序实现 自适应差分演化算法方面的Matlab和C++代码及论文 差分进化算法 DE-Differential Evolution matlab练习程序(差异演化DE) [ ...

最新文章

  1. 打印当前时间 毫秒_时间轮定时器
  2. mySQL教程 第10章 事务和锁
  3. Python模拟登陆 —— 征服验证码 7 京东
  4. html动画用css还是js,javascript与css3动画结合使用小结
  5. 不要给a设置outline:none
  6. java后台设置定时执行任务,Java定时任务调度详解
  7. 华为路由器配置子卡端口速率
  8. 使用python给微信推送信息(一)
  9. 2023四川大学计算机考研信息汇总
  10. GIS招聘 | 云南省自然资源厅所属事业单位
  11. VMware 14 Pro 虚拟机下CentOS 7操作系统安装教程
  12. 成功解决h5py\_init_.py
  13. 再劫面包店(村上春树)
  14. mysql 幻读理解_Mysql 幻读 的一些个人理解
  15. Hadoop 实战之分析专利引用数据集(一)
  16. oracle中的cursor属性,Oracle Cursors语法总结
  17. 通过经纬度解析商圈Scala实现方式
  18. mysql case when then end 和 if判断 常见使用方法
  19. QQ会员2018春节红包抵扣券项目实践与总结
  20. python开发电影查询系统(一)—python实现后台数据

热门文章

  1. 公关营销策划书的要点及分析
  2. Java自动生成5道100以内的加减法口算题
  3. 慕尼黑大学计算机研究生申请,慕尼黑大学读研
  4. 二十一世纪大学英语读写教程学习笔记(原文)——3 - Stevie Wonder: Sunshine in the Shadow(Stevie Wonder——黑暗中的阳光)
  5. 表格标签-表格基本结构
  6. 设计一个雇员Employee类
  7. 创建一个Employee类
  8. 气温和降水空间栅格数据下载RS123
  9. 小游戏1024纯C语言
  10. sparkStreaming算子之transform