发明内容
本发明实施例提供了一种回声消除的方法及装置,用于提高确定远端信号为语音的准确性,从而避免错误的估计回声信号,防止在消除回声时近端信号发生失真,提升通话质量。
本发明实施例第一方面提供一种回声消除的方法,包括:
当远端输入信号的第一能量值大于第一阈值时,计算所述远端输入信号的自相关值;
当确定所述自相关值大于第二阈值时,确定所述远端输入信号为语音;
利用所述远端输入信号计算回声信号,并将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
结合本发明实施例的第一方面,在本发明实施例第一方面的第一种实现方式中,所述方法还包括:
在确定所述自相关值大于第二阈值之后,确定所述远端输入信号为语音之前,计算所述近端输入信号的第二能量值;
当确定所述第一能量值与所述第二能量值的比值在预置的比值范围内时,则触发确定所述远端输入信号为语音的步骤。
结合本发明实施例的第一方面的第一种实现方式,在本发明实施例第一方面的第二种实现方式中,所述方法还包括:
在确定所述比值不在预置的比值范围内之后,确定所述远端输入信号为语音之前,计算所述近端输入信号和所述远端信号的归一化互相关值;
当所述归一化互相关值在预置的范围内时,则触发确定所述远端输入信号为语音的步骤。
结合本发明实施例的第一方面,在本发明实施例第一方面的第三种实现方式中,所述计算所述远端输入信号的自相关值包括:
将所述远端输入信号傅里叶转换到频域,以获取所述远端输入信号的频谱幅值;
利用所述频谱幅值计算出所述自相关值。
结合本发明实施例的第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式或第一方面的第三种实现方式,在本发明实施例第一方面的第四种实现方式中,在确定所述远端输入信号为语音之后还包括,更新所述第二阈值。
本发明实施例第二方面提供一种回声消除装置,包括:
第一计算单元,用于当远端输入信号的第一能量值大于第一阈值时,计算所述远端输入信号的自相关值;
确定单元,用于当确定所述自相关值大于第二阈值时,则确定所述远端输入信号为语音;
第二计算单元,用于利用所述远端输入信号计算回声信号,并将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
结合本发明实施例的第二方面,在本发明实施例第二方面的第一种实现方式中,还包括:
第三计算单元,用于在确定所述自相关值大于第二阈值之后,确定所述远端输入信号为语音之前,计算所述近端输入信号的第二能量值;
所述确定单元,还用于确定所述第一能量值与所述第二能量值的比值是否在预置的比值范围内,当所述比值在预置的比值范围内时,则触发确定所述远端输入信号为语音的步骤。
结合本发明实施例的第二方面的第一种实现方式,在本发明实施例第二方面的第二种实现方式中,还包括:
第四计算单元,用于在确定所述比值不在预置的比值范围内之后,确定所述远端输入信号为语音之前,计算所述近端输入信号和所述远端信号的归一化互相关值;
所述确定单元,还用于确定所述归一化互相关值是否在预置的范围内,当所述归一化互相关值在预置的范围内时,则触发确定所述远端输入信号为语音的步骤。
结合本发明实施例的第二方面,在本发明实施例第二方面的第三种实现方式中,所述第一计算单元包括:
转换模块,用于将所述远端输入信号傅里叶转换到频域,以获取所述远端输入信号的频谱幅值;
计算模块,用于利用所述频谱幅值计算出所述自相关值。
结合本发明实施例的第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式或第二方面的第三种实现方式,在本发明实施例第二方面的第四种实现方式中,还包括,更新单元,用于更新所述第二阈值。
应用本发明实施例的技术方案具有如下有益效果:
计算输入端信号的第一能量值,并判断该第一能量值是否大于第一阈值,当确定该远端输入信号的第一能量值大于该第一阈值时,再计算该远端输入信号的自相关值,并继续判断该自相关值是否大于第二阈值,并当判断出该自相关值大于第二阈值时,确定该远端输入信号为语音,相对于现有技术,本发明实施例增加了对该远端输入信号的自相关值的判断,从而可以提高确定远端输入信号为语音的准确性,从而避免错误的估计回声信号,防止在消除回声时近端信号发生失真,提升通话质量。
具体实施方式
本发明实施例提供了一种回声消除的方法及装置,用于提高确定远端信号为语音的准确性,从而避免错误的估计回声信号,防止在消除回声时近端信号发生失真,提升通话质量。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种回声消除方法的一个实施例包括:
101、判断远端输入信号的第一能量值是否大于第一阈值。
可以理解的是,计算出远端输入信号的第一能量值,并将该第一能量值与第一阈值进行比较,从而判断该第一能量值是否大于该第一阈值,若否,则执行步骤102;若是,则执行步骤103。
可选的,在计算远端信号的第一能量值之前,可以将该远端输入信号进行傅里叶转换,使该远端输入信号从时域转换到频域,从而获取该远端输入信号的频谱值,并利用该频谱值计算出该第一能量值。
可选的,该第一阈值可以预先配置,并且可以对该第一阈值进行更新,具体对该第一阈值更新的方式为,将远端输入信号进行分块,并预先计算前几个分块的能量值,将计算得到的各分块的能量值保存在缓存中,并根据其中的能量最大值和能量最小值计算出该第一阈值,当该能量最大值或能量最小值发生变化时,相应地该第一阈值也发生变化,并将变化后的第一阈值进行更新,其中,该第一阈值的计算公式为:
第一阈值=(远端能量最大值-远端能量最小值)*0.28+远端能量最小值
102、结束流程。
可以理解的是,当判断出远端输入信号的第一能量值小于第一阈值时,则判断该远端输入信号为无语音,结束流程。
103、判断远端输入信号的自相关值是否大于第二阈值。
可以理解的是,当判断出远端输入信号的第一能量值大于第一阈值时,可以计算出该远端输入信号的自相关值,并将该自相关值与第二阈值进行比较,从而判断出该自相关值是否大于该第二阈值,若否,则执行步骤104,若是,则执行步骤105。
可选的,在计算远端信号的自相关值之前,可以将该远端输入信号进行傅里叶转换,使该远端输入信号从时域转换到频域,由于信号的自相关与功率谱密度是傅里叶变换对,在获取到该远端输入信号的频谱值后,可以利用该频谱值计算出该自相关值。
需要说明的是,该第二阈值可以为初始自相关门限值,也可以为初始自相关门限值更新后得到门限值。
其中,可以将步骤101中判断出的无语音分块的远端输入信号存入缓存中,并计算出这些无语音分块的自相关值,然后计算出无语音分块自相关值的平均值,通过该平均值计算出该初始自相关门限值。
计算初始自相关门限值的公式为:
其中,μ表示无语音分块自相关值的平均值,th表示初始自相关门限值。
可选的,在计算出初始自相关值之后,可以将该初始自相关门限值作为第二阈值,并使用该第二阈值对远端输入信号的自相关值进行比较,将小于该第二阈值的无语音分块存入缓存,并按照上述初始自相关门限值的计算公式计算得到新的自相关门限值,并使用该新的自相关门限值对初始门限值进行更新。
104、结束流程。
可以理解的是,当判断出该远端输入信号的自相关值小于或等于第二阈值时,则确定该远端输入信号为无语音,结束流程。
105、利用所述远端输入信号计算回声信号。
当判断出该远端输入信号的自相关值大于第二阈值时,可以对所述远端输入信号进行回声估计的自适应滤波,并当确定所述回声估计的自适应滤波结果收敛时,根据所述远端输入信号和回声滤波系数计算回声信号。
106、将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
在计算出回声信号之后,将该回声信号和近端信号进行傅里叶转换,使该回声信号和近端信号从时域转换到频域,并分别获取该回声信号和近端信号的频谱值,将近端输入信号的频谱值减去该回声信号的频谱值,从而消除所述近端输入信号中的回声。
本发明实施例,通过计算输入端信号的第一能量值,并判断该第一能量值是否大于第一阈值,当确定该远端输入信号的第一能量值大于该第一阈值时,再计算该远端输入信号的自相关值,并继续判断该自相关值是否大于第二阈值,并当判断出该自相关值大于第二阈值时,确定该远端输入信号为语音,相对于现有技术,本发明实施例增加了对该远端输入信号的自相关值的判断,从而可以提高确定远端信号为语音的准确性,从而避免错误的估计回声信号,防止在消除回声时近端信号发生失真,提升通话质量。
上面实施例中,通过远端输入信号的第一能量值和自相关值分别与第一阈值和第二阈值进行比较,从而判断出该远端输入信号是否为语音,在实际应用中,还可以增加对该第一能量值和近端输入信号的第二能量值的比较,从而判断该远端输入信号是否为语音,下面对本发实施例中一种回声消除方法的另一个实施例进行描述。
请参阅图2,本发明实施例中一种回声消除方法的另一个实施例包括:
201、判断远端输入信号的第一能量值是否大于第一阈值。
可以理解的是,计算出远端输入信号的第一能量值,并将该第一能量值与第一阈值进行比较,从而判断该第一能量值是否大于该第一阈值,若否,则执行步骤202;若是,则执行步骤203。
可选的,在计算远端信号的第一能量值之前,可以将该远端输入信号进行傅里叶转换,使该远端输入信号从时域转换到频域,从而获取该远端输入信号的频谱值,并利用该频谱值计算出该第一能量值。
可选的,该第一阈值可以预先配置,并且可以对该第一阈值进行更新,具体对该第一阈值更新的方式为,将远端输入信号进行分块,并预先计算前几个分块的能量值,将计算得到的各分块的能量值保存在缓存中,并根据其中的能量最大值和能量最小值计算出该第一阈值,当该能量最大值或能量最小值发生变化时,相应地该第一阈值也发生变化,并将变化后的第一阈值进行更新,其中,该第一阈值的计算公式为:
第一阈值=(远端能量最大值远端能量最小值)*0.28+远端能量最小值
202、结束流程。
可以理解的是,当判断出远端输入信号的第一能量值小于第一阈值时,则判断该远端输入信号为无语音,结束流程。
203、判断远端输入信号的自相关值是否大于第二阈值。
可以理解的是,当判断出远端输入信号的第一能量值大于第一阈值时,可以计算出该远端输入信号的自相关值,并将该自相关值与第二阈值进行比较,从而判断出该自相关值是否大于该第二阈值,若否,则执行步骤204,若是,则执行步骤205。
可选的,在计算远端信号的自相关值之前,可以将该远端输入信号进行傅里叶转换,使该远端输入信号从时域转换到频域,由于信号的自相关与功率谱密度是傅里叶变换对,在获取到该远端输入信号的频谱值,可以利用该频谱值计算出该自相关值。
需要说明的是,该第二阈值可以为初始自相关门限值,也可以为初始自相关门限值更新后得到门限值。
其中,可以将步骤201中判断出的无语音分块的远端输入信号存入缓存中,并计算出这些无语音分块的自相关值,然后计算出无语音分块自相关值的平均值,通过该平均值计算出该初始自相关门限值。
可选的,在计算出初始自相关值之后,可以将该初始自相关门限值作为第二阈值,并使用该第二阈值对远端输入信号的自相关值进行比较,将小于该第二阈值的无语音分块存入缓存,并按照上述初始自相关门限值的计算公式计算得到新的自相关门限值,并使用该新的自相关门限值对初始门限值进行更新。
204、结束流程。
可以理解的是,当判断出该远端输入信号的自相关值小于或等于第二阈值时,则确定该远端输入信号为无语音,结束流程。
205、确定所述第一能量值与所述第二能量值的比值是否在预置的比值范围内。
可以理解的是,由于回声的能量值小于该回声对应语音的能量值,可以通过比较远端输入信号的能量值与近端输入信号的能量值,从而判断出该远端输入信号是否为近端输入信号的回声。因此,可以计算出近端输入信号的第二能量值,具体的计算方法与计算远端输入信号的第二能量值方法相同,此处不再赘述。
需要说明的是,将计算出的第一能量值和第二能量值进行比较,从而判断该第一能量值与该第二能量值的比值是否在预置的比值范围内,若是,则执行步骤206,若否,则执行步骤207。其中,该比值范围可以根据近端与远端的传输距离、信号的传输介质等进行设定,具体此处不作限定,比如本实施例中,该比值范围可以设定为90%~95%。
206、结束流程。
可以理解的是,当判断出该第一能量值与该第二能量值的比值在预置的比值范围内时,则表示该远端输入信号可能为近端输入信号的回声,若继续对该远端输入信号进行回声估计,将导致近端信号失真,因此结束流程。
207、利用所述远端输入信号计算回声信号。
当判断出该第一能量值与该第二能量值的比值不在预置的比值范围内,则确定该远端输入信号不是近端输入信号的回声,可以对所述远端输入信号进行回声估计的自适应滤波,并当确定所述回声估计的自适应滤波结果收敛时,根据所述远端输入信号和回声滤波系数计算回声信号。
208、将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
在计算出回声信号之后,将该回声信号和近端信号进行傅里叶转换,使该回声信号和近端信号从时域转换到频域,并分别获取该回声信号和近端信号的频谱值,将近端输入信号的频谱值减去该回声信号的频谱值,从而消除所述近端输入信号中的回声。
本发明实施例,通过计算输入端信号的第一能量值,并判断该第一能力值是否大于第一阈值,当确定该远端输入信号的第一能量值大于该第一阈值时,再计算该远端输入信号的自相关值,并继续判断该自相关值是否大于第二阈值,并当判断出该自相关值大于第二阈值时,确定该远端输入信号为语音,相对于现有技术,本发明实施例增加了对该远端输入信号的自相关值的判断,从而可以提高确定远端信号为语音的准确性,并且在对远端输入信号进行自相关值判断之后,继续增加了对近端输入信号与远端输入信号的能量值比较,从而可以进一步提高确定远端信号为语音的准确性,从而避免错误的估计回声信号,防止在消除回声时近端信号发生失真,提升通话质量。
上面实施例中,在对远端输入信号进行自相关值判断之后,继续增加了对近端输入信号与远端输入信号的能量值比较,从而提高判断出该远端输入信号是否为语音的准确性,在实际应用中,还可以继续增加对该远端输入信号的与近端输入信号的归一化互相关的判断,下面对本发实施例中一种回声消除方法的另一个实施例进行描述。
请参阅图3,本发明实施例中一种回声消除方法的另一个实施例包括:
301、判断远端输入信号的第一能量值是否大于第一阈值。
可以理解的是,计算出远端输入信号的第一能量值,并将该第一能量值与第一阈值进行比较,从而判断该第一能量值是否大于该第一阈值,若否,则执行步骤302;若是,则执行步骤303。
302、结束流程。
可以理解的是,当判断出远端输入信号的第一能量值小于第一阈值时,则判断该远端输入信号为无语音,结束流程。
303、判断远端输入信号的自相关值是否大于第二阈值。
可以理解的是,当判断出远端输入信号的第一能量值大于第一阈值时,可以计算出该远端输入信号的自相关值,并将该自相关值与第二阈值进行比较,从而判断出该自相关值是否大于该第二阈值,若否,则执行步骤304,若是,则执行步骤305。
304、结束流程。
可以理解的是,当判断出该远端输入信号的自相关值小于或等于第二阈值时,则确定该远端输入信号为无语音,结束流程。
可选地,在本实施例中的步骤304之后,还包括步骤305。
305、确定所述第一能量值与所述第二能量值的比值是否在预置的比值范围内。
需要说明的是,将计算出的第一能量值和第二能量值进行比较,从而判断该第一能量值与该第二能量值的比值是否在预置的比值范围内,若是,则执行步骤306,若否,则执行步骤308。
需要说明的是,本实施例中的步骤301至步骤305的执行方法与图2对应的实施例相同,具体此处不再赘述。
306、确定所述近端输入信号和所述远端信号的归一化互相关值是否在预置的范围内。
可以理解的是,当判断出该第一能量值与该第二能量值的比值在预置的比值范围内时,则表示该远端输入信号可能为近端输入信号的回声,此时可以通过比较所述近端输入信号和所述远端信号的归一化互相关值是否在预置的范围内,从而判断出该远端输入信号是否为近端输入信号的回声,若归一化互相关值不在预置范围内,则表示远端输入信号为近端输入信号的回声,并执行步骤307,若归一化互相关值在预置范围内,则表示远端输入信号为语音,并执行步骤308。
需要说明的是,可以通过傅里叶转换将该远端输入信号和近端输入信号从时域转换到频域,然后分别获取到该远端输入信号和近端输入信号的第一频谱值和第二频谱值,将该第一频谱值和第二频谱值相乘即可计算得到该归一化互相关值,计算方法简单。具体计算公式如下:
其中,X(k)表示远端输入信号的频谱值,M(k)表示近端输入信号的频谱值,T表示转置,Rxm_nor表示归一化互相关值。
需要说明的是,本实施例中,该范围可以设置为0.75~0.9,在实际应用中,该归一化互相关值的预置范围可以根据实际应用环境进行设定,具体此处不作限定。
307、结束流程。
当所述近端输入信号和所述远端信号的归一化互相关值不在预置的范围内时,则表示远端输入信号为近端输入信号的回声,结束流程、
308、利用所述远端输入信号计算回声信号。
可以理解的是,当确定所述归一化互相关值在所述预置的范围内时,则确定该远端输入信号不是近端输入信号的回声,可以对所述远端输入信号进行回声估计的自适应滤波,并当确定所述回声估计的自适应滤波结果收敛时,根据所述远端输入信号和回声滤波系数计算回声信号。
309、将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
在计算出回声信号之后,将近端输入信号的频谱值减去该回声信号的频谱值,从而消除所述近端输入信号中的回声。
本发明实施例,在确定远端输入信号的第一能量值与近端输入信号的第二能量值的比值小于比值范围之后,继续增加对该远端输入信号和该近端输入信号的归一化互相关值的判断,从而确定该远端输入信号是否为近端输入信号的回声,从而可以进一步提高确定远端信号为语音的准确性,从而避免错误的估计回声信号,防止在消除回声时近端信号发生失真,提升通话质量。
上面对本发明实施例中的回声消除方法进行了描述,下面对本发明实施例中的回声消除装置进行描述。
请参阅图4,本发明实施例中一种回声消除装置的一个实施例包括:
第一计算单元401,用于当远端输入信号的第一能量值大于第一阈值时,计算所述远端输入信号的自相关值。
其中,所述第一计算单元包括转换模块4011和计算模块4012,所述转换模块4011,用于将所述远端输入信号傅里叶转换到频域,以获取所述远端输入信号的频谱幅值;所述计算模块4012,用于利用所述频谱幅值计算出所述自相关值。
确定单元402,用于当确定所述自相关值大于第二阈值时,则确定所述远端输入信号为语音;
第二计算单元403,用于利用所述远端输入信号计算回声信号,并将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
可选的,本发明实施例中的回声消除装置还包括更新单元404,所述更新单元404,用于更新所述第二阈值。
在本发明的另外一个实施例中,该回声消除装置还包括第三计算单元,请参阅图5,本发明实施例中一种回声消除装置的另外一个实施例包括:
第一计算单元501,用于当远端输入信号的第一能量值大于第一阈值时,计算所述远端输入信号的自相关值;
确定单元502,用于当确定所述自相关值大于第二阈值时,则确定所述远端输入信号为语音;
可选的,所述装置还包括第三计算单元503,所述第三计算单元503用于在确定所述自相关值大于第二阈值之后,确定所述远端输入信号为语音之前,计算所述近端输入信号的第二能量值。
可选的,所述确定单元502,还用于在确定所述自相关值大于第二阈值之后,确定所述远端输入信号为语音之前,确定所述第一能量值与所述第二能量值的比值是否在预置的比值范围内,在所述比值在预置的比值范围内时,则触发确定所述远端输入信号为语音的步骤。
第二计算单元504,用于利用所述远端输入信号计算回声信号,并将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
在本发明的另外一个实施例中,该回声消除装置还包括第三单元和第四计算单元,请参阅图6,本发明实施例中一种回声消除装置的另外一个实施例包括:
第一计算单元601,用于当远端输入信号的第一能量值大于第一阈值时,计算所述远端输入信号的自相关值;
确定单元602,用于当确定所述自相关值大于第二阈值时,则确定所述远端输入信号为语音;
可选的,所述装置还包括第三计算单元603和第四计算单元604,所述第三计算单元603用于在确定所述自相关值大于第二阈值之后,确定所述远端输入信号为语音之前,计算所述近端输入信号的第二能量值;所述第四计算单元604用于在确定所述比值不在预置的比值范围内之后,确定所述远端输入信号为语音之前,计算所述近端输入信号和所述远端信号的归一化互相关值;
可选的,所述确定单元602,还用于确定所述归一化互相关值是否在预置的范围内,当所述归一化互相关值在预置的范围内时,则触发确定所述远端输入信号为语音的步骤。
第二计算单元605,用于利用所述远端输入信号计算回声信号,并将近端输入信号减去所述回声信号,以消除所述近端输入信号中的回声。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。