1.本发明实施例涉及语音处理技术领域,尤其涉及一种语音的回声消除方法、装置、设备及存储介质。
背景技术:2.在多媒体调度会议中,调度终端中的播放器会将远端的声音信号播放出来,然后在空间中经过传播和反射,被音频采集器采集到,严重影响通话质量;故在对近端语音信号进行发送前,对音频采集器采集的近端语音信号进行回声消除处理,如图1a所示,对提升通话质量具有重要意义。
3.目前,现有的回声消除方法,主要包括三个步骤:线性滤波、非线性回声抑制处理和延时调整策略;其中,延时调整策略是影响回声消除效果的主要步骤。现有技术中,通常是基于经验估计值确定回声时延,如图1b所示,然而不同类型的调度终端设备的回声时延存在较大差别,例如,安卓设备的回声时延普遍为100ms左右,低端设备普遍在300ms左右;故无法实现对不同类型调度终端的回声时延的准确实时估计,进而无法实现对语音信号回声的准确消除。
技术实现要素:4.本发明提供一种语音的回声消除方法、装置、设备及存储介质,以实现对任意调度终端的回声时延的准确获取,提升回声消除的准确度。
5.第一方面,本发明实施例提供了一种语音的回声消除方法,包括:
6.通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;所述播放缓存队列用于对播放器接收的,且未被播放的远端语音信号进行缓存;
7.通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;所述采集缓存队列用于对音频采集器接收的,且未被发送的近端语音信号进行缓存;
8.根据所述播放器时延和所述音频采集器时延,确定回声时延;
9.通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
10.第二方面,本发明实施例还提供了一种语音的回声消除装置,包括:
11.播放器时延确定模块,用于通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;所述播放缓存队列用于对播放器接收的,且未被播放的远端语音信号进行缓存;
12.音频采集器时延确定模块,用于通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;所述采集缓存队列用于对播放器接收的,且未被发送的近端语音信号进行缓存;
13.回声时延确定模块,用于根据所述播放器时延和所述音频采集器时延,确定回声时延;
14.回声消除模块,用于通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
15.第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
16.一个或多个处理器;
17.存储器,用于存储一个或多个程序,
18.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的语音的回声消除方法。
19.第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行本发明任意实施例所述的语音的回声消除方法。
20.本发明实施例提供的技术方案,通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;同时通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;进而根据播放器时延和音频采集器时延,确定回声时延;最终通过回声时延和远端语音信号,对近端语音信号进行回声消除,获取回声消除后的近端语音信号,通过缓存队列长度分别确定播放器时延和音频采集器时延,可以避免设备类型对时延估计的影响,实现了回声时延的准确获取,提升了回声消除的准确度。
附图说明
21.图1a为现有技术提供的调度终端语音处理流程示意图;
22.图1b为现有技术提供的语音的回声消除方法的示意图;
23.图2a是本发明实施例一提供的一种语音的回声消除方法的流程图;
24.图2b是本发明实施例一提供的一种获取回声时延的示意图;
25.图3a是本发明实施例二提供的一种语音的回声消除方法的流程图;
26.图3b是本发明实施例二提供的一种语音的回声消除方法的流程示意图;
27.图4是本发明实施例三提供的一种语音的回声消除装置的结构框图;
28.图5是本发明实施例四提供的一种电子设备的结构框图。
具体实施方式
29.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
30.实施例一
31.图2a为本发明实施例一提供的一种语音的回声消除方法的流程图,本实施例可适用于通过缓存队列长度分别确定播放器时延和音频采集器时延,实现对回声时延的准确获取的情况,该方法可以由本发明实施例中的语音的回声消除装置来执行,该装置可以通过软件和/或硬件实现,并集成在电子设备上,典型的,可以集成在具有语音采集和播放功能
的终端设备上,如图2a所示,该方法具体包括如下步骤:
32.s110、通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延。
33.其中,播放缓存队列,为调度终端中预先设置的数据存储区域,用于对播放器接收的,且未被播放的远端语音信号进行缓存,播放缓存队列采用先进先出的数据缓存方式,即数据存入顺序对应数据读取顺序。
34.远端语音信号,为远端调度终端,通过预设通信链路传输的语音信号;远端语音信号,可以是远端调度终端通过音频采集器实时采集的语音信号,也可以是远端调度终端中存储的语音信号。
35.需要说明的是,近端调度终端在接收到远端语音信号时,播放器中可能存在正在播放的语音信号,或者存在待播放的语音信号,故无法通过播放器对接收到的远端信号进行实时播放。在本实施例中,近端调度终端在接收到远端语音信号时,通过播放缓存队列进行缓存;并按照各远端语音信号的接收顺序,通过播放器依次对各远端语音信号进行播放。其中,播放器,可以是调度终端内部的播放器,也可以是调度终端连接的外部播放器;播放器可以具体包括音箱。值的注意的是,下文中所提及的调度终端均为近端调度终端。
36.播放器时延,是指从远端语音信号进入播放队列开始计时,到被播放器成功播放的时间。在本实施例中,调度终端可以将播放缓存队列的预设位置作为起始位置,在播放缓存队列中采样获取预设时长的远端语音信号,并记录对应的采样时间;预设位置可以是播放缓存队列的队首位置。同时由于缓存队列的队列长度,对应队尾远端语音信号的等待播放时间,而队尾远端语音信号为最新进入的远端语音信号;故可通过获取播放缓存队列的缓存队列长度,以确定播放器时延。
37.在本实施例的一个可选的实施方式中,调度终端在检测到时延获取条件时,在播放缓存队列中的队首,截取预设时长的远端语音信号,并记录当前时刻播放缓存队列的队列长度,进而将队列长度作为播放器时延。其中,时延获取条件可以根据任务需求进行设置;典型的,时延获取条件可以是预设的时延获取时间,也可以是检测到新的远端语音信号进入播放缓存队列时。例如,时延获取条件是预设的时延获取时间:8点,调度终端在检测达到8点时,若确定调度终端处于语音通话状态,则在播放缓存队列中的队首,截取预设时长的远端语音信号,并记录当前时刻播放缓存队列的队列长度作为播放器时延。
38.s120、通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延。
39.其中,采集缓存队列,为调度终端中预先设置的另一数据存储区域,用于对音频采集器接收的,且未被发送的近端语音信号进行缓存,同样采用先进先出的数据缓存方式。
40.近端语音信号,是调度终端通过音频采集器采集的语音信号,包括正常通信语音和远端语音信号的回声信号;其中,远端语音信号的回声信号可以包括远端语音信号播放后的直达声和多次反射声。需要说明的是,声音在空间中进行多次反射传播后,声音强度会快速下降,故本发明实施例忽略多次反射声对近端语音信号的影响。
41.音频采集器,为具有语音采集功能的功能模块或设备,可以是调度终端内部的音频采集模块,也可以是调度终端连接的外部音频采集设备,可以具体包括麦克风和拾音器。音频采集器时延,是指音频采集器从采集到语音信号开始计时,到开始对语音信号进行回
声消除的时间。
42.在本实施例中,通过获取采集缓存队列的缓存队列长度,以确定音频采集器采集的近端语音信号从被采集到进行回声处理的等待时间,即当前时刻的音频采集器时延,可以实现对音频采集器时延的准确获取。
43.需要说明的是,若假设远端语音信号的播放和空间传播不存在任何时延,则近端语音信号中混杂的回声信号即播放器当前时刻接收的远端语音信号,通过在近端语音信号中直接滤除远端语音信号,即可实现对回声信号的消除。然而,远端语音信号从被接收到进行回声消除过程中,存在一系列时延;故当前时刻的近端语音信号中混杂的回声信号,实际上是之前某一时刻的远端语音信号经过一系列时延后的语音信号。通过获取回声时延,可以实现远端语音信号与近端语音信号的时间对齐,进而可以实现对近端语音信号的回声消除。
44.此外,可选的,也可以通过设置时延获取条件,以判断是否进行音频采集器时延的获取;在本实施例中,通过设置时延获取条件,并根据播放缓存队列的缓存队列长度和采集缓存队列的缓存队列长度,分别确定播放器时延和音频采集器时延,可以实现对播放器时延和音频采集器时延的实时检测与获取;故即使由于网络波动或设备更换导致时延发生改变,本实施例的技术方案,仍可以实现对播放器时延和音频采集器时延的准确获取,可以避免设备类型对时延估计的影响。
45.s130、根据所述播放器时延和所述音频采集器时延,确定回声时延。
46.其中,回声时延,是指以远端语音信号被播放器接收为起始时间,到包含远端语音信号对应回声信号的近端语音信号开始进行回声消除处理的时间间隔;通过获取回声时延,可以实现远端语音信号和近端语音信号的时间对齐,进而实现对近端语音信号的回声消除。
47.需要说明的是,在本实施例中,可以分别获取一次播放器时延和音频采集器时延,进而确定对应的回声时延;也可以连续获取多次播放器时延和音频采集器时延,进而根据多个播放器时延和音频采集器时延,确定回声时延。例如,首先计算各播放器时延的平均值,以及各音频采集器时延的平均值,并根据播放器时延平均值和音频采集器时延的平均值,确定回声时延。又如,首先根据各播放器时延和对应的音频采集器时延,获取多个初始回声时延,进而将各初始回声时延的平均值,作为最终回声时延。
48.在本实施例的一个可选的实施方式中,将所述播放器时延和所述音频采集器时延的和值,作为回声时延。具体的,当播放器和音频采集器间的放置距离较近时,例如,移动终端中的扬声器和麦克风,其距离通常在厘米级;语音信号在空间中的传输时间对回声时延的影响可以忽略,故可以直接将播放器时延和音频采集器时延进行相加,以获取对应的回声时延,可以减少数据计算量。
49.在本实施例的另一个可选的实施方式中,根据播放器和音频采集器之间的空间距离和声音空间传输速度,确定空间传输时延;将所述播放器时延、所述音频采集器时延和所述空间传输时延的和值,作为回声时延。
50.其中,当播放器和音频采集器间的空间距离较远时,此时,空间传输时延对回声时延的影响较大,需要在回声时延中添加空间传输时延,以提升回声时延的准确度。具体的,获取调度终端的播放器和音频采集器件的空间距离,若播放器和音频采集器为调度终端内
部的功能模块,则两者之间的空间距离相对固定,通常为固定值。若播放器和音频采集器为调度终端连接的外部设备,则两者之间的空间距离可能存在变化;例如,音频采集器为手持话筒,音频采集器的位置不断移动,则相对于播放器的空间距离不断变化;此时,可以根据场地环境,预先确定音频采集器的可能移动区域,并计算可能移动区域与播放器之间的平均距离,作为音频采集器与播放器之间的空间距离。
51.在确定播放器和语音采集器之间的空间距离后,计算空间距离与语音空间传输速度的比值,确定空间传输时延;其中,语音空间传输速度,可以为1个标准大气压和15℃条件下的声音传播速度340m/s。进一步的,如图2b所示,将播放器时延、空间传输时延和音频采集器时延进行相加,以获取回声时延;图中,t0表示空间传输时延,t1表示播放器时延,t2表示音频采集器时延;x(n)表示远端语音信号,x`(n)表示回声信号,y(n)表示通信语音信号,回声信号x`(n)和通信语音信号y(n)叠加形成近端语音信号。
52.本实施例的技术方案,通过分别实时获取播放器时延和音频采集器时延,进而获取对应的回声时延,可以实现对回声时延的准确确定,进而可以提升回声消除的准确度。
53.s140、通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
54.在本实施例中,调度终端在播放缓存队列和采集缓存队列中,分别获取预设时长的远端语音信号和近端语音信号;并在确定回声时延后,根据回声时延,在时间轴上对远端语音信号进行移动,以实现远端语音信号与近端语音信号的时间对齐;进一步的,根据远端语音信号的回声生成路径,基于远端语音信号获取模拟回声信号;最终,在对齐时间段的近端语音信号中减去模拟回声信号,以实现近端语音信号的回声消除。
55.在本实施例中,可选的,通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号,可以包括:
56.根据所述回声时延,执行远端语音信号与近端语音信号的时间对齐操作;将时间对齐后的远端语音信号输入至自适应滤波器,获取模拟回声信号;根据所述模拟回声信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
57.其中,预先对自适应滤波器的系数进行更新,自适应滤波器基于归一化最小均方算法;具体的,仅通过播放器播放远端语音信号,以产生对应的回声信号;此时,音频采集器近端不存在人员说话,即只采集回声信号。进而将远端语音信号和音频采集器采集的回声信号输入至自适应滤波器,并在自适应滤波器收敛后,确定自适应滤波器系数。值的注意的是,后续双端通信时,自适应滤波器系数固定,不再进行系数更新。
58.在本实施例中,在通过回声时延,将远端语音信号和近端语音信号时间对齐后,将时间对齐后的远端语音信号输入至预先训练的自适应滤波器,获取自适应滤波器输出的与远端语音信号对应的模拟回声信号;进而在近端语音信号中,减去模拟回声信号,以获取纯净的通信语音,实现了近端语音信号中回声信号的准确消除。
59.本发明实施例提供的技术方案,通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;同时通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;进而根据播放器时延和音频采集器时延,确定回声时延;最终通过回声时延和远端语音信号,对近端语音信号进行回声消除,获取回声消除后的近端语音信号,通过缓存队列长度
分别确定播放器时延和音频采集器时延,可以避免设备类型对时延估计的影响,实现了回声时延的准确获取,提升了回声消除的准确度。
60.实施例二
61.图3a为本发明实施例二提供的一种语音的回声消除方法的流程图,本实施例在上述实施例的基础上进行具体化,在本实施例中,通过获取播放器平均时延和音频采集器平均时延,进而获取对应的平均回声时延,并基于平均回声时延进行回声消除,该方法具体包括:
62.s210、通过播放缓存队列,获取预设时长的远端语音信号。
63.s220、根据播放缓存队列中的缓存队列长度,确定处理时延。
64.其中,处理时延,是指远端语音信号进入播放缓存队列,直至离开播放缓存队列的时间;需要说明的是,即使远端语音信号离开播放缓存队列进入播放器,播放器仍然需要一定时间对远端语音信号进行处理,才能真正实现对远端语音信号的播放。由于播放器的语音信号处理时间与播放器的类型相关,故预先获取不同类型的播放器对应的播放时延,以获取与当前播放器对应的播放时延。
65.s230、根据测试语音信号,预先测试不同类型的播放器对应的播放时延。
66.其中,测试语音信号,可以是预先录制的声音信号,也可以是网络中获取的声音信号,用于测试播放器的播放时延;播放时延,是指从语音信号进入播放器开始,到被正式播放的时间。在本实施例中,采用不同类型的播放器,分别播放预先设置的测试语音信号,以获取各类型播放器的播放时延。
67.s240、建立播放器类型与对应播放时延的映射关系。
68.具体的,在获取到各类型播放器对应的播放时延后,建立并存储播放器类型与播放时延的映射关系,映射关系可以采用哈希表(例如,播放器类型对应key值,播放时延对应value值)的形式进行存储,以提升查找效率。
69.s250、根据所述目标播放器类型,在预先建立的映射关系中,进行匹配播放器类型的查找。
70.其中,若确定查找到匹配的播放器类型,则执行s260;否则,执行s270。具体的,在完成对调度终端的现场部署后,根据调度终端的目标播放器类型,在预先建立的映射关系中查找匹配的key值;若确定查找到匹配的key值,则将key值对应的value值作为目标播放器对应的目标播放时延;而若未查找到匹配的key值,表示本地没有存储当前播放器类型对应的播放时延,此时,采用预先设置的标准播放时延,作为目标播放器类型对应的目标播放时延。
71.s260、将对应的播放时延确定为目标播放时延,执行s280。
72.s270、将预设的标准播放时延,确定为目标播放时延,执行s280。
73.s280、通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延。
74.s290、根据连续获取的多个播放器时延,确定播放器平均时延;根据连续获取的多个音频采集器时延,确定音频采集器平均时延。
75.在本实施例的一个具体的实施方式中,在获取到一个播放器时延和音频采集器时延后,不立即计算对应的回声时延;而是根据设定采集周期,例如,每间隔1ms,连续获取多
次播放缓存队列和采集缓存队列的缓存队列长度,以获取连续时间内的多个播放器时延和音频采集器时延。进一步的,计算各播放器时延的平均值,作为播放器平均时延;计算各音频采集器时延的平均值,作为音频采集器平均时延。
76.s2100、根据所述播放器平均时延和所述音频采集器平均时延,确定平均回声时延。
77.具体的,在获取到播放器平均时延和音频采集器平均时延后,可以将播放器平均时延和音频采集器平均时延的和值作为平均回声时延;也可以将播放器平均时延、音频采集器平均时延和空间传播时延的和值,作为平均回声时延。
78.本实施例的技术方案,通过获取播放器平均时延和音频采集器平均时延,进而获取对应的平均回声时延,可以避免时延波动对时延消除效果的影响,进一步提升了时延估计的准确度,进而提升了时延消除的准确度。
79.需要说明的是,在本实施例中,可以采用处理缓存队列对采集的各预设时长的远端语音信号和近端语音信号进行存储,同时可以对获取的各播放器时延和音频采集器时延进行缓存。其中,特定时刻采集的远端语音信号的近端语音信号,对应特定时刻获取的播放器时延和音频采集器时延。值的注意的是,可以通过预先设置的处理线程,实现对远端语音信号和近端语音信号的采集,以及对回声时延的计算,提升数据处理效率。
80.在本实施例中,可选的,通过播放缓存队列,获取预设时长的远端语音信号之前,还可以包括:开启两个线程,并通过第一线程将远端语音信号发送至播放缓存队列,通过第二线程将近端语音信号发送至采集缓存队列。具体的,预先设置两个线程,以实现缓存队列对匹配语音信号的获取;同时通过设置专用线程,可以提升缓存队列对匹配语音信号的获取效率。
81.s2110、通过所述平均回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
82.在本实施例的一个具体的实施方式中,如图3b所示,播放器线程(speaker线程)负责接收远端语音信号,并将远端语音信号发送至播放缓存队列(queue1)进行缓存;远端语音信号为脉冲编码调制(pulse code modulation,pcm)的数字信号,播放缓存队列中每个数据块存放20ms的远端语音信号。
83.音频采集器线程,将音频采集器接收的近端语音信号发送至采集缓存队列(queue2)进行缓存;采集缓存队列中每个数据块存放20ms的近端语音信号。处理线程从缓存队列的队首开始,每次在播放缓存队列和采集缓存队列中分别读取20ms的远端语音信号和近端语音信号,并分别记录数据读取时刻的播放缓存队列和采集缓存队列的缓存队列长度,作为当前时刻的播放器时延和音频采集器时延,将获取的数据存放至处理缓存队列(queue3)。
84.处理线程连续进行5次数据采集,以获取5段20ms的远端语音信号和近端语音信号,以及对应的5个播放器时延和音频采集器时延;分别计算5个播放器时延的平均值,以及5个音频采集器时延的平均值,以获取100ms内的播放器平均时延和音频采集器平均时延,最终获取100ms内的平均回声时延。例如,5次播放器时延分别为t11、t12、t13、t14和t15,则对应的播放器平均时延可表示为t1`=(t11+t12+t13+t14+t15)/5;音频采集器时延分别为t21、t22、t23、t24和t25,对应的音频采集器平均时延可表示为t2`=(t21+t22+t23+t24+
t25)/5,则平均回声时延可表示为delay=t0+t1`+t2`,其中,t0表示空间传输时延。
85.在确定平均回声时延后,根据平均时延,对采集的远端语音信号和近端语音信号进行时间对齐,进而根据时间对齐后的远端语音信号,对近端语音信号进行回声消除。
86.本发明实施例提供的技术方案,根据连续获取的多个播放器时延和音频采集器时延,分别确定对应的播放器平均时延和音频采集器平均时延,并根据播放器平均时延和音频采集器平均时延,获取平均回声时延;进而基于平均回声时延和远端语音信号,对近端语音信号进行回声消除,进一步提升了获取回声时延的准确度;同时通过对回声时延进行连续检测,可以避免回声时延波动对回声消除效果的影响,提升了回声消除系统的稳定性。
87.实施例三
88.图4是本发明实施例三提供的一种语音的回声消除装置的结构示意图。结合图4,该装置包括:播放器时延确定模块310,音频采集器时延确定模块320,回声时延确定模块330和回声消除模块340。其中:
89.播放器时延确定模块310,用于通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;所述播放缓存队列用于对播放器接收的,且未被播放的远端语音信号进行缓存;
90.音频采集器时延确定模块320,用于通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;所述采集缓存队列用于对播放器接收的,且未被发送的近端语音信号进行缓存;
91.回声时延确定模块330,用于根据所述播放器时延和所述音频采集器时延,确定回声时延;
92.回声消除模块340,用于通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
93.本发明实施例提供的技术方案,通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;同时通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;进而根据播放器时延和音频采集器时延,确定回声时延;最终通过回声时延和远端语音信号,对近端语音信号进行回声消除,获取回声消除后的近端语音信号,通过缓存队列长度分别确定播放器时延和音频采集器时延,可以避免设备类型对时延估计的影响,实现了回声时延的准确获取,提升了回声消除的准确度。
94.可选的,在上述技术方案的基础上,回声时延确定模块330,包括:
95.播放器平均时延确定单元,用于根据连续获取的多个播放器时延,确定播放器平均时延;
96.音频采集器平均时延确定单元,用于根据连续获取的多个音频采集器时延,确定音频采集器平均时延;
97.平均回声时延确定单元,用于根据所述播放器平均时延和所述音频采集器平均时延,确定平均回声时延;
98.回声消除模块340,具体用于通过所述平均回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
99.可选的,在上述技术方案的基础上,回声消除模块340,还用于将所述播放器时延
和所述音频采集器时延的和值,作为回声时延;或者,
100.根据播放器和音频采集器之间的空间距离和声音空间传输速度,确定空间传输时延;
101.将所述播放器时延、所述音频采集器时延和所述空间传输时延的和值,作为回声时延。
102.可选的,在上述技术方案的基础上,回声消除模块340,包括:
103.时间对齐单元,用于根据所述回声时延,执行远端语音信号与近端语音信号的时间对齐操作;
104.模拟回声信号获取单元,用于将时间对齐后的远端语音信号输入至自适应滤波器,获取模拟回声信号;
105.回声消除单元,用于根据所述模拟回声信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
106.可选的,在上述技术方案的基础上,所述语音的回声消除装置,还包括:
107.线程开启模块,用于开启两个线程,并通过第一线程将远端语音信号发送至播放缓存队列,通过第二线程将近端语音信号发送至采集缓存队列。
108.可选的,在上述技术方案的基础上,播放器时延确定模块310,包括:
109.处理时延确定单元,用于根据播放缓存队列中的缓存队列长度,确定处理时延;
110.目标播放时延确定单元,用于获取目标播放器类型,并根据所述目标播放器类型,确定目标播放时延;
111.播放器时延确定单元,用于根据所述处理时延和所述目标播放时延,确定播放器时延。
112.可选的,在上述技术方案的基础上,播放器时延确定模块310,还包括:
113.播放时延测试单元,用于根据测试语音信号,预先测试不同类型的播放器对应的播放时延;
114.映射关系建立单元,用于建立播放器类型与对应播放时延的映射关系;
115.目标播放时延确定单元,具体用于:
116.根据所述目标播放器类型,在预先建立的映射关系中,进行匹配播放器类型的查找;
117.若确定查找到匹配的播放器类型,则将对应的播放时延确定为目标播放时延;否则,将预设的标准播放时延,确定为目标播放时延。
118.本发明实施例所提供的语音的回声消除装置可执行本发明任意实施例所提供的语音的回声消除方法,具备执行方法相应的功能模块和有益效果。
119.实施例四
120.图5是本发明实施例四提供的一种电子设备的结构示意图,如图5所示,该设备包括:
121.一个或多个处理器410,图5中以一个处理器410为例;
122.存储器420;
123.设备还可以包括:输入装置430和输出装置440。
124.设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者
其他方式连接,图5中以通过总线连接为例。
125.存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种语音的回声消除方法,或者,一种语音的回声消除方法对应的程序指令/模块(例如,附图4所示的播放器时延确定模块310,音频采集器时延确定模块320,回声时延确定模块330和回声消除模块340)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的一种语音的回声消除方法,即:
126.通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;所述播放缓存队列用于对播放器接收的,且未被播放的远端语音信号进行缓存;
127.通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;所述采集缓存队列用于对音频采集器接收的,且未被发送的近端语音信号进行缓存;
128.根据所述播放器时延和所述音频采集器时延,确定回声时延;
129.通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
130.存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
131.输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
132.实施例五
133.本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种语音的回声消除方法,即:
134.通过播放缓存队列,获取预设时长的远端语音信号,并根据播放缓存队列中的缓存队列长度,确定播放器时延;所述播放缓存队列用于对播放器接收的,且未被播放的远端语音信号进行缓存;
135.通过采集缓存队列,获取预设时长的近端语音信号,并根据采集缓存队列中的缓存队列长度,确定音频采集器时延;所述采集缓存队列用于对音频采集器接收的,且未被发送的近端语音信号进行缓存;
136.根据所述播放器时延和所述音频采集器时延,确定回声时延;
137.通过所述回声时延和所述远端语音信号,对所述近端语音信号进行回声消除,获取回声消除后的近端语音信号。
138.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算
机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd
‑
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
139.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
140.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。
141.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
142.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。