一种回声残留判断方法技术

技术编号:26422470 阅读:28 留言:0更新日期:2020-11-20 14:18
本发明专利技术提供了回声消除领域的一种回声残留判断方法,包括:步骤S10、确认近端信号对应的远端信号、误差信号;步骤S20、对三信号进行FFT变换得到频域信号,进而计算三信号各频点的功率谱密度、互功率谱密度;步骤S30、计算近端信号和误差信号、远端信号和近端信号的相干系数;步骤S40、将声音信号的频域部分划分为三子频带,计算各子频带的误差信号的平均功率谱密度;步骤S50、基于相干系数计算各频带的平均相干系数;步骤S60、基于频域信号计算各频带的误差信号的频谱平坦度,设定阈值;步骤S70、基于频谱平坦度、阈值、平均功率谱密度以及平均相干系数判断误差信号是否有回声残留。本发明专利技术的优点在于:极大的降低了回声状态的误检率,进而减少了回声残留。

【技术实现步骤摘要】
一种回声残留判断方法
本专利技术涉及回声消除
,特别指一种回声残留判断方法。
技术介绍
当声音往返延时超过30ms时,讲话者就能分辨出回声和本地语音,回声会劣化通话音质,影响通话体验,因此,回声消除功能是通话应用中必备的一种音频处理功能,常见于视讯会议、喇叭扩声器和手机通话等。通过消除麦克风拾取信号中的回声成分,能排除回声对通话的干扰,提高语音的可懂度,并防止啸叫。传统上消除回声残留的方法是基于误差信号、近端信号和当前近端信号对应的远端信号三者的相关性,生成抑制因子,将抑制因子作用于误差信号,从而大幅衰减误差信号中的非线性回声残留,得到干净语音。但是,传统的方法存在如下缺点:使用的判断频带较为单一,遗漏了非语音频段,或者对当前所有频点的相干性求平均,相干性高的个别频点放到全局变得很小,低于阈值,导致回声状态判断和实际存在误差,误算了误差信号的抑制曲线,导致回声有残留,甚至出现回声自激引起的啸叫。经检索,申请日为2011.05.17,申请号为CN201180072348.6的中国专利技术专利公开了可实现声学回声消除的音频信号非线性后期处理方法和系统,该专利的回声消除原理如图4所示,该专利分别对误差信号、近端信号、远端信号做fft;计算误差信号和近端信号各频点的相干性,记为cde,回声残留越多,cde越小,反之越大;计算近端信号和远端信号各频点的相干性,记为cxd,它可用于辅助检查当前近端信号中是否有回声,有回声时,cxd相对较高,反之越小,为了使两种相干性的渐变方向保持一致,记c'xd=1-cxd,有回声时,c'xd相对较小,反之越大;统计cde和c'xd在首选频率带的平均相干性,基于平均值判断当前的回声状态,比如当前有回声,回声残留较多,需要提高抑制量,抑制回声残留;最后判断结果得到的抑制因子生成抑制曲线,将抑制曲线作用到误差信号就得到最终的干净语音。不过,统计cde和c'xd的平均相干性的公式为:其中N是FFTSize,fs是信号采样率。从公式中可以看到它只选择500Hz到3500Hz各频点的相干性来判断,如果当前回声为纯粹的人声,那么没有问题;如果当前远端信号为高频或纯低频为主的杂音,比如唇齿音,那么因为杂音频率在[500Hz,3500Hz]之外或者求平均之后的相干性低于判断阈值,而认为当前没有回声残留,结果就出现有回声残留或者回声自激引起的啸叫。如图5所示,就是该类算法回声消除的结果,前半段是语音,回声没有残留,后半段是唇齿音,唇齿音不但没被消除,还出现轻微的啸叫现象。因此,如何提供一种回声残留判断方法,实现降低回声状态的误检率,进而减少回声残留,成为一个亟待解决的问题。
技术实现思路
本专利技术要解决的技术问题,在于提供一种回声残留判断方法,实现降低回声状态的误检率,进而减少回声残留。本专利技术是这样实现的:一种回声残留判断方法,包括如下步骤:步骤S10、确认近端信号d(n)对应的远端信号x(n),基于所述近端信号d(n)以及远端信号x(n)得到误差信号e(n);步骤S20、分别对所述近端信号d(n)、远端信号x(n)以及误差信号e(n)进行快速傅立叶变换,分别得到对应的频域信号D(k)、X(k)以及E(k),基于各所述频域信号分别计算近端信号d(n)、远端信号x(n)以及误差信号e(n)的功率谱密度以及互功率谱密度;步骤S30、基于所述功率谱密度以及互功率谱密度,分别计算所述近端信号d(n)和误差信号e(n)、远端信号x(n)和近端信号d(n)的各频点的相干系数;步骤S40、将声音信号的频域部分划分为三个子频带,并计算各所述子频带的误差信号e(n)的平均功率谱密度;步骤S50、基于所述相干系数计算各子频带的平均相干系数;步骤S60、基于所述频域信号计算各子频带的误差信号e(n)的频谱平坦度,并设定一用于判断是否为稳态噪声的阈值;步骤S70、基于所述频谱平坦度、阈值、平均功率谱密度以及平均相干系数判断误差信号e(n)是否有回声残留。进一步地,所述步骤S10具体为:确认近端信号d(n)对应的远端信号x(n),利用频域自适应滤波算法预估所述远端信号x(n)的线性回声,将所述近端信号d(n)减去线性回声得到误差信号e(n)。进一步地,所述步骤S20中,所述基于各所述频域信号分别计算近端信号d(n)、远端信号x(n)以及误差信号e(n)的功率谱密度以及互功率谱密度具体为:近端信号d(n)的功率谱密度:Sd(k)=λSd(k-1)+(1-λ)(D(k)·D*(k));远端信号x(n)的功率谱密度:Sx(k)=λSx(k-1)+(1-λ)(X(k)·X*(k));误差信号e(n)的功率谱密度:Se(k)=λSe(k-1)+(1-λ)(E(k)·E*(k));近端信号d(n)和误差信号e(n)的互功率谱密度:Sde(k)=λSde(k-1)+(1-λ)(D(k)·E(k));远端信号x(n)和近端信号d(n)的互功率谱密度:Sxd(k)=λSxd(k-1)+(1-λ)(X(k)·D(k));其中λ表示迭代因子,且λ=0.9;k表示近端信号d(n)、远端信号x(n)以及误差信号e(n)的频点,且k为正整数;D*(k)表示D(k)的共轭复数;X*(k)表示X(k)的共轭复数;E*(k)表示E(k)的共轭复数。进一步地,所述步骤S30具体为:设所述近端信号d(n)和误差信号e(n)的各频点的相干系数为cde(k),则:设所述远端信号x(n)和近端信号d(n)的各频点的相干系数为cxd(k),则:其中表示Sde(k)的共轭复数;表示Sxd(k)的共轭复数。进一步地,所述步骤S40具体为:设定声音信号的三个子频带分别为low、middle以及high;且low、middle以及high均属于[250Hz,fs/2],其中fs表示信号采样率;当fs=8000Hz时,low=[250Hz,1750Hz],middle=[1750Hz,3000Hz],high=[3000Hz,4000Hz];当fs>8000Hz时,low=[250Hz,1750Hz],middle=[2500Hz,4000Hz],high=[4500Hz,6500Hz];设low、middle以及high子频带的误差信号e(n)的平均功率谱密度分别为Slow、Smiddle以及Shigh,通过下式进行计算:其中lowFreq表示当前频带的下限,highFreq表示当前频带的上限,N为正整数,kl表示当前频带的频点的下限,kh表示当前频带的频点的上限。进一步地,所述步骤S50具体为:设low、middle以及high子频带的近端信号d(n)和误差信号e(n)的平均相干系数分别为Hdelow、Hdemiddle以及Hdehigh,通过下式进行计算:设low、middle以及本文档来自技高网
...

