声回波消除方法和装置的制造方法_2

文档序号:9276955阅读:来源:国知局
差。
[0052] 另外,现有技术中,NLP后滤波严重依赖延迟估计模块的输出,如果参考信号和麦 克风信号不能严格对齐,NLP后滤波的处理效果也就很差。
[0053] 为了解决上述问题,本实施例在NLP后滤波之前增加NLP预处理。
[0054] 需要说明的是,NLP预处理以及后续的NLP后滤波都是在每个子带上进行的。
[0055] 参见图2, NLP预处理(S23)的流程可以包括:
[0056] S231 :根据所述自适应滤波处理后的信号,进行最佳相干系数搜索,得到实际的最 佳相干系数。
[0057] 由于延迟估计通常不能实现参考信号和麦克风信号的严格对齐,也就是说在延迟 估计时计算得到的t a可能并不是实际的最优延迟点。
[0058] 本实施例中米用最佳相干系数搜索可以得到实际的最优延迟点,例如,实际的最 优延迟点用t' a表示,以及与实际的最优延迟点对应的最佳相干系数。
[0059] 可选的,参见图3,所述进行最佳相干系数搜索,包括:
[0060] S31 :获取当前帧的麦克风信号和当前帧的参考信号,所述当前帧的参考信号是与 所述当前帧的麦克风信号对齐后的参考信号;
[0061] S32 :获取所述当前帧的参考信号前后预设范围内的参考信号;
[0062] S33:计算所述当前帧的麦克风信号与每个获取的参考信号的相干系数,并从中确 定出最大的相干系数确定为实际的最佳相干系数。
[0063] 例如,对应每个子带自适应滤波后的参考信号和麦克风信号,取出当前帧的麦克 风信号,假设当前帧的麦克风信号用mic(T)表示,对于参考信号,不仅取出当前帧的参考 信号(由于之前进行过对齐,当前帧的参考信号是指对齐后的信号),还取出当前帧的参考 信号之前和之后的N帧的参考信号,其中,N是预设值,即取出的参考信号包括:
[0064] spk(T_ta_N),spk(T_ta_N+l),…spk(T_t a),spk(T_ta+l),…spk(T_ta+N)之后,用 当前帧的麦克风信号与每个取出的参考信号进行两两相干运算,并计算相干系数,将相干 系数最大时的延迟点确定为实际的最优延迟点。
[0065] 例如,分别计算 mic (T)与 spk(T-ta-N)的相干系数,mic (T)与 spk(T-ta-N+l)的 相干系数,…,mic(T)与spk(T-ta)的相干系数,…,mic(T)与spk(T-t a+N)的相干系数。
[0066] 其中,mic(T)与 spk(x) (X = T-ta-N,…,T-ta,…,T-ta+N)的相干系数可以表示 为:
[0068] 在计算出上述的各相干系数后,假设mic(T)与spk(X)的相干系数最大,则实际的 最优延迟点t' a的计算公式是:t' a= T-X,相应的最佳相干系数是:
[0069] R(t,a) =R(T-X)。
[0070] 通过基于延迟估计模块估计的时间点为参考的前后一定时间范围进一步的搜索 最佳的对齐时间点,这样可以很好的保证后续NLP模块的性能稳定性。
[0071] S232:根据所述实际的最佳相干系数以及预设的固定消除等级,对所述自适应滤 波处理的信号进行初步NLP滤波。
[0072] 其中,可以根据实际的最佳相干系数以及预设的固定消除等级确定初步NLP滤波 的滤波系数,并采用该滤波系数对子带自适应滤波后的信号进行NLP滤波,得到初步NLP滤 波后的信号。具体的,根据实际的最佳相干系数以及预设的固定消除等级确定初步NLP滤 波的滤波系数的计算公式可以是:
[0073] w(k)〇= w(k) a0Xf(k),
[0074] 其中,^仏^是要计算的滤波系数,w(k)是实际的最佳相干系数,a 0是预设的固 定消除等级,f(k)是已知的递增函数,k是子带索引,也是傅立叶变换的频率位。
[0075] S233:根据初步NLP滤波后的信号进行声学通道衰减量(Echo Return Loss,ERL) 更新。
[0076] ERL表征的是从扬声器到麦克风的声学通道衰减量。具体的可以用初步NLP滤波 后的信号中麦克风信号的峰值与参考信号的峰值的比值表示。
[0077] 随着麦克风信号和参考信号的不同,ERL可以实时更新。
[0078] 本实施例中,通过将经过初步NLP后的信号作为更新ERL的依据,可以有效的避免 在线性AEC模块消除量很低的情况下,ERL根本无法更新或者估计误差较大的问题。
[0079] S234:对所述初步NLP滤波后的信号,进行远端检测和双讲检测,得到检测结果。
[0080] 其中,远端检测用于检测是否存在远端信号,具体如上述的参考信号;双讲检测用 于检测是否处于双讲状态,其中,双讲状态是指远端信号和近端信号共存的情况,例如参考 信号和麦克风信号共存的状态。
[0081] 具体的,可以基于能量阈值或者神经网络模型的健壮检测方式,进行远端检测。有 效避免一些环境噪音造成非线性后处理模块出现不稳定或异常的问题,即在没有检测出远 端有效语音信号的情况下,会尽量降低非线性后处理模块对近端语音的损伤。双讲检测模 块同样基于初步NLP后的信号来进行工作,这样可以进一步提高检测的准确度,具体的双 讲检测方式可以采用通常采用的方式。
[0082] 现有技术中,双讲检测基于自适应滤波器的输出,而自适应滤波器的处理是线性 处理,而声学非线性问题,从而影响双讲检测效果。而本实施例中,通过对子带自适应滤波 处理后的信号再进行初步的NLP处理,可以至少部分解决非线性问题,提高远端检测和双 讲检测的效果。
[0083] S235:根据更新后的ERL,以及所述检测结果,进行NLP消除程度设定。
[0084] 其中,NLP消除程度设定可以获取到NLP等级。
[0085] 具体的,NLP等级可以根据S243的检测结果,以及S242的更新后的ERL值确定。 其中,ERL越高采用的消除等级越高,反之亦然。在没有远端信号的情况下,采用最小的消 除等级,以便更好的保护近端语音。
[0086] 假设NLP等级分为5级(分别用0, 1,2, 3, 4表示),
[0087] 具体实现过程的伪代码如下:
[0088] Case听筒模式:
[0089] If 无远端信号:nlpMode = 0 ;
[0090] Else if ERK0.0 5:nlpMode = 0 ;
[0091] Else if nlpMode = I ;
[0092] Case免提模式:
[0093] If 无远端信号:nlpMode = 0 ;
[0094] Else if ERL<1:nlpMode = I ;
[0095] Else if ERLM:nlpMode =4 ;
[0096] Else:nlpMode = 2 ;
[0097] If(双讲状态 &&nlpMode> =2)nlpMode -;
[0098] 参见图4, NLP等级的确定流程可以包括:
[0099] S41 :确定当前状态,当前状态包括:听筒模式或者免提模式。
[0100] 其中,可以在移动设备的用户界面(User Interface,UI)上提供选择项,由用户选 择听筒模式或者免提模式,进而执行本实施例的模块可以根据用户的选择确定当前状态。
[0101] 其中,听筒模式包括:用户直接通过扬声器收听,或者用户通过耳机收听。
[0102] S42 :在当前状态是听筒模式时,根据有无远端信号,以及更新后的ERL确定NLP等 级。
[0103] 其中,当没有远端信号时,NLP等级=0 ;或者,
[0104] 当存在远端信号且更新后的ERL小于0. 05时,NLP等级=0 ;或者,
[0105] 当存在远端信号且更新后的ERL大于或等于0. 05时,NLP等级=1。
[0106] S43 :在当前状态是免提模式时,根据有无远端信号,以及更新后的ERL确定初步 的NLP等级,并根据是否双讲状态以及初步的NLP等级,确定最终的NLP等级。
[0107] 其中,当没有远端信号时,初步的NLP等级=0 ;或者,
[0108] 当存在远端信号且更新后的ERL小于1时,初步的NLP等级=1 ;或者,
[0109] 当存在远端信号且更新后的ERL大于4时,初步的NLP等级=4 ;或者,
[0110] 当存在远端信号且更新后的ERL大于或等于1以及小于或等于4时,初步的NLP 等级=2 ;
[0111] 当双讲状态且初步的NLP等级大于或等于2时,最终的NLP等级=初步的NLP等 级-1,其他情况下,最终的NLP等级=初步的NLP等级。
[0112] 现有技术中,NLP后滤波处理对于各种品牌机型的自适应能力较弱,而本实施例 中,通过确定NLP等级,能够自适应的选择NLP的消除程度,这样做对于不同型号的手机避 免了大量的手工适配工作。
[0113] S14 :根据所述NLP处理参数,对所述自适应滤波处理后的信号进行NLP后滤波处 理。
[0114] 非线性处理(Non-Linear Pro
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1