具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:电子设备在通过音频播放设备播放音频数据时,首先获取到音频播放设备所播放的音频数据;然后获取预存的音频播放设备的频响函数;最后基于获取到的音频数据和频响函数计算得到音频播放设备的回声音频数据,从而无需通过信号回路的方式来采集回声,能够更容易的采集到音频播放设备的回声。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图。
如图1所示,该电子设备可以包括:处理器1001,通信总线1002,用户接口1003,网络接口1004,存储器1005,音频播放设备1006,音频采集设备1004。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口等。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。音频播放设备1006可以是扬声器,扬声器的数量不限定,可以是单个扬声器,也可以是扬声器阵列。音频采集设备1005可以是麦克风,麦克风的数量不限定,可以是单麦,也可以是麦克风阵列。
本领域技术人员可以理解,图1中示出的电子设备的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,在本发明电子设备的一实施例中,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及回声获取程序。
在图1所示的电子设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的回声获取程序,并执行以下操作:
在通过音频播放设备播放音频数据时,获取音频播放设备播放的音频数据;
获取预存的音频播放设备的频响函数;
基于获取的音频数据和频响函数计算得到音频播放设备的回声音频数据。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据;
分别将预设音频数据和第一录制音频数据由时域转换到频域;
计算频域转换后的预设音频数据和第一录制音频数据的频域相关性,得到预设音频数据和第一录制音频数据的变换函数,将该变换函数作为音频播放设备的频响函数进行存储。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
采用快速傅里叶变换分别将预设音频数据和第一录制音频数据由时域转换到频域。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
通过音频采集设备进行音频采集,得到第二录制音频数据;
基于第二录制音频数据判断当前环境是否处于安静状态;
在当前环境处于安静状态时,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
在当前环境不处于安静状态时,通过音频播放设备播放预设提示音频。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
判断第二录制音频数据的音量值是否持续小于预设音量值,其中,在第二录制音频数据的音量值持续小于预设音量值时,确定当前环境处于安静状态。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
判断音频播放设备和/或音频采集设备的当前位置是否发生变化;
在音频播放设备和/或音频采集设备的当前位置发生变化时,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。
进一步地,处理器1001可以用于调用存储器1005中存储的回声获取程序,还执行以下操作:
在通过音频播放设备播放音频数据的同时,还通过音频采集设备进行音频采集,得到第三录制音频;
基于回声音频数据对第三录制音频进行回声消除。
进一步地,本发明还提供一种回声获取方法,应用于图1所示的电子设备,参照图2,在本发明回声获取方法的第一实施例中,该回声获取方法包括:
步骤S10,在通过音频播放设备播放音频数据时,获取音频播放设备播放的音频数据;
步骤S20,获取预存的音频播放设备的频响函数;
步骤S30,基于获取的音频数据和频响函数计算得到音频播放设备的回声音频数据。
电子设备在正常工作时,可根据实际需要通过音频播放设备播放音频数据。以扩音设备为例,例如,当用户通过扩音设备进行讲座时,可通过扩音设备的音箱(即音频播放设备)播放背景音,以增加讲座的效果。
相应的,在本实施例中,电子设备在通过音频播放设备播放音频数据时,首先获取到音频设备所播放的音频数据,例如,当通过音频播放设备播放某歌曲时,直接获取到该歌曲的音频文件。
在获取到音频播放设备所播放的音频数据之后,电子设备进一步获取到预存的音频播放设备的频响函数,该频响函数用于描述音频采集设备对音频播放设备进行音频采集得到的音频数据与音频播放设备播放的原始音频数据的频域相关性。
之后,电子设备基于获取到的音频数据和频响函数计算得到音频播放设备的回声数据。
容易理解的时,获取回声的目的在于进行回声消除,在本实施例中,在通过音频播放设备播放音频数据的同时,还通过音频采集设备进行音频采集,得到第三录制音频;
步骤S30之后,还包括:
基于计算得到的回声音频数据对第三录制音频进行回声消除。
容易理解的是,在完成对第三录制音频的回声消除之后,即可得到干净的声音(人声)。在具体实施时,本发明对采用何种回声消除算法不做具体限制,可由本领域技术人员根据实际需要进行选择。
进一步地,为实现回声的获取,在本实施例中,步骤S10之前还包括:
通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据;
分别将预设音频数据和第一录制音频数据由时域转换到频域;
计算频域转换后的预设音频数据和第一录制音频数据的频域相关性,得到预设音频数据和第一录制音频数据的变换函数,将该变换函数作为音频播放设备的频响函数进行存储。
在本实施例中,为了电子设备能够正常工作,还需要进行初始化处理。具体的,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。其中,预设音频数据可以是一段全频带的音频数据,也可以由多个不同频带的音频数据组成。例如,电子设备通过音频播放设备播放“背景音A”,同时通过音频采集设备进行音频采集,得到第一录制音频数据“背景音A’”。
在采集得到第一录制音频数据之后,电子设备分别将预设音频数据和第一录制音频数据由时域转换到频域,具体的,采用快速傅里叶变换分别将预设音频数据和第一录制音频数据由时域转换到频域。
在将预设音频数据第一录制音频数据均转换到频域之后,电子设备进一步计算频域转换后的预设音频数据和第一录制音频数据的频域相关性,得到预设音频数据和第一录制音频数据的变换函数,将该变换函数作为音频播放设备的频响函数进行存储,具体存储在存储器1005中,以供后续计算回声音频数据时使用。
以下结合具体示例对本发明方案如何计算音频播放设备的回声数据进行说明:
现假设获取到音频播放设备所播放的音频数据的采样率为16KHz,截取其中一段共512个数据用作运算过程描述,如图3所示,横轴表示时间,纵轴表示振幅。
对图3所示的一段音频数据进行快速傅里叶变换,以将这段音频数据由时域转换到频域,如图4所示,横轴表示频率,纵轴表示振幅,其中,由于音频数据的采样率为16KHz,所以其最高频率为8KHz。
请参照图5,为音频播放设备的频响函数示意图。
需要说明的是,在计算回声数据时,采用的运算算法可由本领域技术人员根据实际需要进行设计,例如,在本实施例中,按如下公式进行计算:
o(x)’=f(x)’*g(x);
其中,o(x)’表示频域的回声数据,f(x)’表示频域的音频数据,g(x)表示频响函数。
在计算得到如图6所示的o(x)’之后,将其由频域转换到时域,即可得到音频播放设备时域的回声数据o(x),如图7所示。其中,在转换时,具体采用快速傅里叶逆变换进行频域到时域的变换。结合参照图3和图7,回声数据o(x)相较于原始播放的音频数据,基本没有什么干扰,但是原来高低频成分被抑制(对应频响函数),中间频率的成分被凸显出来。本发明实施例提出的回声获取方法,通过电子设备在通过音频播放设备播放音频数据时,首先获取到音频播放设备所播放的音频数据;然后获取预存的音频播放设备的频响函数;最后基于获取到的音频数据和频响函数计算得到音频播放设备的回声音频数据,从而无需通过信号回路的方式来采集回声,能够更容易的采集到音频播放设备的回声。
进一步地,为提升计算频响函数的准确性,基于第一实施例,提出本发明回声获取方法的第二实施例,在本实施例中,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据的步骤之前,还包括:
通过音频采集设备进行音频采集,得到第二录制音频数据;
基于第二录制音频数据判断当前环境是否处于安静状态;
在当前环境处于安静状态时,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。
在本发明实施例中,需要在安静的环境下进行初始化处理。具体的,首先通过音频采集设备进行音频采集,得到第二录制音频数据,其中,对于通过音频采集设备进行音频采集的采集时长,本发明不做具体限制,可由本领域技术人员根据实际需要进行设置,例如,可将设置采集时长为5秒。
在得到第二录制音频数据之后,电子设备基于第二录制音频数据判断当前环境是否处于安静状态,具体的,电子设备判断第二录制音频数据的音量值是否持续小于预设音量值,其中,在第二录制音频数据的音量值持续小于预设音量值时,确定当前环境处于安静状态。例如,第二录制音频数据的采集时长为5秒,则电子设备判断第二录制音频数据的音量值在5秒内是否均小于预设音量值,若是,即可判定当前环境处于安静状态。
当判定当前环境处于安静状态时,即可通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据,开始初始化处理,具体可参照前述第一实施例的相关描述,此处不再赘述。
进一步地,前述基于第二录制音频数据判定当前环境是否处于安静状态的步骤之后,还包括:
在当前环境不处于安静状态时,通过音频播放设备播放预设提示音频。
容易理解的是,在当前环境不处于安静状态时,若直接通过音频采集设备对播放预设音频数据的音频播放设备进行采集,采集得到第一录制音频数据将包含大量杂音,影响计算频响函数的准确性。此时,通过音频播放设备播放预设提示音频,用于提示周围人员保持安静。
进一步地,基于第一实施例,提出本发明回声获取方法的第三实施例,在本实施例中,前述通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据的步骤之前,还包括:
判断音频播放设备和/或音频采集设备的当前位置是否发生变化;
在音频播放设备和/或音频采集设备的当前位置发生变化时,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。
需要说明的是,在实际应用中,当音频播放设备和音频采集设备任一个位置发生变化时,将导致获取到的回声产生变化。因此,为确保准确的获取到音频播放设备的回声,可以实时判断音频播放设备和/或音频采集设备的当前位置是否发生变化,若音频播放设备和/或音频采集设备的当前位置发生变化,则触发初始化处理,具体可参照前述实施例的相关描述,此处不再赘述。
在具体实施时,可以分别在音频播放设备和音频采集设备中设置定位模块,并通过音频播放设备和音频采集设备中设置的定位模块,获取到二者的位置信息,根据二者的位置信息判断二者的位置是否发生变化。
进一步地,本发明还提供一种计算机可读存储介质,在一实施例中,该计算机可读存储介质上存储有回声获取程序,该回声获取程序被处理器1001执行时实现如下操作:
在通过音频播放设备播放音频数据时,获取音频播放设备播放的音频数据;
获取预存的音频播放设备的频响函数;
基于获取的音频数据和频响函数计算得到音频播放设备的回声音频数据。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据;
分别将预设音频数据和第一录制音频数据由时域转换到频域;
计算频域转换后的预设音频数据和第一录制音频数据的频域相关性,得到预设音频数据和第一录制音频数据的变换函数,将该变换函数作为音频播放设备的频响函数进行存储。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
采用快速傅里叶变换分别将预设音频数据和第一录制音频数据由时域转换到频域。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
通过音频采集设备进行音频采集,得到第二录制音频数据;
基于第二录制音频数据判断当前环境是否处于安静状态;
在当前环境处于安静状态时,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
在当前环境不处于安静状态时,通过音频播放设备播放预设提示音频。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
判断第二录制音频数据的音量值是否持续小于预设音量值,其中,在第二录制音频数据的音量值持续小于预设音量值时,确定当前环境处于安静状态。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
判断音频播放设备和/或音频采集设备的当前位置是否发生变化;
在音频播放设备和/或音频采集设备的当前位置发生变化时,通过音频播放设备播放预设音频数据,同时通过音频采集设备进行音频采集,得到第一录制音频数据。
进一步地,前述回声获取程序被处理器1001执行时,还实现如下操作:
在通过音频播放设备播放音频数据的同时,还通过音频采集设备进行音频采集,得到第三录制音频;
基于回声音频数据对第三录制音频进行回声消除。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台电子设备执行本发明对应实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。