一种基于神经网络双讲检测的回声消除方法及系统技术方案

技术编号:35897483 阅读:34 留言:0更新日期:2022-12-10 10:32
本发明专利技术提供一种基于神经网络双讲检测的回声消除方法及系统,涉及音频处理技术领域。本发明专利技术通过使用双讲检测结果控制线性前处理中自适应滤波器的更新与否;当检测到远端无人声信号时,停止更新自适应滤波器。防止双讲状态或是远端仅存在环境噪声时自适应滤波器由于受到扰动偏离稳定点而发散;通过使用双讲检测结果控制非线性后处理中对于回声的最大抑制量,在检测到近端与远端人耳同时讲话时,结合人耳的听觉掩蔽效应估算出能够掩蔽残留回声所需的最大抑制量。在保留近端有用信号失真度小的同时,残留回声也得到有效抑制;在检测到仅有远端人耳信号单讲时,提升对残留回声信号的抑制,使得残留回声能被彻底去除干净。使得残留回声能被彻底去除干净。使得残留回声能被彻底去除干净。

【技术实现步骤摘要】
一种基于神经网络双讲检测的回声消除方法及系统


[0001]本专利技术涉及音频处理
,尤其涉及一种基于神经网络双讲检测的回声消除方法及系统。

技术介绍

[0002]声学回声消除(acoustic echo cancelling,AEC)算法是一种语音信号处理及语音通讯领域的常用算法之一,广泛用于语音通讯与智能语音人机交互等应用中。在语音通讯中,主要是为解决全双工通话过程中任何一端说话人听到自己说话声(回声)的问题。使用回声消除算法可以在近端提前进行去回声处理,之后再送达远端,这样远端说话人将不再听到自己的说话声。在智能语音人机交互过程中,为了防止智能设备自己播放的音乐或者说话声对语音识别构成干扰,也需要使用回声消除算法提前将自已播放的声音去除,以防止误识别和提高识别率。
[0003]现有的AEC方法中,通常利用自适应线性滤波器去估计回声信号,然后根据估计的回声信号抵消掉通信系统中的回声信号。为了提升AEC方法中线性自适应滤波器的效果,通常增加双讲检测模块(double

talkdetection,DTD),来配合自适应线性滤波器。双讲检测模块用于检测通信双方的讲话状态,例如,通信双方同时讲话时为双讲状态。相关技术中,在通信的一端,通过检测本端语音信号(即近端语音信号)和另一端的语音信号(即远端语音信号),来确定是否为双讲状态。
[0004]但是现有的双讲检测方案鲁棒性差、检测准确率不高的问题,使得回声消除效果不理想;此外,仅通过线性自适应滤波器对回声信号进行消除,得到的信号中仍然有线性残留回声与非线性残留回声信号,会影响最终的回声消除效果。
[0005]因此,有必要提供一种基于神经网络双讲检测的回声消除方法及系统来解决上述技术问题。

技术实现思路

[0006]为解决上述之一技术问题,本专利技术提供的一种基于神经网络双讲检测的回声消除方法,包括输入信号处理、线性自适应滤波处理、非线性后处理、RNN双讲检测和输出信号处理。
[0007]具体的,输入信号处理:采集近端的麦克风信号和远端的参考信号,并以数字信号流形式进行传输;将麦克风信号和参考信号分别存储至输入缓冲区中,所述输入缓冲区将信号分块为若干数据块,所述数据块包括麦克风信号数据块d
l
(n)和参考信号数据块x
l
(n);其中l=1,2,3,

表示数据块序号,n=0,1,2,

