一种支持多种语音编码制式的回声抵消实现方法

文档序号:8300073阅读:1706来源:国知局
一种支持多种语音编码制式的回声抵消实现方法
【技术领域】
[0001]本发明涉及语音处理领域,具体涉及对多通道不同语音编码制式的回声抵消处理。
【背景技术】
[0002]在语音通信过程中,网络中存在不同程度的延时,在发话端听到自己的回声,影响通话质量,当一对电话两端的语音编码制式不同的时候,通常需要将不同编码制式话音转换为PCM模式再通过一个回声抵消专用芯片完成回声抵消处理,语音的编码转换和回声抵消在不同的硬件功能实体中完成,这样增加了硬件设计成本,同时由于需要生成一种中介的PCM编码模式,既引入了编码转换损耗,又降低了信号处理效率。

【发明内容】

[0003]本发明提出了一种对PCM(脉冲编码调制),CVSD(连续可变斜率增量调制),G729(ITU-T G729),AHELP(高级混合激励线性预测)几种不同语音编码制式的回声抵消实现方法,该方法采用针对时延抖动的缓冲平滑机制,根据各通道的编码模式信息,对以上几种编码模式话音解码为线性PCM编码,并对不同编码模式话音进行采样率和增益匹配,采用近端信号检测结果作为是否对滤波器系数更新的依据,回波抵消算法的核心部分是一个自适应FIR滤波器,其抽头系数以使预测误差信号均方值最小为原则进行调整,回波抵消处理完成之后将各端的线性PCM数据编码为对端语音编码模式之后送出。
[0004]每个通道数据输入支持长度变化的数据包大小,由内部缓冲区对突发的数据进行缓冲平滑处理,在接收端各通道缓冲50ms数据之后进行解码,在发送端以1ms周期发送语音编码数据。
[0005]根据信令中各通道的编码模式信息,以1.2kbps的AHELP模式帧长度50ms作为解码时间长度的基数,以50ms的时间周期对PCM,CVSD,G729,AHELP几种编码模式话音解码为线性PCM编码,在完成回声抵消处理之后再将语音信号编码为各自的编码模式之后送出。
[0006]由于采用50ms时间基数对近端信号进行解码,相当于在近端终端与回声抵消处理之间引入了 50ms的时延,在实际处理时,采取措施将这部分延时时间抵消掉,从而减少自适应滤波器抽头系数的阶数。
[0007]对PCM、CVSD、G729、AHELP几种不同编码模式话音进行采样率匹配,将各通道话音采样率统一为Skhz标准,待回声抵消处理完成之后,再将各通道话音的采样率还原为各个通道的原采样率。
[0008]对PCM、CVSD、G729、AHELP几种不同编码模式的话音进行增益匹配,将所有编码模式话音幅度精度统一为13bit参与运算,回声抵消处理完成之后,再将各编码制式话音信号幅度还原为原始精度。
[0009]在回声抵消处理时,需要参考近端信号检测结果作为是否更新自适应滤波器系数的判据,如果检测结果显示近端有语音信号,则此时暂停更新滤波器系数,否则会引起自适应滤波器误调,导致算法发散,如果检测结果显示近端无语音信号,则继续更新滤波器系数。
[0010]近端信号检测采取以下判断方法:
(一)计算远端短时能量P1 (n)= (1-B1) P1 (η-1) + a^x2 (η),其中 ael/128,χ (η)为远端输入信号;
(二)计算近端短时能量P2 (n)= (1- a2) P2 (η-1) + a2*y2 (η),其中 a2=l/128,y (η)为近端输入信号;
(三)满足下列条件判为有近端信号:Ρ2(η) >= >/2 max (P1 (η), P1 (η-1), P1(η-2)……P1 (η-Ν)),其中 Ν=128 ;
(四)在判断为有近端信号之后,在之后的256个采样点(即32ms)内认为存在近端信号,在此32ms期间如果有样点值满足条件(三),则以此样点值为起点,之后的32ms认为存在近端信号,这样可平滑检测效果,避免对近端信号的误判。
[0011]回声抵消处理采取以下步骤完成:
(一)计算回声信号的估计值:rn= Xn ^ht (n), Xn为远端信号,ht(n)为自适应滤波器的冲击响应;
(二)计算远端信号能量:S2x(η)=(1-α).δ2χ(η-1) + α.χη2,其中 α =1/256 ;
(三)计算残差信号:en=vn_rn,其中vn为真实的回声信号;
(四)自适应滤波器系数更新:h(n+l)= ξ.h(n) + (δ2?)-1.β - en - xn,其中ξ =1-2_26为泄露因子,β =2 _9为迭代步长;
本发明方法的完整步骤如下:1)对接收话音码流进行缓冲平滑;2)根据各通道语音编码模式进行解码;3)采样率匹配;4)增益匹配;5)近端语音检测;6)自适应滤波、滤波器系数更新;7)采样率还原;8)增益还原;9)编码;10)每1ms均匀发送编码数据。
[0012]本发明的有益技术效果是:1)能够对PCM,CVSD, G729,AHELP几种不同语音编码制式的话音进行回声抵消处理;2)采取平滑缓冲机制,适应分组网环境下的时延抖动,为回声抵消器的输入提供连续均匀的话音码流,提高解码后话音听觉质量;3)设置远端信号缓冲,以前一次50ms的解码话音作为远端数据计算回声信号的估计值,抵消由于对近端信号的50ms缓冲造成的时延,从而减少自适应滤波器抽头系数的阶数;4)对解码后的话音进行采样率和增益匹配以适应对不同编码模式的回声抵消处理;5)采用近端信号检测结果作为是否对滤波器系数更新的依据,消除近端信号对滤波器的影响;6)采用使预测误差信号均方值最小的原则,更新自适应滤波器系数参数,提高回声抵消处理精度。
【具体实施方式】
[0013]针对【背景技术】中现有技术的不足,本发明提出了一种支持多种语音编码制式的回声抵消实现方法,本发明方法的流程可概括如下:1)对接收话音码流进行缓冲平滑;2)根据各通道语音编码模式进行解码;3)采样率匹配;4)增益匹配;5)近端语音检测;6)自适应滤波、滤波器系数更新;7)采样率还原;8)增益还原;9)编码;10)每1ms周期均匀发送编码数据。
[0014]上述方法流程中的步骤I)和10)共同构成时延抖动缓冲平滑处理机制,该机制对信号整形,可有效消除网络时延抖动。时延抖动缓冲平滑机制包括:在接收端对每个通道的两端分别开辟1600字节的循环缓冲区,对应PCM (64 kbps), CVSD (16 kbps), G729 (8kbps), AHELP (2.4kbps),AHELP (1.2kbps)几种编码模式的最大缓冲深度分别为200ms、800ms、1600ms、5000ms、10000ms,通道在连接建立后接收50ms数据之后进行解码,当收数据总数超过取数据总数1600字节时,将新到的数据丢弃,当收数据总数与取数据总数相等时,需重新缓冲50ms数据之后再取数据进行解码。在发送端以1ms周期将语音编码数据均匀、连续地发出。
[0015]解码周期选择50ms的依据:对于PCM和CVSD这两种波形编码来说,不存在帧的概念,PCM是每个字节代表一个采样点,CVSD是每个比特代表一个采样点,而对于G729和AHELP这两种参数编码来说,存在帧的概念,G729每帧代表80个采样点,也就是1ms内容,AHELP (2.4kbps)每帧200个采样点,时间是25ms,AHELP (1.2kbps)每帧400个采样点,时间是50ms,需要选择一个能够适应所有编码模式共同参与运算的时间基数,我们选择的50ms这个基数恰好是一帧AHELP (1.2kbps)、两帧AHELP (2.4kbps)、五帧G729所对应的时间,以统一的解码时间基数完成解码有利于简化解码过程,提高处理效率。
[0016]由于采用50ms时间基数对远端和近端信号进行解码,两端的信号需要缓冲50ms时间再解码,对于远端信号来说,这50ms时间可看做是网络时延,而对于近端信号来说,相当于在近端终端与回声抵消处理之间人为的引入了 50ms的时延,在实际处理时,采取措施将这部分延时时间抵消掉,从而减少自适应滤波器抽头系数的阶数,其实现思路如下:
设置远端参考信号缓冲区,缓冲区大小为50ms,缓冲内容为上次远端信号解码后的线性PCM值,在进行回声抵消处理时,将上次远端信号解码内容作为本次回声抵消的远端参考信号,由此信号计算回声信号的估计值,待回声抵消处理完成之后,再将本次解码得到的远端信号保存到远端参考信号缓冲区中以作为下次回声抵消的远端信号参考,这样可抵消由于对近端信号的50ms缓冲造成的时延。
[0017]在进行回声抵消处理之前,对不同编码模式话音进行采样率匹配,PCM、G729和AHELP的采样率为8khz,而CVSD采样率为16khz,不同采样率的话音不能直接进入回声抵消器中,需要将各通道解码后的线性PCM话音的采样率统一为Skhz标准,待回声抵消处理完成之后,再将各通道的采样率还原为各个通道的原采样率。
[0018]采样率的匹配采取抽取和内插的处理方法,采样率由16khz变换为8khz时,采取抽取因子为2的抽取器完成
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1