一种回声消除方法、装置及电子设备与流程
本发明涉及语音传输技术领域,特别是涉及一种回声消除方法、装置及电子设备。
背景技术:
目前,很多电子设备都同时具有音频播放和音频采集的功能,例如:对讲机等能够进行语音通话的电子设备,在对讲过程中就要同时实现音频播放和音频采集。这种情况下,不可避免地会出现声学回声。因此,需要进行回声消除。
参见图1,图1为回声信号形成过程的示意图,远端用户的音频信号从电子设备100的音频输出模块110输出后,进入音频播放模块200,由于音频播放模块200播放出的音频数据在传播过程中可能会经过房间的墙壁,天花板等表面多次反射后才进入音频采集模块300形成回声。因此,回声信号中可能包括多种回声信号,例如:包括:从音频播放模块200播放之后,直接进入音频采集模块300形成的第一回声信号、从音频播放模块200播放之后,经过墙壁,天花板等表面多次反射后进入音频采集模块300形成的第二回声信号等。
目前,进行回声消除的方法是:将输出至音频播放模块的当前播放数据作为回声参考帧;在获得音频采集模块采集到的当前采集数据时,根据回声参考帧进行回声信号估计,得到回声信号;在音频采集设备采集到的当前采集音频数据中去除所述回声信号,完成回声消除。
然而,即使用上述方法进行了回声消除,不同电子设备在不同使用环境中,回声消除效果却不尽相同,有的电子设备的回声消除的效果不是很好。
技术实现要素:
本发明实施例的目的在于提供一种回声消除方法、装置及电子设备,以提升回声消除的效果。具体技术方案如下:
第一方面,本发明实施例提供了一种回声消除方法,应用于电子设备,所述电子设备通过音频采集模块采集音频数据,并通过音频播放模块播放音频数据,所述方法包括:
获得所述音频采集模块采集到的当前采集音频数据;
获得当前时刻及传播时延,所述传播时延是预先通过测试获得的,从所述电子设备输出测试音频数据的时刻,至所述电子设备接收到与所述测试音频数据对应的测试回声信号的时刻之间的时延;
根据当前时刻及所述传播时延,确定搜索范围;
按照所述搜索范围,在备份音频数据中,搜索与所述当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧,所述备份音频数据是所述电子设备对输出至所述音频播放模块的音频数据进行复制之后保存的;
根据所述回声消除参考帧,对所述当前采集音频数据进行回声信号消除。
进一步的,所述根据当前时刻及所述传播时延,确定搜索范围的步骤,包括:
根据当前时刻及所述传播时延,确定搜索参考帧的起始时刻;
根据所述起始时刻和预设搜索范围的时长,确定搜索范围。
进一步的,所述传播时延的测试获得过程包括:
接收测试指令;所述测试指令用于测试所述电子设备在当前使用场景中的传播时延;
获取测试音频数据,所述测试音频数据为具有预设频谱特性的音频数据;
将所述测试音频数据输出至所述音频播放模块进行播放;
从所述音频采集模块获取采集到的测试回声信号;
对所述测试音频数据和所述测试回声信号进行互相关计算,得到所述传播时延。
进一步的,所述传播时延的测试获得过程包括:
接收测试指令;所述测试指令用于测试所述电子设备在当前使用场景中的传播时延;
获取测试音频数据,所述测试音频数据为具有预设频谱特性的音频数据;
将所述测试音频数据输出至所述音频播放模块进行播放;
从所述音频采集模块获取采集到的测试回声信号;
对所述测试音频数据和所述测试回声信号进行互相关计算,得到初始传播时延;
重复进行预设数量次所述将所述测试音频数据输出至所述音频播放模块进行播放,从所述音频采集模块获取采集到的测试回声信号的步骤,得到多个测试回声信号;
分别对所述测试音频数据和各个测试回声信号进行互相关计算,得到多个时延,作为参考传播时延;
将所述参考传播时延中的最大值与最小值的差值,确定为所述传播时延的波动值;
将所述初始传播时延与所述传播时延的波动值之和确定为所述传播时延。
进一步的,所述对所述测试音频数据和所述测试回声信号进行互相关计算,得到初始传播时延的步骤,包括:
对所述测试音频数据和所述测试回声信号进行互相关计算,得到所述测试回声信号与所述测试音频数据的时间差值;
将所述时间差值确定为所述初始传播时延;
所述分别对所述测试音频数据和各个测试回声信号进行互相关计算,得到多个时延,作为参考传播时延的步骤,包括:
分别对所述测试音频数据和各个测试回声信号进行互相关计算,得到所述各个测试回声信号与所述测试音频数据的时间差值;
将所述各个测试回声信号与所述测试音频数据的时间差值确定为参考传播时延。
进一步的,所述根据当前时刻及所述传播时延,确定搜索参考帧的起始时刻的步骤,包括:
判断所述传播时延与预设搜索范围的时长的大小关系;
若所述传播时延小于或者等于所述预设搜索范围的时长,则将所述起始时刻确定为:早于或者等于当前时刻,且晚于或者等于第二时刻的任一时刻,所述第二时刻为早于当前时刻所述传播时延的时刻;
若所述传播时延大于所述预设搜索范围的时长,则将所述起始时刻确定为:早于或者等于第三时刻,且晚于或者等于所述第二时刻的任一时刻;所述第三时刻为早于当前时刻预设时长的时刻,所述预设时长为所述传播时延与所述预设搜索范围的时长的差值。
第二方面,本发明实施例提供了一种回声消除装置,应用于电子设备,所述电子设备通过音频采集模块采集音频数据,并通过音频播放模块播放音频数据,所述装置包括:
当前采集音频数据获得模块,用于获得所述音频采集模块采集到的当前采集音频数据;
传播时延获得模块,用于获得当前时刻及传播时延,所述传播时延是预先通过测试获得的、从所述电子设备输出测试音频数据的时刻,到所述电子设备接收到与所述测试音频数据对应的测试回声信号的时刻之间的时延;
搜索范围确定模块,用于根据当前时刻及所述传播时延,确定搜索范围;
回声消除参考帧搜索模块,用于按照所述搜索范围,在备份音频数据中,搜索与所述当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧,所述备份音频数据是所述电子设备对输出至所述音频播放模块的音频数据进行复制之后保存的;
回声信号消除模块,用于根据所述回声消除参考帧,对所述当前采集音频数据进行回声信号消除。
进一步的,所述搜索范围确定模块包括:起始时刻确定子模块和搜索范围确定子模块;
所述起始时刻确定子模块,用于根据当前时刻及所述传播时延,确定搜索参考帧的起始时刻;
所述搜索范围确定子模块,用于根据所述起始时刻和预设搜索范围的时长,确定搜索范围。
进一步的,所述装置还包括:第一传播时延测试获得模块;
所述第一传播时延测试获得模块,包括:第一测试指令接收子模块、第一测试音频数据获取子模块、第一测试音频数据播放子模块、第一测试回声信号获取子模块及第一互相关计算子模块;
所述第一测试指令接收子模块,用于接收测试指令;所述测试指令用于测试所述电子设备在当前使用场景中的传播时延;
所述第一测试音频数据获取子模块,用于获取测试音频数据,所述测试音频数据为具有预设频谱特性的音频数据;
所述第一测试音频数据播放子模块,用于将所述测试音频数据输出至所述音频播放模块进行播放;
所述第一测试回声信号获取子模块,用于从所述音频采集模块获取采集到的测试回声信号;
所述第一互相关计算子模块,用于对所述测试音频数据和所述测试回声信号进行互相关计算,得到所述传播时延。
进一步的,所述装置还包括:第二传播时延测试获得模块;
所述第二传播时延获得模块,包括:第二测试指令接收子模块、第二测试音频数据获取子模块、第二测试音频数据播放子模块、第二测试回声信号获取子模块、第二互相关计算子模块、第三测试回声信号获取子模块、参考传播时延确定子模块、波动值确定子模块及传播时延确定子模块;
所述第二测试指令接收子模块,用于接收测试指令;所述测试指令用于测试所述电子设备在当前使用场景中的传播时延;
所述第二测试音频数据获取子模块,用于获取测试音频数据,所述测试音频数据为具有预设频谱特性的音频数据;
所述第二测试音频数据播放子模块,用于将所述测试音频数据输出至所述音频播放模块进行播放;
所述第二测试回声信号获取子模块,用于从所述音频采集模块获取采集到的测试回声信号;
所述第二互相关计算子模块,用于对所述测试音频数据和所述测试回声信号进行互相关计算,得到初始传播时延;
所述第三测试回声信号获取子模块,用于重复进行预设数量次所述将所述测试音频数据输出至所述音频播放模块进行播放,从所述音频采集模块获取采集到的测试回声信号的步骤,得到多个测试回声信号;
所述参考传播时延确定子模块,用于分别对所述测试音频数据和各个测试回声信号进行互相关计算,得到多个时延,作为参考传播时延;
所述波动值确定子模块,用于将所述参考传播时延中的最大值与最小值的差值,确定为所述传播时延的波动值;
所述传播时延确定子模块,用于将所述初始传播时延与所述传播时延的波动值之和确定为所述传播时延。
进一步的,所述第二互相关计算子模块,具体用于对所述测试音频数据和所述测试回声信号进行互相关计算,得到所述测试回声信号与所述测试音频数据的时间差值;将所述时间差值确定为所述初始传播时延;
所述参考传播时延确定子模块,具体用于分别对所述测试音频数据和各个测试回声信号进行互相关计算,得到所述各个测试回声信号与所述测试音频数据的时间差值;将所述各个测试回声信号与所述测试音频数据的时间差值确定为参考传播时延。
进一步的,所述起始时刻确定子模块,包括:判断单元、第一起始时刻确定单元及第二起始时刻确定单元;
所述判断单元,用于判断所述传播时延与预设搜索范围的时长的大小关系;
所述第一起始时刻确定单元,用于若所述传播时延小于或者等于所述预设搜索范围的时长,则将所述起始时刻确定为:早于或者等于当前时刻,且晚于或者等于第二时刻的任一时刻,所述第二时刻为早于当前时刻所述传播时延的时刻;
所述第二起始时刻确定单元,用于若所述传播时延大于所述预设搜索范围的时长,则将所述起始时刻确定为:早于或者等于第三时刻,且晚于或者等于所述第二时刻的任一时刻;所述第三时刻为早于当前时刻预设时长的时刻,所述预设时长为所述传播时延与所述预设搜索范围的时长的差值。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一回声消除方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一回声消除方法。
本发明实施例提供的回声消除方法、装置及电子设备,获得所述音频采集模块采集到的当前采集音频数据;获得当前时刻及传播时延,所述传播时延是预先通过测试获得的,从所述电子设备输出测试音频数据的时刻,至所述电子设备接收到与所述测试音频数据对应的测试回声信号的时刻之间的时延;根据当前时刻及所述传播时延,确定搜索范围;按照所述搜索范围,在备份音频数据中,搜索与所述当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧,所述备份音频数据是所述电子设备对输出至所述音频播放模块的音频数据进行复制之后保存的;根据所述回声消除参考帧,对所述当前采集音频数据进行回声信号消除。本发明实施例中,搜索范围是根据电子设备预先通过测试获得的、从所述电子设备输出测试音频数据的时刻,至所述电子设备接收到与所述测试音频数据对应的测试回声信号的时刻之间的时延确定的,搜索范围更准确,因此,可以提升回声消除的效果。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为回声信号形成过程的示意图;
图2为本发明实施例提供的回声消除方法的一种流程示意图;
图3为图2所示实施例中测试获得传播时延的一种流程示意图;
图4为图2所示实施例中测试获得传播时延的另一种流程示意图;
图5为本发明实施例提供的回声消除方法的另一种流程示意图;
图6为本发明实施例提供的回声消除装置的一种结构示意图;
图7为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为提升回声消除的效果,本发明实施例提供了一种回声消除方法、装置及电子设备,以下分别进行详细说明。
图2为本发明实施例提供的回声消除方法的一种流程示意图,具体包括如下步骤:
步骤201,获得音频采集模块采集到的当前采集音频数据。
音频采集模块采集到的当前采集音频数据为包含回声信号的音频数据。
具体的,本步骤可以是从音频输入模块获得音频采集模块采集到的当前采集音频数据。
步骤202,获得当前时刻及传播时延。
其中,传播时延是预先通过测试获得的、从电子设备输出测试音频数据的时刻,到电子设备接收到与测试音频数据对应的测试回声信号的时刻之间的时延。在测试完成后,传播时延被保存在电子设备中。
本步骤中就是获得保存在电子设备中的传播时延。
参见图1,传播时延指从音频播放模块200播放之后,直接进入音频采集模块300形成的第一回声信号与引起第一回声信号的播放数据之间的时间差。也就是说,传播时延可以包括三个部分:音频数据从音频输出模块110至音频播放模块200产生的时延x、从音频播放模块200至音频采集模块300产生的延时y及从音频采集模块300至音频输入模块产生的延时z。
步骤203,根据当前时刻及传播时延,确定搜索范围。
具体的,可以将从当前时刻开始,至早于当前时刻传播时延的时刻为止的范围设定为搜索范围,也可以先根据当前时刻及传播时延确定搜索参考帧的起始时刻,进而确定搜索范围,此处,对于确定搜索范围的具体方式,不作限定。
由于电子设备的处理运算能力有限,由此,搜索范围的时长不能过长,最大值不能超过预先设定的搜索范围的时长。
因此,针对先根据当前时刻及传播时延确定搜索参考帧的起始时刻,进而确定搜索范围的方式而言,具体实现过程可以为:
根据当前时刻及传播时延,确定搜索参考帧的起始时刻;
根据起始时刻和预设搜索范围的时长,确定搜索范围。
其中,根据当前时刻及传播时延,确定搜索参考帧的起始时刻的方式可以有多种,例如:将早于当前时刻传播时延的时刻确定为搜索参考帧的起始时刻;也可以将早于当前时刻传播时延的时刻设定为基准时刻,将迟于基准时刻预设时间间隔的时刻确定为起始时刻;还可以根据当前时刻和传播时延的大小关系,确定搜索参考帧的起始时刻,此处,对于确定搜索参考帧的起始时刻的具体方式不作限定。
具体的,针对根据当前时刻和传播时延的大小关系,确定搜索参考帧的起始时刻的方式,具体可以为:
若传播时延小于或者等于预设搜索范围的时长,则将起始时刻确定为:早于或者等于当前时刻,且晚于或者等于第二时刻的任一时刻,第二时刻为早于当前时刻传播时延的时刻;
若传播时延大于预设搜索范围的时长,则将起始时刻确定为:早于或者等于第三时刻,且晚于或者等于第二时刻的任一时刻;第三时刻为早于当前时刻预设时长的时刻,预设时长为传播时延与预设搜索范围的时长的差值。
其中,为便于理解,通过如下例子说明第二时刻和第三时刻的含义:假设当前时刻为0时刻,传播时延为150ms,则第二时刻为-150ms,若预设搜索范围的时长为100ms,则预设时长为50ms,第三时刻为-50ms。
步骤204,按照搜索范围,在备份音频数据中,搜索与当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧,备份音频数据是电子设备对输出至音频播放模块的音频数据进行复制之后保存的。
备份音频数据具有时间戳,时间戳为电子设备输出与备份音频数据对应的音频数据的时刻。
具体的,可以根据当前采集音频数据与备份音频数据的相关程度,得到与当前采集音频数据的回声信号对应的备份音频数据,具体步骤如下:
对时间戳属于步骤203确定的搜索范围的各备份音频数据和当前采集音频数据分别进行互相关计算,得到当前采集音频数据与各备份音频数据的置信度值,将大于置信度阈值的置信度值对应的备份音频数据确定为与当前采集音频数据的回声信号对应的备份音频数据。
步骤205,根据回声消除参考帧,对当前采集音频数据进行回声信号消除。
可以基于回声消除参考帧,通过回声路径函数,估计得到由回声消除参考帧生成的回声信号,再在当前采集音频数据中减去估计得到的回声信号,从而得到不包含回声信号的音频数据,完成回声消除。
由图2所示实施例可见,本发明实施例中,搜索范围是根据预先通过测试获得的、从电子设备输出测试音频数据的时刻,至电子设备接收到与测试音频数据对应的测试回声信号的时刻之间的时延确定的,搜索范围更准确,因此,可以提升回声消除的效果。
本发明实施例中,测试过程可以在电子设备出厂之前完成,也可以在根据使用场景的不同,在当前使用场景中完成。
电子设备通过音频采集模块采集音频数据,并通过音频播放模块播放音频数据。
电子设备使用的音频采集模块和音频播放模块可以是电子设备内部模块,也可以是独立于电子设备之外的独立模块。例如:手机使用的音频采集模块和音频播放模块是手机内部模块;电话会议系统使用的音频采集模块和音频播放模块是外部的独立模块,音频播放模块可以是音箱,音频采集模块可以是外接的话筒。
在本发明实施例中,当电子设备使用的音频采集模块和音频播放模块是电子设备内部模块时,可以在电子设备出厂之前完成测试过程,在后续回声消除过程中,无需再次进行传播时延测试,以降低回声消除过程的复杂程度;当电子设备使用的音频采集模块和音频播放模块是独立于电子设备之外的独立模块时,由于音频采集模块和/或音频播放模块的不同,如图1所示,可能会导致音频数据从音频播放模块200至音频采集模块300产生的延时y不同,进而导致传播时延的不同,因此,可以在当前使用场景中进行测试,得到当前使用场景下的传播时延,以提高传播时延的准确度,进而提升回声消除的效果。
具体的,传播时延的测试获得方法可以为:将测试音频数据输入音频播放模块,并从音频采集模块获取采集到的测试回声信号,对测试音频数据与测试回声信号进行互相关计算,得到测试音频数据中的各测试音频数据帧与测试回声信号中的各测试回声数据帧的置信度值,针对每个测试音频数据帧:将大于预设置信度阈值的置信度值对应的测试回声数据帧确定为与该测试音频数据帧对应的测试回声数据帧,将电子设备输出该测试音频数据帧的时刻与电子设备接收与该测试音频数据帧对应的测试回声数据帧的时刻的时间差值,确定为该测试音频数据帧的传播时延,将各测试音频数据帧的传播时延进行平均,即为传播时延。进一步的,考虑到测试结果可能存在波动,可以进行多次测试,并对测试结果进行融合,得到最终的传播时延。以下分别进行详细说明。
参见图3,图2所示的实施例中,可以采用如下步骤测试获得传播时延:
本实施例中,在当前使用场景中进行测试,得到当前使用场景下的传播时延。
步骤301,接收测试指令。
其中,测试指令用于测试电子设备在当前使用场景中的传播时延。例如,测试指令可以为用户通过按压电子设备中的测试按钮的方式给出,电子设备检查到测试按钮被按压,则确定接收到测试指令等,对接收测试指令的具体方式,此处不作限定。
步骤302,获取测试音频数据。
测试音频数据可以预先保存在电子设备中,一般为具有特定频谱特性的音频数据,上述特定频谱特性可以为与测试环境噪声频谱特性差异较大的频谱特性。例如,在某些特定频率范围内有恒定能量值,其余频率范围内无能量值等。
在有的实施方式中,可以预先在电子设备中保存多个测试音频数据供用户选择。在实际测试时,用户可以根据不同的测试环境,选择合适的测试音频数据,此处,不作限定。
步骤303,将测试音频数据输出至音频播放模块进行播放。
本步骤中,可以通过音频输出模块将测试音频数据输出至音频播放模块进行播放。
步骤304,从音频采集模块获取采集到的测试回声信号。
本步骤中,可以通过音频输入模块从音频采集模块获取采集到的测试回声信号。
步骤305,对测试音频数据和测试回声信号进行互相关计算,得到传播时延。
具体的,可以对测试音频数据与测试回声信号进行互相关计算,得到测试音频数据中的各测试音频数据帧与测试回声信号中的各测试回声数据帧的置信度值,针对每个测试音频数据帧:将大于预设置信度阈值的置信度值对应的测试回声数据帧确定为与该测试音频数据帧对应的测试回声数据帧,将电子设备输出该测试音频数据帧的时刻与电子设备接收与该测试音频数据帧对应的测试回声数据帧的时刻的时间差值,确定为该测试音频数据帧的传播时延,再将各测试音频数据帧的传播时延进行平均,即为传播时延。
本实施例中,根据使用场景的不同,在当前使用场景中进行测试,获得测试回声信号后,计算测试音频数据和测试回声信号的相关程度,进而得到当前使用场景下的传播时延,因此,可以提高传播时延的准确度,进而提升回声消除的效果。
参见图4,图2所示的实施例中,还可以采用如下步骤获取传播时延:
步骤401,接收测试指令。
步骤402,获取测试音频数据。
步骤403,将测试音频数据输出至音频播放模块进行播放。
步骤404,从音频采集模块获取采集到的测试回声信号。
步骤401-步骤404的内容,可以分别与步骤301-步骤304相同,此处,不再赘述。
步骤405,对测试音频数据和测试回声信号进行互相关计算,得到初始传播时延。
步骤405中得到初始传播时延的方法可以与步骤305中得到传播时延的方法相同,此处,不再赘述。
步骤406,重复进行预设数量次将测试音频数据输出至音频播放模块进行播放,从音频采集模块获取采集到的测试回声信号的步骤,得到多个测试回声信号。
步骤407,分别对测试音频数据和各个测试回声信号进行互相关计算,得到多个时延,作为参考传播时延。
步骤408,将参考传播时延中的最大值与最小值的差值,确定为传播时延的波动值。
步骤409,将初始传播时延与传播时延的波动值之和确定为传播时延。
本实施例中,根据使用场景的不同,在当前使用场景中进行测试,得到当前使用场景下的传播时延,可以提高传播时延的准确度。同时,考虑到测试结果可能存在波动,因此,进行多次测试,并对测试结果进行融合,得到最终的传播时延,进一步提高了传播时延的准确度,进而提升了回声消除的效果。
图5为本发明实施例提供的回声消除方法的另一种流程示意图,具体包括如下步骤:
步骤501,获得音频采集模块采集到的当前采集音频数据。
步骤502,获得当前时刻及传播时延。
其中,传播时延是预先通过测试获得的、从电子设备输出测试音频数据的时刻,到电子设备接收到与测试音频数据对应的测试回声信号的时刻之间的时延。在测试完成后,传播时延被保存在电子设备中。
步骤501和步骤502的内容可以分别与步骤201和步骤202相同,此处,不再赘述。
步骤503,判断传播时延与预设搜索范围的时长的大小关系。若传播时延小于或者等于预设搜索范围的时长,执行步骤504;若传播时延大于预设搜索范围的时长,则执行步骤505。
步骤504,将起始时刻确定为:早于或者等于当前时刻,且晚于或者等于第二时刻的任一时刻,第二时刻为早于当前时刻传播时延的时刻。执行步骤506。
步骤505,将起始时刻确定为:早于或者等于第三时刻,且晚于或者等于第二时刻的任一时刻;第三时刻为早于当前时刻预设时长的时刻,预设时长为传播时延与预设搜索范围的时长的差值。执行步骤506。
为便于理解,以下通过举例的方式对步骤503-步骤505的内容进行说明:
设传播时延为f,预设搜索范围的时长为100ms,搜索参考帧的起始时刻为t:与步骤504对应的,若f≤100ms,则-f≤t≤0,具体的,若f≤100ms,则,初始时刻可取[-f,0]之间的任一时刻,均可保证例参考帧处于预设搜索范围内。例如:f=50ms,初始时刻可取[-50ms,0)之间的任一时刻,例如取-10ms,可保证参考帧(为-50ms时刻的音频数据)处于预设搜索范围[-110ms,-10ms]内。
与步骤505对应的,若f>100ms,则-f≤t≤-(f-100ms),具体的,若f>100ms,则,初始时刻取[-f,-(f-100ms)]之间的任一时刻,可保证例参考帧处于预设搜索范围内。例如:f=150ms,初始时刻可取[-150ms,-50ms)之间的任一时刻,例如取-100ms,可保证参考帧(为-150ms时刻的音频数据)处于预设搜索范围[-200ms,-100ms]内;若取晚于-(f-100ms)也就是-50ms的时刻,例如取-20ms,则会出现参考帧(为-150ms时刻的音频数据)不处于预设搜索范围[-120ms,-20ms]内的情况。
步骤506,根据起始时刻和预设搜索范围的时长,确定搜索范围。
例如:起始时刻为-50ms,预设搜索范围的时长为100ms,则搜索范围为[-150ms,-50ms]。
步骤507,按照搜索范围,在备份音频数据中,搜索与当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧。
其中,备份音频数据是电子设备对输出至音频播放模块的音频数据进行复制之后保存的。
步骤508,根据回声消除参考帧,对当前采集音频数据进行回声信号消除。
步骤507和步骤508的内容,可以与步骤204和步骤205相同,此处,不再赘述。
回声信号可以包括第一回声信号和第二回声信号,因此,与回声信号对应的回声消除参考帧可以为多个,同时,由于回声信号与回声消除参考帧之间存在时延,因此,在备份音频数据中,时间戳接近当前时刻的备份音频数据并不是与回声信号对应的回声消除参考帧,也就是说,若以当前时刻为搜索范围的起始时刻,搜索范围内包含的与回声信号对应的回声消除参考帧的数量较少。
本实施例中,根据传播时延与预设搜索范围时长的大小关系,将搜索范围的起始时刻设定为介于当前时刻和与回声信号对应的时间戳最晚的回声消除参考帧的时间戳之间的时刻,即:在保证可将与回声信号对应的时间戳最晚的回声消除参考帧包括在搜索范围内的前提下,对整个搜索范围进行了前推,因此,可以增加整个搜索范围内包含的与回声信号对应的回声消除参考帧的数量,进一步提升了回声消除的效果。
基于同一发明构思,根据本发明上述实施例提供的回声消除方法,相应地,本发明一个实施例还提供了一种回声消除装置,其结构示意图如图6所示,包括:
当前采集音频数据获得模块601,用于获得音频采集模块采集到的当前采集音频数据;
传播时延获得模块602,用于获得当前时刻及传播时延,传播时延是电子设备预先通过测试获得的、从电子设备输出测试音频数据的时刻,到电子设备接收到与测试音频数据对应的测试回声信号的时刻之间的时延;
搜索范围确定模块603,用于根据当前时刻及传播时延,确定搜索范围;
回声消除参考帧搜索模块604,用于按照搜索范围,在备份音频数据中,搜索与当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧,备份音频数据是电子设备对输出至音频播放模块的音频数据进行复制之后保存的;
回声信号消除模块605,用于根据回声消除参考帧,对当前采集音频数据进行回声信号消除。
进一步的,搜索范围确定模块包括:起始时刻确定子模块和搜索范围确定子模块;
起始时刻确定子模块,用于根据当前时刻及传播时延,确定搜索参考帧的起始时刻;
搜索范围确定子模块,用于根据起始时刻和预设搜索范围的时长,确定搜索范围。
进一步的,装置还包括:第一传播时延测试获得模块;
第一传播时延测试获得模块,包括:第一测试指令接收子模块、第一测试音频数据获取子模块、第一测试音频数据播放子模块、第一测试回声信号获取子模块及第一互相关计算子模块;
第一测试指令接收子模块,用于接收测试指令;测试指令用于测试电子设备在当前使用场景中的传播时延;
第一测试音频数据获取子模块,用于获取测试音频数据,测试音频数据为具有预设频谱特性的音频数据;
第一测试音频数据播放子模块,用于将测试音频数据输出至音频播放模块进行播放;
第一测试回声信号获取子模块,用于从音频采集模块获取采集到的测试回声信号;
第一互相关计算子模块,用于对测试音频数据和测试回声信号进行互相关计算,得到传播时延。
进一步的,装置还包括::第二传播时延测试获得模块;
第二传播时延测试获得模块,包括:第二测试指令接收子模块、第二测试音频数据获取子模块、第二测试音频数据播放子模块、第二测试回声信号获取子模块、第二互相关计算子模块、第三测试回声信号获取子模块、参考传播时延确定子模块、波动值确定子模块及传播时延确定子模块;
第二测试指令接收子模块,用于接收测试指令;测试指令用于测试电子设备在当前使用场景中的传播时延;
第二测试音频数据获取子模块,用于获取测试音频数据,测试音频数据为具有预设频谱特性的音频数据;
第二测试音频数据播放子模块,用于将测试音频数据输出至音频播放模块进行播放;
第二测试回声信号获取子模块,用于从音频采集模块获取采集到的测试回声信号;
第二互相关计算子模块,用于对测试音频数据和测试回声信号进行互相关计算,得到初始传播时延;
第三测试回声信号获取子模块,用于重复进行预设数量次将测试音频数据输出至音频播放模块进行播放,从音频采集模块获取采集到的测试回声信号的步骤,得到多个测试回声信号;
参考传播时延确定子模块,用于分别对测试音频数据和各个测试回声信号进行互相关计算,得到多个时延,作为参考传播时延;
波动值确定子模块,用于将参考传播时延中的最大值与最小值的差值,确定为传播时延的波动值;
传播时延确定子模块,用于将初始传播时延与传播时延的波动值之和确定为传播时延。
进一步的,第二互相关计算子模块,具体用于对测试音频数据和测试回声信号进行互相关计算,得到测试回声信号与测试音频数据的时间差值;将时间差值确定为初始传播时延;
参考传播时延确定子模块,具体用于分别对测试音频数据和各个测试回声信号进行互相关计算,得到各个测试回声信号与测试音频数据的时间差值;将各个测试回声信号与测试音频数据的时间差值确定为参考传播时延。
进一步的,起始时刻确定子模块,包括:判断单元、第一起始时刻确定单元及第二起始时刻确定单元;
判断单元,用于判断传播时延与预设搜索范围的时长的大小关系;
第一起始时刻确定单元,用于若传播时延小于或者等于预设搜索范围的时长,则将起始时刻确定为:早于或者等于当前时刻,且晚于或者等于第二时刻的任一时刻,第二时刻为早于当前时刻传播时延的时刻;
第二起始时刻确定单元,用于若传播时延大于预设搜索范围的时长,则将起始时刻确定为:早于或者等于第三时刻,且晚于或者等于第二时刻的任一时刻;第三时刻为早于当前时刻预设时长的时刻,预设时长为传播时延与预设搜索范围的时长的差值。
本发明实施例中,搜索范围是搜索范围确定模块603根据预先通过测试获得的、从电子设备输出测试音频数据的时刻,到电子设备接收到与测试音频数据对应的测试回声信号的时刻之间的时延确定的,搜索范围更准确,因此,可以提升回声消除的效果。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
获得音频采集模块采集到的当前采集音频数据;
获得当前时刻及传播时延,传播时延是预先通过测试获得的、从电子设备输出测试音频数据的时刻,至电子设备接收到与测试音频数据对应的测试回声信号的时刻之间的时延;
根据当前时刻及传播时延,确定搜索范围;
按照搜索范围,在备份音频数据中,搜索与当前采集音频数据的回声信号对应的备份音频数据作为回声消除参考帧,备份音频数据是电子设备对输出至音频播放模块的音频数据进行复制之后保存的;
根据回声消除参考帧,对当前采集音频数据进行回声信号消除。
上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的回声消除方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的回声消除方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除