,n表示每个数据块样点序号,N是每个数据块样点总数。
[0008]具体的,RNN双讲检测:通过递归神经网络RNN对麦克风信号与参考信号进行人声检测,并利用有限状态机控制给出双讲检测状态结果db_flag(l),其中,所述双讲检测状态结果db_flag(l)包括:只有远端有人声的远端单讲状态far_talk_only,只有近端有人声的
近端单讲状态near_talk_only和远端近端都有人声的远近端双讲状态doble_talk;所述双讲检测状态结果db_flag(l)用于对线性自适应滤波处理和非线性后处理进行反馈调节。
[0009]具体的,线性自适应滤波处理:接收麦克风信号数据块d
l
(n)、参考信号数据块x
l
(n)并进行逐点数据处理;数据处理通过NLMS算法进行,并通过双讲检测状态结果db_flag(l)进行自适应调节,得到自适应更新后的滤波器系数通过滤波器系数计算自适应更新后的残差信号e
l
(n)。
[0010]具体的,非线性后处理:用于进一步去残差信号e
l
(n)中线性残留回声与非线性残留回声信号;得到AEC输出信号数据块out
l
(n)。
[0011]具体的,输出信号处理:将去除回声后的AEC输出信号数据块out
l
(n)存入输出缓冲区,并进行数据合并,得到连续的音频数据流进行输出。
[0012]作为更进一步的解决方案,所述线性自适应滤波处理通过如下步骤进行:
[0013]接收麦克风信号数据块d
l
(n)和参考信号数据块x
l
(n),初始化滤波器系数向量
[0014]其中,表示第l号参考信号数据块第n点的参考信号向量;表示当前x
l
(n)对应的滤波器系数向量;T表示当前向量的转置,L为初始化时设定的滤波器长度,的初始化值均设置为0;
[0015]通过上一帧第n点的滤波器系数估计当前帧第n点的回声信号
[0016][0017]通过估计的回声信号计算当前帧第n点估计的残差信号e
l
(n):
[0018][0019]计算参考信号能量E
l,x
(n):
[0020]E
l,x
(n)=x
l
(n)
T
x
l
(n)
[0021]计算可变步长因子μ
l
(n);
[0022]更新估计的回声信号与估计的残差信号e
l
(n)的自相关函数与互相关函数:
[0023][0024][0025]其中,r
dd
(n)为回声信号自相关函数;r
de
(n)为回声信号与残差信号e
l
(n)的互相关函数,其中,α为遗忘系数,r
dd
(n)和r
de
(n)的函数初始值设置为0;
[0026]进行RNN双讲检测,得到双讲检测状态结果db_flag(l);
[0027]根据双讲检测状态结果db_flag(l)、上一帧第n点的滤波器系数可变步长因子μ
l
(n)、参考信号向量x
l
(n)、残差信号e
l
(n)和参考信号能量E
l,x
(n)对滤波器系数进行滤波器系数自适应更新;
[0028]通过自适应更新后的滤波器系数计算自适应更新后的残差信号e
l
(n);
[0029]将自适应更新后的残差信号e
l
(n)作为线性自适应滤波输出结果,通过上述步骤对数据块内各点进行逐点处理,得到数据块的残差信号输出:[e
l
(n),n=0,1,2,

,N]。
[0030]作为更进一步的解决方案,所述可变步长因子μ
l
(n)通过如下公式计算:
[0031][0032]其中,ε为正则化因子;μ0为最大的自适应步长常数;r
dd
(n)为回声信号的自相关函数;r
de
(n)为回声信号与残差信号e
l
(n)的互相关函数。
[0033]作为更进一步的解决方案,滤波器系数自适应更新通过如下公式计算:
[0034][0035]其中,db_flag(l

1)表示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于神经网络双讲检测的回声消除方法,其特征在于,包括输入信号处理、线性自适应滤波处理、非线性后处理、RNN双讲检测和输出信号处理;输入信号处理:采集近端的麦克风信号和远端的参考信号,并以数字信号流形式进行传输;将麦克风信号和参考信号分别存储至输入缓冲区中,所述输入缓冲区将信号分块为若干数据块,所述数据块包括麦克风信号数据块d
l
(n)和参考信号数据块x
l
(n);其中l=1,2,3,...表示数据块序号,n=0,1,2,...,n表示每个数据块样点序号,N是每个数据块样点总数;RNN双讲检测:通过递归神经网络RNN对麦克风信号与参考信号进行人声检测,并利用有限状态机控制给出双讲检测状态结果db_flag(l),其中,所述双讲检测状态结果db_flag(l)包括:只有远端有人声的远端单讲状态far_talk_only,只有近端有人声的近端单讲状态near_talk_only和远端近端都有人声的远近端双讲状态doble_talk;所述双讲检测状态结果db_flag(l)用于对线性自适应滤波处理和非线性后处理进行反馈调节;线性自适应滤波处理:接收麦克风信号数据块d
l
(n)、参考信号数据块x
l
(n)并进行逐点数据处理;数据处理通过NLMS算法进行,并通过双讲检测状态结果db_flag(l)进行自适应调节,得到自适应更新后的滤波器系数通过滤波器系数计算自适应更新后的残差信号e
l
(n);非线性后处理:用于进一步去残差信号e
l
(n)中线性残留回声与非线性残留回声信号;得到AEC输出信号数据块out
l
(n);输出信号处理:将去除回声后的AEC输出信号数据块out
l
(n)存入输出缓冲区,并进行数据合并,得到连续的音频数据流进行输出。2.根据权利要求1所述的一种基于神经网络双讲检测的回声消除方法,其特征在于,所述线性自适应滤波处理通过如下步骤进行:接收麦克风信号数据块d
l
(n)和参考信号数据块x
l
(n),初始化滤波器系数向量其中,表示第l号参考信号数据块第n点的参考信号向量;表示当前x
l
(n)对应的滤波器系数向量;T表示当前向量的转置,L为初始化时设定的滤波器长度,的初始化值均设置为0;通过上一帧第n点的滤波器系数估计当前帧第n点的回声信号估计当前帧第n点的回声信号通过估计的回声信号计算当前帧第n点估计的残差信号e
l
(n):计算参考信号能量E
l,x
(n):E
l,x
(n)=x
l
(n)
T
x
l
(n)计算可变步长因子μ
l
(n);更新估计的回声信号与估计的残差信号e
l
(n)的自相关函数与互相关函数:
其中,r
dd
(n)为回声信号自相关函数;r
de
(n)为回声信号与残差信号e
l
(n)的互相关函数,其中,α为遗忘系数,r
dd
(n)和r
de
(n)的函数初始值设置为0;进行RNN双讲检测,得到双讲检测状态结果db_flag(l);根据双讲检测状态结果db_flag(l)、上一帧第n点的滤波器系数可变步长因子μ
l
(n)、参考信号向量x
l
(n)、残差信号e
l
(n)和参考信号能量E
l,x
(n)对滤波器系数进行滤波器系数自适应更新;通过自适应更新后的滤波器系数计算自适应更新后的残差信号e
l
(n);将自适应更新后的残差信号e
l
(n)作为线性自适应滤波输出结果,通过上述步骤对数据块内各点进行逐点处理,得到数据块的残差信号输出:[e
l
(n),n=0,1,2,...,N]。3.根据权利要求2所述的一种基于神经网络双讲检测的回声消除方法,其特征在于,所述可变步长因子μ
l
(n)通过如下公式计算:其中,ε为正则化因子;μ0为最大的自适应步长常数;r
dd
(n)为回声信号的自相关函数;r
de
(n)为回声信号与残差信号e
l
(n)的互相关函数。4.根据权利要求3所述的一种基于神经网络双讲检测的回声消除方法,其特征在于,滤波器系数自适应更新通过如下公式计算:其中,db_flag(l

1)表示...

【专利技术属性】
技术研发人员:姜黎龚永康胡奎孙江涛
申请(专利权)人:杭州芯声智能科技有限公司
类型:发明
国别省市:

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

1