【技术保护点】
1.一种回声残留判断方法,其特征在于:包括如下步骤:/n步骤S10、确认近端信号d(n)对应的远端信号x(n),基于所述近端信号d(n)以及远端信号x(n)得到误差信号e(n);/n步骤S20、分别对所述近端信号d(n)、远端信号x(n)以及误差信号e(n)进行快速傅立叶变换,分别得到对应的频域信号D(k)、X(k)以及E(k),基于各所述频域信号分别计算近端信号d(n)、远端信号x(n)以及误差信号e(n)的功率谱密度以及互功率谱密度;/n步骤S30、基于所述功率谱密度以及互功率谱密度,分别计算所述近端信号d(n)和误差信号e(n)、远端信号x(n)和近端信号d(n)的各频点的相干系数;/n步骤S40、将声音信号的频域部分划分为三个子频带,并计算各所述子频带的误差信号e(n)的平均功率谱密度;/n步骤S50、基于所述相干系数计算各子频带的平均相干系数;/n步骤S60、基于所述频域信号计算各子频带的误差信号e(n)的频谱平坦度,并设定一用于判断是否为稳态噪声的阈值;/n步骤S70、基于所述频谱平坦度、阈值、平均功率谱密度以及平均相干系数判断误差信号e(n)是否有回声残留。/n

