论文部分内容阅读
摘要:低速率语音压缩算法是一个复杂度较高、运算量较大、并且有着重要现实意义的课题。1.2kbps MELP算法是目前甚低速率压缩算法中较为优秀的算法。本文首先分析了语音压缩编码的现状,然后介绍了1.2kMELP算法的基本原理及比特分配情况,最后对1.2kMELP算法的性能作出了评测。
关键字:语音压缩;1.2kMELP;线性预测
Research on 1.2kbps MELP Speech Decoding
MENG Jie
(College of Information and Communication Engineering,Beijing University Of Post And Telecom,Beijing,100876)
Abstract: Low bit rate speech decoding is a complicated subject but with important practical significance.1.2kbps MELP algorithm is one of the most excellence low bit rate speech decoding algorithm.It analyses the current status of the low bit rate speech decocing,then introduces the theory and the distribution of the sending bit of the MELP algorithm.At last,it assesses the performance of the algorithm.
Key words: Speech decoding;1.2kMELP; linear prediction
0 引言
1981年美国公布的联邦标准线性预测编码算法LPC-10的编码原理在上一章有了简单的介绍,但是由于音质效果不令人满意,后来又提出了增强型的LPC-10e,结果仍然不理想。MELP编码算法是在LPC-10的基础上加入了多带混合激励、非周期脉冲,残差谐波谱处理、自适应谱增强以及脉冲整形等五种关键技术,使得1.2Kb/s速率的MELP语音质量优于2.4Kb/s的LPC-10语音编码。语音质量提高、编码速率下降的同时,编码复杂度大大提。
1 1.2kMELP声码器原理
1.1 MELP声码器的关键技术
MELP声码器结合了混合激励和多带激励的思想,以LPC模型为基础,同时在激励信号产生和基音提取方面做了一些改进,提高了语音合成质量。这些方法主要包括多带混合激励、使用非周期脉冲、残差谐波谱处理技术、自适应谱增强技术和脉冲整形滤波。
(1)多带混合激励
MELP模型使用5个叠加而成的分带滤波器将语音信号分成0~500Hz,500~1000Hz,1000~2000Hz,2000~3000Hz, 3000~4000Hz五个频段。滤波后的语音信号经过全波整流及平滑滤波,进行清/浊音判断来得到对应的频带基音。MELP模型使用一个随频率变化的清/浊音判决器来代替LPC模型中简单的清/浊音开关。用混合激励去到了LPC中简单的二元激励,这样使得从频域上对激励信号的的划分更加精细,合成的激励也更加准确,这种改进减少了LPC声码器中常有的蜂鸣声,对宽带声源改进的效果十分明显。
(2)使用非周期脉冲
LPC模型中将语音分为清音和浊音,而MELP模型将采集的语音信号分为三类:清音、浊音和抖动浊音。抖动浊音是将一些周期性不是很强的浊音段用非周期标志来标识,在接收端解码的时候根据接收到的非周期性标志位来判断该语音帧时抖动浊音还是浊音,若为抖动浊音,则在基音周期在一个区间随机变动来减弱合成语音的周期性。这样做可以很好的模拟那些不稳定的声门脉冲,从而使合成的语音更加逼近原始的语音激励。
(3)残差谐波谱处理技术
残信号往往含有大量语音信息,但是由于需要控制码率,所以以往的低速率语音压缩算法在生成激励时,忽略它的幅度特性,只关注它的周期性。MELP单独使用几个比特来对残差信号进行处理,但是这几比特仅仅用于描述残差信号的重要特征—各基音周期谐波处的傅里叶级数幅度值。1.2Kb/s的MELP算法对最低10阶谐波的傅里叶级数进行量化,10阶以上的傅里叶级数值认为是平坦的。对残差信号进行传输,大大提高了合成语音的清晰度、自然度、抗背景噪声的能力,改善了传统LPC模型合成语音的嘶哑,发闷和合成音重等缺点。
(4)自适应谱增强技术
传统的LPC的合成滤波器采用全极点的模型,其极点的位置与自然语音的共振峰存在偏差,导致了共振峰之间的合成语音谱的波谷没有原始语音的波谷尖锐,从而使合成语音听起来发闷。MELP算法引入了自适应谱增强技术来改善这一情况。自适应谱是指让吉利信号经过自适应谱增强滤波器来实现的。
(5)脉冲整形滤波
脉冲整形滤波是通过脉冲散布滤波器来实现的,脉冲散布是基于谱平整的三角脉冲定长滤波器来实现的,该滤波器能将激励信号的能量较均匀的分布到整个语音信号的频谱段上。通过脉冲整形滤波之后在解码端输出地合成语音中,远离共振峰的波形的峰值被减小了,使输出的语音听起来更加自然。
1.2 MELP声码器的编码原理
下图为1.2kMELP声码器的编码框图,与2.4k的MELP算法一样,1.2kMELP算法也分为两步:参数的提取与参数的量化。抽样后的语音首先经过一个四阶的切比雪夫滤波器做预处理,除去语音信号中的直流工频干扰,然后信号经过多五个带通滤波器将信号分成5个子带信号,然后进行参数的提取,其中需要提取的参数包括:基音周期、子带清浊音强度、增益、线性预测系数、傅里叶级数的幅值。进行参数量化时,其他系数都与2.4kMELP量化方法一致,进行直接量化。对于线性预测系数LSF,1.2Kb/sMELP算法采用三帧联合量化编码,仅对第1、3子帧的LSF参数进行量化和传输,解码端通过内插得到第二帧的LSF参数。这样量化时利用帧间的相关性,节约了量化比特,减低了码率。 图1 1.2kMELP声码器编码框图
1.3 MELP编码参数的比特分配与发送
本算法中将2.4Kb/sMELP算法中的单帧帧长由22.5ms增加到25ms,其次,本算法将相邻的三帧联合起来组成超级帧,然后对超级帧进行编码解码。编码的比特数为90比特,而每个超级帧的帧长为75ms,共600个样点,此时编码速率为90/0.075=1200b/s。这90比特中包括LSF参数、增益参数、傅里叶频谱、基音周期参数、带通清浊音判断参数。具体的比特分配如下表。
表1 MELP编码参数比特分配表
2 MELP算法性能测试
2.1 合成语音波形图
首先选取一段PCM格式的语音文件,分别将它进行1.2kMELP及2.4kMELP的压缩编码,随后进行解码,语音合成。使用Cool Edit软件将两种速率的MELP算法合成的语音文件与原始语音文件进行比较,如下图:
图2 原始语音波形
图3 2.4kMELP合成语音波形
图4 1.2kMELP合成语音波形
通过以上的波形对比可以看出原始的语音信号在时域和频域上与重建出的波形都有一定的差别,2.4kbps压缩速率重建出的语音波形较之1.2kbps的压缩更接近于原始波形,由于2.4kbps速率的MELP压缩是采用每帧单独编解码的算法,它忽略的帧间的相关性,所以在波形上与原始语音数据还是有差别的,然而1.2kbps的MELP压缩算法是采用三帧联合量化,这样可以利用帧间的相关性,所以即使是采用较少的比特进行量化,仍能获得较好的语音量化质量。
2.2 合成语音质量测试
此实验邀请10名同学在安静环境下对2.4KbpsMELP及1.2KbpsMELP编码算法进行MOS主观评价测试。具体方法为,参加测试的10名同学从MOS评价方法划定的5个等级中选出其中某一级作为测试者对测试语音的品定,然后对总的MOS评分取平均值。实验结果如下表:
表2 2.4k MELP算法MOS评分
表3 1.2k MELP算法MOS评分
由以上评分可得2.4KbpsMELP算法的平均MOS得分为3.2,1.2KbpsMELP算法的平均MOS得分为2.8,实验表明,1.2KbpsMELP具有足够的可懂度,但是自然度以及在讲话人的确认等方面还不够好。
2.3 算法延时测试
在1.2kbpsMELP算法中,为了达到更好的语音压缩质量,算法采用三个单帧组成一个超级帧进行量化,单帧长度为25ms,超级帧长度为75ms。由于一帧25ms长度较短,本实验选取一段长度为150ms的语音文件,对它进行100次的压缩单独测试编码延时,随后进行一百次的解压单独测试解码延时,然后又进行100次编码后直接解码的运算求出编解码的总延时。经过试验,100次压缩耗时9402.463ms,单独解码100次耗时30128.4887ms,连续压缩解压100次耗时35317.5635ms,由此可以得出1.2kbpsMELP算法延时结果如下表:
表4 1.2kMELP算法延时测试
由上表可以看出,本文设计的甚低速率语音编码算法的编解码总延时小于200ms,满足实时传输的需求。
3 结论
本论文介绍的1.2k MELP算法,将三个长度为25ms的单帧组成一个75ms的超级帧进行联合量化,编码的比特数为90比特,达到了1.2k 的速率目标。通过合成语音波形相似度、合成语音质量、算法延时三方面的评测,验证了此MELP算法具有实时压缩的能力,并且合成语音质量良好。
[参考文献] (References)
鲍长春. 低比特率数字语音编码基础[M]. 北京:北京工业大学出版社,2001.
郭莉. MELP甚低速率语音编码算法研究[D]. 北京:北京邮电大学,2008.
鲍长春. 数字语音编码原理[M], 西安:西安电子科技大学出版社,2007.
胡航. 语音信号处理[M]. 北京:电子工业出版社,2000.
张巍. 基于MELP的甚低速率语音编码算法研究[D]. 北京:华北电力大学,2007.
王洪. 低速率语音编码[M]. 北京:国防工业出版社,2006.
关键字:语音压缩;1.2kMELP;线性预测
Research on 1.2kbps MELP Speech Decoding
MENG Jie
(College of Information and Communication Engineering,Beijing University Of Post And Telecom,Beijing,100876)
Abstract: Low bit rate speech decoding is a complicated subject but with important practical significance.1.2kbps MELP algorithm is one of the most excellence low bit rate speech decoding algorithm.It analyses the current status of the low bit rate speech decocing,then introduces the theory and the distribution of the sending bit of the MELP algorithm.At last,it assesses the performance of the algorithm.
Key words: Speech decoding;1.2kMELP; linear prediction
0 引言
1981年美国公布的联邦标准线性预测编码算法LPC-10的编码原理在上一章有了简单的介绍,但是由于音质效果不令人满意,后来又提出了增强型的LPC-10e,结果仍然不理想。MELP编码算法是在LPC-10的基础上加入了多带混合激励、非周期脉冲,残差谐波谱处理、自适应谱增强以及脉冲整形等五种关键技术,使得1.2Kb/s速率的MELP语音质量优于2.4Kb/s的LPC-10语音编码。语音质量提高、编码速率下降的同时,编码复杂度大大提。
1 1.2kMELP声码器原理
1.1 MELP声码器的关键技术
MELP声码器结合了混合激励和多带激励的思想,以LPC模型为基础,同时在激励信号产生和基音提取方面做了一些改进,提高了语音合成质量。这些方法主要包括多带混合激励、使用非周期脉冲、残差谐波谱处理技术、自适应谱增强技术和脉冲整形滤波。
(1)多带混合激励
MELP模型使用5个叠加而成的分带滤波器将语音信号分成0~500Hz,500~1000Hz,1000~2000Hz,2000~3000Hz, 3000~4000Hz五个频段。滤波后的语音信号经过全波整流及平滑滤波,进行清/浊音判断来得到对应的频带基音。MELP模型使用一个随频率变化的清/浊音判决器来代替LPC模型中简单的清/浊音开关。用混合激励去到了LPC中简单的二元激励,这样使得从频域上对激励信号的的划分更加精细,合成的激励也更加准确,这种改进减少了LPC声码器中常有的蜂鸣声,对宽带声源改进的效果十分明显。
(2)使用非周期脉冲
LPC模型中将语音分为清音和浊音,而MELP模型将采集的语音信号分为三类:清音、浊音和抖动浊音。抖动浊音是将一些周期性不是很强的浊音段用非周期标志来标识,在接收端解码的时候根据接收到的非周期性标志位来判断该语音帧时抖动浊音还是浊音,若为抖动浊音,则在基音周期在一个区间随机变动来减弱合成语音的周期性。这样做可以很好的模拟那些不稳定的声门脉冲,从而使合成的语音更加逼近原始的语音激励。
(3)残差谐波谱处理技术
残信号往往含有大量语音信息,但是由于需要控制码率,所以以往的低速率语音压缩算法在生成激励时,忽略它的幅度特性,只关注它的周期性。MELP单独使用几个比特来对残差信号进行处理,但是这几比特仅仅用于描述残差信号的重要特征—各基音周期谐波处的傅里叶级数幅度值。1.2Kb/s的MELP算法对最低10阶谐波的傅里叶级数进行量化,10阶以上的傅里叶级数值认为是平坦的。对残差信号进行传输,大大提高了合成语音的清晰度、自然度、抗背景噪声的能力,改善了传统LPC模型合成语音的嘶哑,发闷和合成音重等缺点。
(4)自适应谱增强技术
传统的LPC的合成滤波器采用全极点的模型,其极点的位置与自然语音的共振峰存在偏差,导致了共振峰之间的合成语音谱的波谷没有原始语音的波谷尖锐,从而使合成语音听起来发闷。MELP算法引入了自适应谱增强技术来改善这一情况。自适应谱是指让吉利信号经过自适应谱增强滤波器来实现的。
(5)脉冲整形滤波
脉冲整形滤波是通过脉冲散布滤波器来实现的,脉冲散布是基于谱平整的三角脉冲定长滤波器来实现的,该滤波器能将激励信号的能量较均匀的分布到整个语音信号的频谱段上。通过脉冲整形滤波之后在解码端输出地合成语音中,远离共振峰的波形的峰值被减小了,使输出的语音听起来更加自然。
1.2 MELP声码器的编码原理
下图为1.2kMELP声码器的编码框图,与2.4k的MELP算法一样,1.2kMELP算法也分为两步:参数的提取与参数的量化。抽样后的语音首先经过一个四阶的切比雪夫滤波器做预处理,除去语音信号中的直流工频干扰,然后信号经过多五个带通滤波器将信号分成5个子带信号,然后进行参数的提取,其中需要提取的参数包括:基音周期、子带清浊音强度、增益、线性预测系数、傅里叶级数的幅值。进行参数量化时,其他系数都与2.4kMELP量化方法一致,进行直接量化。对于线性预测系数LSF,1.2Kb/sMELP算法采用三帧联合量化编码,仅对第1、3子帧的LSF参数进行量化和传输,解码端通过内插得到第二帧的LSF参数。这样量化时利用帧间的相关性,节约了量化比特,减低了码率。 图1 1.2kMELP声码器编码框图
1.3 MELP编码参数的比特分配与发送
本算法中将2.4Kb/sMELP算法中的单帧帧长由22.5ms增加到25ms,其次,本算法将相邻的三帧联合起来组成超级帧,然后对超级帧进行编码解码。编码的比特数为90比特,而每个超级帧的帧长为75ms,共600个样点,此时编码速率为90/0.075=1200b/s。这90比特中包括LSF参数、增益参数、傅里叶频谱、基音周期参数、带通清浊音判断参数。具体的比特分配如下表。
表1 MELP编码参数比特分配表
2 MELP算法性能测试
2.1 合成语音波形图
首先选取一段PCM格式的语音文件,分别将它进行1.2kMELP及2.4kMELP的压缩编码,随后进行解码,语音合成。使用Cool Edit软件将两种速率的MELP算法合成的语音文件与原始语音文件进行比较,如下图:
图2 原始语音波形
图3 2.4kMELP合成语音波形
图4 1.2kMELP合成语音波形
通过以上的波形对比可以看出原始的语音信号在时域和频域上与重建出的波形都有一定的差别,2.4kbps压缩速率重建出的语音波形较之1.2kbps的压缩更接近于原始波形,由于2.4kbps速率的MELP压缩是采用每帧单独编解码的算法,它忽略的帧间的相关性,所以在波形上与原始语音数据还是有差别的,然而1.2kbps的MELP压缩算法是采用三帧联合量化,这样可以利用帧间的相关性,所以即使是采用较少的比特进行量化,仍能获得较好的语音量化质量。
2.2 合成语音质量测试
此实验邀请10名同学在安静环境下对2.4KbpsMELP及1.2KbpsMELP编码算法进行MOS主观评价测试。具体方法为,参加测试的10名同学从MOS评价方法划定的5个等级中选出其中某一级作为测试者对测试语音的品定,然后对总的MOS评分取平均值。实验结果如下表:
表2 2.4k MELP算法MOS评分
表3 1.2k MELP算法MOS评分
由以上评分可得2.4KbpsMELP算法的平均MOS得分为3.2,1.2KbpsMELP算法的平均MOS得分为2.8,实验表明,1.2KbpsMELP具有足够的可懂度,但是自然度以及在讲话人的确认等方面还不够好。
2.3 算法延时测试
在1.2kbpsMELP算法中,为了达到更好的语音压缩质量,算法采用三个单帧组成一个超级帧进行量化,单帧长度为25ms,超级帧长度为75ms。由于一帧25ms长度较短,本实验选取一段长度为150ms的语音文件,对它进行100次的压缩单独测试编码延时,随后进行一百次的解压单独测试解码延时,然后又进行100次编码后直接解码的运算求出编解码的总延时。经过试验,100次压缩耗时9402.463ms,单独解码100次耗时30128.4887ms,连续压缩解压100次耗时35317.5635ms,由此可以得出1.2kbpsMELP算法延时结果如下表:
表4 1.2kMELP算法延时测试
由上表可以看出,本文设计的甚低速率语音编码算法的编解码总延时小于200ms,满足实时传输的需求。
3 结论
本论文介绍的1.2k MELP算法,将三个长度为25ms的单帧组成一个75ms的超级帧进行联合量化,编码的比特数为90比特,达到了1.2k 的速率目标。通过合成语音波形相似度、合成语音质量、算法延时三方面的评测,验证了此MELP算法具有实时压缩的能力,并且合成语音质量良好。
[参考文献] (References)
鲍长春. 低比特率数字语音编码基础[M]. 北京:北京工业大学出版社,2001.
郭莉. MELP甚低速率语音编码算法研究[D]. 北京:北京邮电大学,2008.
鲍长春. 数字语音编码原理[M], 西安:西安电子科技大学出版社,2007.
胡航. 语音信号处理[M]. 北京:电子工业出版社,2000.
张巍. 基于MELP的甚低速率语音编码算法研究[D]. 北京:华北电力大学,2007.
王洪. 低速率语音编码[M]. 北京:国防工业出版社,2006.