【技术特征摘要】
1.一种回声残留判断方法,其特征在于:包括如下步骤:
步骤S10、确认近端信号d(n)对应的远端信号x(n),基于所述近端信号d(n)以及远端信号x(n)得到误差信号e(n);
步骤S20、分别对所述近端信号d(n)、远端信号x(n)以及误差信号e(n)进行快速傅立叶变换,分别得到对应的频域信号D(k)、X(k)以及E(k),基于各所述频域信号分别计算近端信号d(n)、远端信号x(n)以及误差信号e(n)的功率谱密度以及互功率谱密度;
步骤S30、基于所述功率谱密度以及互功率谱密度,分别计算所述近端信号d(n)和误差信号e(n)、远端信号x(n)和近端信号d(n)的各频点的相干系数;
步骤S40、将声音信号的频域部分划分为三个子频带,并计算各所述子频带的误差信号e(n)的平均功率谱密度;
步骤S50、基于所述相干系数计算各子频带的平均相干系数;
步骤S60、基于所述频域信号计算各子频带的误差信号e(n)的频谱平坦度,并设定一用于判断是否为稳态噪声的阈值;
步骤S70、基于所述频谱平坦度、阈值、平均功率谱密度以及平均相干系数判断误差信号e(n)是否有回声残留。


2.如权利要求1所述的一种回声残留判断方法,其特征在于:所述步骤S10具体为:
确认近端信号d(n)对应的远端信号x(n),利用频域自适应滤波算法预估所述远端信号x(n)的线性回声,将所述近端信号d(n)减去线性回声得到误差信号e(n)。


3.如权利要求1所述的一种回声残留判断方法,其特征在于:所述步骤S20中,所述基于各所述频域信号分别计算近端信号d(n)、远端信号x(n)以及误差信号e(n)的功率谱密度以及互功率谱密度具体为:
近端信号d(n)的功率谱密度:Sd(k)=λSd(k-1)+(1-λ)(D(k)·D*(k));
远端信号x(n)的功率谱密度:Sx(k)=λSx(k-1)+(1-λ)(X(k)·X*(k));
误差信号e(n)的功率谱密度:Se(k)=λSe(k-1)+(1-λ)(E(k)·E*(k));
近端信号d(n)和误差信号e(n)的互功率谱密度:
Sde(k)=λSde(k-1)+(1-λ)(D(k)·E(k));
远端信号x(n)和近端信号d(n)的互功率谱密度:
Sxd(k)=λSxd(k-1)+(1-λ)(X(k)·D(k));
其中λ表示迭代因子,且λ=0.9;k表示近端信号d(n)、远端信号x(n)以及误差信号e(n)的频点,且k为正整数;D*(k)表示D(k)的共轭复数;X*(k)表示X(k)的共轭复数;E*(k)表示E(k)的共轭复数。


4.如权利要求3所述的一种回声残留判断方法,其特征在于:所述步骤S30具体为:
设所述近端信号d(n)和误差信号e(n)的各频点的相干系数为cde(k),则:



设所述远端信号x(n)和近端信号d(n)的各频点的相干系数为cxd(k),则:



其中表示Sde(k)的共轭复数;表示Sxd(k)的共...

【专利技术属性】
技术研发人员:陈荣观薛建清刘敏陈东敏陈玉龙黄小柠
申请(专利权)人:福建星网智慧科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1