1.本公开涉及声学技术,尤其涉及回声消除方法、语音激活方法、回声消除装置、智能语音交互设备以及计算机可读存储介质。
背景技术:2.随着智能电子设备的普及,语音识别、语音唤醒、语音交互越来越多地应用到智能电子设备中,例如应用到智能音箱、智能车载终端等设备中。
3.为了实现这些与语音有关的功能,智能电子设备中通常搭载麦克风。智能电子设备通过麦克风采集用户的语音,利用语音识别技术对用户的语音进行识别以理解用户的意图或者指令。但是,在智能电子设备或者其它设备的扬声器播放声音的情况下,扬声器播放的声音信号经由空气或者其它传播媒介也会到达智能电子设备的麦克风处。也就是说,智能电子设备的麦克风采集到的信号中可能叠加了用户的语音信号和由扬声器播放声音导致的回波信号。回波信号会对语音识别造成干扰,需要对麦克风采集的信号进行回声消除,以准确地进行语音识别。
4.回声消除是采用回波抵消方法,即利用参考信号通过自适应滤波方法估计回波信号的大小,然后在接收信号中减去此估计值以抵消回波。回声消除需要对齐参考信号和麦克风信号,在扬声器和麦克风分属于不同电子设备的情况下,参考信号和麦克风信号的时延关系容易抖动或者偏移,不易对齐。因此,有必要提供一种回声消除方法,能够比较准确的对齐参考信号和麦克风信号,实现较好的回声消除效果。
技术实现要素:5.本公开公开的实施例提供一种新的回声消除方案。
6.根据本公开说明书的第一方面,提供了回声消除方法,包括:
7.获取参考信号,将所述参考信号写入循环缓冲区中,所述参考信号来自于提供给扬声器播放的音频源信号;
8.获取当前待处理的麦克风信号;
9.估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值;
10.根据所述时延估计值对读指针的位置进行调整;
11.通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
12.可选地,基于互相关算法估计所述时间延迟。
13.可选地,在根据所述时延估计值对读指针的位置进行调整之前,还包括:在所述时延估计值上增加一预设正值。
14.可选地,根据所述时延估计值对读指针的位置进行调整,包括:在读指针计数值大于所述时延估计值并且所述时延估计值为正值的情况下,将读指针计数值减去所述时延估
计值,得到更新后的读指针计数值;在读指针计数值小于等于所述时延估计值并且所述时延估计值为正值的情况下,将读指针计数值设置为零;在所述时延估计值为零或者负值的情况下,保持读指针计数值不变。
15.可选地,所述方法还包括:基于回声系统的情况预先估计所述时间延迟的最大范围,根据所述时间延迟的最大范围设置循环缓存区的容量。
16.可选地,所述当前待处理的麦克风信号来自于第一电子设备的麦克风,所述扬声器属于第二电子设备;所述第一电子设备通过无线传输方式将所述音频源信号发送给所述第二电子设备,以供所述第二电子设备的扬声器进行播放。
17.可选地,所述当前待处理的麦克风信号来自于第一电子设备的麦克风,所述扬声器属于第二电子设备;所述参考信号来自于第二电子设备。
18.可选地,所述第一电子设备是智能音箱,所述第二电子设备是车载音箱。
19.根据本公开说明书的第二方面,提供了语音激活方法,包括前述任一项所述的回声消除方法;还包括:
20.对所述残差信号进行语音识别;
21.在识别到预设的唤醒词的情况下,唤醒智能语音交互设备。
22.根据本公开说明书的第三方面,提供了回声消除装置,包括:
23.第一获取模块,用于获取参考信号,将所述参考信号存入循环缓冲区中,所述参考信号来自于提供给扬声器播放的音频源信号;
24.第二获取模块,用于获取当前待处理的麦克风信号;
25.时延估计模块,用于估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值;
26.读指针位置调整模块,用于根据所述时延估计值对读指针的位置进行调整;
27.回声消除模块,用于通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
28.可选地,所述读指针位置调整模块根据所述时延估计值对读指针的位置进行调整,包括:在读指针计数值大于所述时延估计值并且所述时延估计值为正值的情况下,将读指针计数值减去所述时延估计值,得到更新后的读指针计数值;在读指针计数值小于等于所述时延估计值并且所述时延估计值为正值的情况下,将读指针计数值设置为零;在所述时延估计值为零或者负值的情况下,保持读指针计数值不变。
29.根据本公开说明书的第四方面,提供了回声消除装置,包括处理器和存储器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现前述任一项所述的回声消除方法。
30.根据本公开说明书的第五方面,提供了智能语音交互设备,包括处理器和存储器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现前述任一项所述的回声消除方法。
31.根据本公开说明书的第六方面,提供了计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一项所述的回声消除方法。
32.根据本公开说明书的第七方面,提供了回声消除方法,由智能语音交互设备执行,所述方法包括:
33.获取参考信号,将所述参考信号写入循环缓冲区中,所述参考信号来自于提供给车载音箱播放的音频源信号;
34.获取当前待处理的麦克风信号,所述当前待处理的麦克风信号来自于所述智能语音交互设备的麦克风;
35.估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值;
36.根据所述时延估计值对读指针的位置进行调整;
37.通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
38.可选地,所述智能语音交互设备通过无线传输方式将所述音频源信号发送给所述车载音箱。
39.根据本公开说明书的第八方面,提供了车载智能语音助手的回声消除性能的测试方法,所述车载智能语音助手包括扬声器和麦克风,所述方法包括:
40.在所述车载智能语音助手播放音频源信号的情况下,记录所述车载智能语音助手对语音指令的正确执行率;
41.根据所述语音指令的正确执行率确定所述车载智能语音助手的回声消除性能;
42.所述车载智能语音助手进行回声消除的过程为:
43.获取参考信号,将所述参考信号写入循环缓冲区中,所述参考信号来自于所述音频源信号;
44.获取当前待处理的麦克风信号,所述当前待处理的麦克风信号来自于所述车载智能语音助手的麦克风;
45.估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值;
46.根据所述时延估计值对读指针的位置进行调整;
47.通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
48.本公开的实施例的回声消除方法,利用循环缓冲区的读指针位置处的参考信号来计算时间延迟,并且根据本次时间延迟来调整读指针的位置,能够准确跟踪到参考信号和麦克风信号之间的时间延迟,可以得到较好的回声消除效果。本公开的实施例的回声消除方法,可以适用于扬声器和麦克风分属于不同电子设备的场景。
49.以下参照附图对本公开的示例性实施例的详细描述,本公开的实施例的特征及其优点将会变得清楚。
附图说明
50.被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开实施例的原理。
51.图1示出了参考信号和麦克风信号出现时延抖动的例子。
52.图2示出了参考信号和麦克风信号出现时延偏移的例子。
53.图3示出了本公开的实施例提供的回声消除方法;
54.图4示出了本公开的实施例的循环缓冲区的读指针的位置变化过程;
55.图5是本公开的实施例提供的回声消除装置的框图;
具体实施方式
56.现在将参照附图来详细描述本公开的各种示例性实施例。
57.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开实施例及其应用或使用的任何限制。
58.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
59.<回声消除方法>
60.为了实现语音识别、语音唤醒、语音交互等与语音有关的功能,智能电子设备中通常搭载麦克风。智能电子设备通过麦克风采集用户的语音,利用语音识别技术对用户的语音进行识别以理解用户的意图或者指令。但是,在智能电子设备或者其它设备的扬声器播放声音的情况下,扬声器播放的声音信号经由空气或者其它传播媒介也会到达智能电子设备的麦克风处。也就是说,智能电子设备的麦克风采集到的信号中可能叠加了用户的语音信号和由扬声器播放声音导致的回波信号。回波信号会对语音识别造成干扰,需要对麦克风采集的信号进行回声消除,以准确地进行语音识别。
61.回声消除需要对齐参考信号和麦克风信号,在扬声器和麦克风分属于不同电子设备的情况下,参考信号和麦克风信号的时延关系容易抖动或者偏移,不易对齐。
62.参见图1所示,说明扬声器和麦克风分属于不同电子设备时,时延关系抖动的一个例子。
63.第一电子设备102搭载有麦克风,第二电子设备103搭载有扬声器,第一电子设备102通过蓝牙等无线传输方式向第二电子设备103传输音频源信号,音频源信号由第二电子设备103的扬声器播放出来。第二电子设备103的扬声器播放音频源信号,经由空气或者其它传输媒介又到达第一电子设备102的麦克风处。也就是说,第一电子设备102的麦克风采集到的信号中可能叠加了用户的语音信号,以及第二电子设备103的扬声器播放音频源信号导致的回波信号。
64.如图1所示,回声消除所使用的参考信号来自于第一电子设备102这一端的音频源信号。回声消除所使用的麦克风信号来自于第一电子设备102的麦克风。
65.第一电子设备102通过蓝牙等无线传输方式向第二电子设备103传输音频源信号,无线传输过程可能不稳定、发生时延抖动,导致回波信号发生时延抖动。也就是说,回声消除过程使用的参考信号和麦克风信号之间可能出现时延抖动。
66.参见图2所示,说明扬声器和麦克风分属于不同电子设备时,时延关系偏移的另一个例子。
67.第一电子设备102搭载有麦克风,第二电子设备103搭载有扬声器,第二电子设备103的扬声器播放音频源信号。该音频源信号可以是第一电子设备102传输给第二电子设备103的,也可以是第二电子设备103通过其他方式获取的。第二电子设备103的扬声器播放音频源信号,经由空气或者其它传输媒介又到达第一电子设备102的麦克风处。也就是说,第一电子设备102的麦克风采集到的信号中可能叠加了用户的语音信号,以及第二电子设备
103的扬声器播放音频源信号导致的回波信号。
68.如图2所示,回声消除所使用的参考信号来自于第二电子设备103这一端的音频源信号。回声消除所使用的麦克风信号来自于第一电子设备102的麦克风。
69.第一电子设备的102和第二电子设备的103的时钟频率和标准时钟频率之间的误差可能是不同的,另外,时钟频率又受到晶振本身稳定性、电源以及温度变化等因素的影响,导致第一电子设备102的模数转换过程和第二电子设备103的模数转换过程的实际采样频率不一样。例如,音频采样频率选取16000hz,也就是每秒钟应该有16000个采样点,但是在实际上,第一电子设备每秒钟内产生15000个采样点,第二电子设备每秒钟产生17000个采样点。第一电子设备的102和第二电子设备的103的实际采样频率的不一样,会导致回声消除过程使用的参考信号和麦克风信号之间出现时延关系出现偏移。
70.在图1和图2所示的场景中,第一电子设备102支持语音交互功能,需要进行回声消除以准确识别用户语音。第一电子设备102例如为智能音箱,第二电子设备103例如为车载音箱。
71.本公开实施例提供的回声消除方法,可以在时延抖动或者偏移的情况下,对齐参考信号和麦克风信号,实现较好的回声消除效果。
72.参考图3所示,说明本公开的实施例提供的回声消除方法。本公开的实施例提供的回声消除方法,包括步骤s602-s610。
73.s602、获取参考信号,将参考信号写入循环缓冲区中。参考信号来自于提供给扬声器播放的音频源信号。
74.在一个具体的例子中,该音频源信号是音乐。在一个具体的例子中,该音频源信号可以是机器合成语音信号,例如,可以是利用文本生成的机器合成语音信号。
75.音频源信号本身可以是模拟信号或者是数字信号。如果音频源信号是模拟信号,进行模数转换就可以得到参考信号。如果音频源信号是数字信号,可以直接将音频源信号作为参考信号。
76.最终输入至扬声器进行播放的音频源信号应该是模拟信号,如果参考信号来自于最终输入至扬声器进行播放的音频源信号,对最终输入至扬声器进行播放的音频源信号进行模数转换,就可以得到参考信号。
77.对参考信号进行时频变换,将时频变换后的参考信号存入到循环缓冲区中,利用时频变换后的参考信号进行回声消除。时频变换可以通过傅里叶变换实现,例如进行1024个点的快速傅里叶变换(fast fourier transform,fft)。时频变换可以通过滤波实现,通过滤波将参考信号变换到子带域。
78.参考信号和麦克风信号的时延主要受传输介质、解码器的影响,在一个具体的例子中,可以基于回声系统的情况预先估计时间延迟的最大范围,根据时间延迟的最大范围设置循环缓存区的容量。
79.循环缓冲区是可以循环读写的存储区域。循环缓冲区可以是环形循环缓存。循环缓冲区具有写指针和读指针,通过写指针和读指针来控制循环缓冲区中数据的待写位置和待读位置。在初始状态下,读指针和写指针的计数值均为零。当循环缓冲区中新增一个采样点数据后,循环缓冲区的写指针计数值加1,当写指针计数值达到循环缓冲区的最大容量时,将写指针计数值置为零。当从循环缓冲区中读取一个采样点数据后,读指针的计数值加
1,当读指针的计数值达到循环缓冲区的最大容量时,将读指针的计数值置为零。
80.s604、获取当前待处理的麦克风信号。
81.麦克风输出的信号一般是模拟信号,对麦克风输出的信号先进行模数变换,得到麦克风信号。
82.对麦克风信号进行时频变换,利用时频变换后的麦克风信号进行回声消除。时频变换可以通过傅里叶变换实现,例如进行1024个点的快速傅里叶变换(fast fourier transform,fft)。时频变换可以通过滤波实现,通过滤波将麦克风信号变换到子带域。
83.s606、估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值。
84.图4示出了循环缓冲区的一部分,读指针当前处于位置a,指向第10001个采样点数据。在步骤s606中,估计当前待处理的麦克风信号相对于第10001个采样点数据的时间延迟。
85.在一个具体的例子中,基于互相关算法估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值。在一个具体的例子中,时延估计值以采样点个数进行计数。
86.在一个具体的例子中,以帧为单位进行时延估计。例如,将1024个采样点视为一个音频帧。参见图4所示,读指针当前处于位置a,读指针所指向的参考信号帧包括从第10001个采样点数据到第11024个采样点数据的1024个采样点数据,利用该参考信号帧和当前待处理的麦克风信号帧,基于互相关算法进行时延估计,得到时延估计值。
87.该时延估计值可能是正值,即当前待处理的麦克风信号帧晚于读指针位置处的参考信号帧。
88.该时延估计值可能是负值,即当前待处理的麦克风信号帧早于读指针位置处的参考信号帧。
89.时延估计值为负值会导致回声消除所使用的自适应滤波器为一个非因果系统。为了规避这种情况、保证自适应滤波器的鲁棒性,在估计出时延估计值后,可以在时延估计值上增加一预设的正值,以尽量保证最后的时延估计值不会是负值。此外,在时延估计值上增加一预设的正值,还可以避免时延估计值出现较大波动。
90.s608、根据时延估计值对读指针的位置进行调整。
91.如果时延估计值为负值,判断时延估计值为异常值,将时延估计值设置为零,不对读指针的位置进行调整。
92.如果时延估计值为零,说明时延情况没有发生改变,不需要重新对齐麦克风信号和参考信号,不对读指针的位置进行调整。
93.如果时延估计值为正值,将读指针的计数值减去时延估计值,得到一个中间值。如果中间值为负值或者为零,由于读指针应当是从零开始计数,在这种情况下,需要将读指针的计数值置为零。如果中间值为正值,将读指针的计数值置为该中间值。
94.也就是说,根据时延估计值对读指针的位置进行调整,包括:
95.在读指针计数值大于时延估计值并且时延估计值为正值的情况下,将读指针计数值减去时延估计值,得到更新后的读指针计数值;
96.在读指针计数值小于等于时延估计值并且时延估计值为正值的情况下,将读指针
计数值设置为零;
97.在时延估计值为零或者负值的情况下,保持读指针计数值不变。
98.参考图4所示,假设时延估计值为20并且读指针的计数值大于20,则将读指针的计数值减去20,从而将读指针从位置a处调整到位置b处,也就是将读指针指向第9981个采样点数据。
99.s610、通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
100.通过读指针读取参考信号进行回声消除处理,读指针的位置会发生改变。在一个具体的例子中,通过自适应滤波来实现回声消除。
101.在一个具体的例子中,以帧为单位进行回声消除。参见图4所示,经过步骤s608之后,读指针处于位置b,指向第9981个采样点数据。通过读指针读取一帧参考数据,也就是读取从第9981个采样点数据到第11004个采样点数据的1024个采样点数据,利用该帧参考信号,对当前待处理的麦克风信号帧进行回声消除处理。读取一帧参考数据后,读指针会从位置b移动到位置c,也就是将读指针指向到第11005个采样点。
102.在一个具体的例子中,当超过预设时间没有获取到参考信号后,将循环缓冲区清空,将读指针和写指针的计数值置为零。该预设时间例如为2秒钟。
103.在一个具体的例子中,回声系统涉及的麦克风和扬声器属于同一个电子设备,上述实施例的回声消除方法由该电子设备实施。该电子设备可以是智能语音交互设备,例如是智能音箱。该电子设备也可以是车载音箱、车载智能语音助手。
104.在一个具体的例子中,麦克风信号来自于第一电子设备的麦克风,扬声器属于第二电子设备。上述实施例的回声消除方法可以由第一电子设备实施。在一个具体的例子中,第一电子设备通过有线或者无线传输方式将音频源信号发送给第二电子设备,以供第二电子设备的扬声器进行播放。
105.在一个具体的例子中,麦克风信号来自于第一电子设备的麦克风,扬声器属于第二电子设备。上述实施例的回声消除方法可以由第一电子设备实施。在一个具体的例子中,参考信号来自于第二电子设备。
106.在一个具体的例子中,第一电子设备是智能音箱,第二电子设备是车载音箱或者车载智能语音助手。或者,第一电子设备是车载音箱或者车载智能语音助手,第二电子设备是智能音箱。
107.具有回声消除功能的电子设备,可以只在需要时开启回声消除功能,在回声消除功能开启的情况下,执行上述实施例的回声消除方法。
108.例如,具有回声消除功能的电子设备,在接收到用户语音指示开启回声消除功能命令的情况下,启动上述实施例中的回声消除方法。
109.例如,具有回声消除功能的电子设备,机身上设有回声消除启动按钮,在该按钮被按下时,启动上述实施例中的回声消除方法。
110.本公开的实施例还提供了一种回声消除方法,可以应用于车载场景下,涉及到车载音箱和智能语音交互设备。在车载音箱播放音频源信号的情况下,智能语音交互设备要消除车载音箱播放音频源信号导致的回波信号的影响,以进行准确的语音识别。该回声消除方法由智能语音交互设备执行,包括步骤s802-s810。
111.s802、获取参考信号,将参考信号写入循环缓冲区中,参考信号来自于提供给车载音箱播放的音频源信号。
112.s804、获取当前待处理的麦克风信号,当前待处理的麦克风信号来自于智能语音交互设备的麦克风。
113.s806、估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值。
114.s808、根据时延估计值对读指针的位置进行调整。
115.s810、通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
116.步骤s802-s810的具体内容可以参见前述步骤s602-s610,这里不再重复说明。
117.在一个具体的例子中,智能语音交互设备通过有线或者无线传输方式将音频源信号发送给车载音箱,也就是说,车载音箱播放的音频源信号来自于智能语音交互设备。
118.在一个具体的例子中,参考信号来自于车载音箱,也就是说,车载音箱将参考信号发送给智能语音交互设备,以供智能语音交互设备进行回声消除使用。例如,参考信号来自于最终输入至车载音箱的扬声器进行播放的音频源信号,车载音箱对最终输入至扬声器进行播放的音频源信号进行模数转换,就可以得到参考信号。车载音箱将参考信号通过有线或者无线传输方式发送给智能语音交互设备。智能语音交互设备对参考信号进行时频变换,将时频变换后的参考信号存入到循环缓冲区中,以进行回声消除。
119.本公开的实施例的回声消除方法,利用循环缓冲区的读指针位置处的参考信号来计算时间延迟,并且根据本次时间延迟来调整读指针的位置,能够准确跟踪到参考信号和麦克风信号之间的时间延迟,可以得到较好的回声消除效果。
120.本公开的实施例的回声消除方法,利用循环缓冲区的读指针位置处的参考信号来计算时间延迟,由于循环缓冲区的读指针经过上一次时延调整,所以当第一电子设备和第二电子设备的时钟关系逐步朝一个方向偏移时,本公开的实施例的回声消除方法仍然可以跟踪出时延值。
121.本公开的实施例的回声消除方法,时延估计和循环缓冲区的读指针位置调整是同步的,可以跟踪任意时间内的漂移。
122.本公开的实施例的回声消除方法,利用循环缓冲区进行时延控制,不影响第一电子设备和第二电子设备的硬件时序。
123.<语音激活方法>
124.本公开的实施例提供了一种语音激活方法,包括前述任一实施例的回声消除方法,还包括以下步骤:
125.对残差信号进行语音识别;
126.在识别到预设的唤醒词的情况下,唤醒智能语音交互设备。
127.本公开的实施例提供的语音激活方法,可以进行准确的回声消除,从而准确提取出用户语音信号来进行唤醒词识别。
128.<车载智能语音助手的回声消除性能的测试方法>
129.本公开的实施例提供了一种车载智能语音助手的回声消除性能的测试方法。
130.车载智能语音助手通常包括扬声器、麦克风和控制器等装置。该控制器可以具有
回声消除功能和语音识别功能。车载智能语音助手通过自身的麦克风拾取用户发出的语音指令,进行语音识别并且执行相应的动作。例如,根据不同的语音指令,车载智能语音助手可以实现播放天气预报、新闻资讯、歌曲,路线导航,开关空调、车窗,调整座位姿态等功能。
131.车载智能语音助手使用前述实施例中的回声消除方法进行回声消除,具体地,可以包括以下步骤:
132.s702、获取参考信号,将参考信号写入循环缓冲区中,所述参考信号来自于车载智能语音助手的扬声器播放的音频源信号。
133.s704、获取当前待处理的麦克风信号,所述当前待处理的麦克风信号来自于车载智能语音助手的麦克风。
134.s706、估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值。
135.s708、根据时延估计值对读指针的位置进行调整。
136.s710、通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号。
137.步骤s702-s710的具体内容可以参见前述步骤s602-s610,这里不再重复说明。
138.对车载智能语音助手的回声消除性能进行测试的过程包括:
139.s902、在车载智能语音助手播放音频源信号的情况下,记录车载智能语音助手对语音指令的正确执行率。
140.在一个具体的例子中,可以由人工发出语音指令。
141.在一个具体的例子中,也可以是放置在车内的电子设备播放语音指令,该电子设备例如可以是仿真嘴。该语音指令可以是预先录制的真人语音指令,也可以是机器合成语音指令,例如,可以是利用文本生成的机器合成语音指令。
142.记录车载智能语音助手正确执行语音指令的次数,以及发出语音指令的总次数,计算前者与后者的比值就可以得到车载智能语音助手对语音指令的正确执行率。
143.s904、根据语音指令的正确执行率确定车载智能语音助手的回声消除性能。
144.车载智能语音助手对语音指令的正确执行率越高,说明车载智能语音助手的回声消除性能相对越好。当车载智能语音助手对语音指令的正确执行率达到预设的合格阈值时,认为车载智能语音助手的回声消除性能合格。该合格阈值例如是90%。
145.<回声消除装置>
146.参考图2所示,本公开实施例提供了一种回声消除装置,包括:
147.第一获取模块,用于获取参考信号x(n),将参考信号x(n)存入循环缓冲区中,参考信号x(n)来自于提供给扬声器播放的音频源信号。
148.第二获取模块,用于获取当前待处理的麦克风信号s(n)。
149.时延估计模块10,用于估计当前待处理的麦克风信号相对于循环缓冲区的读指针位置处的参考信号的时间延迟,得到时延估计值。
150.读指针位置调整模块20,用于根据时延估计值对读指针的位置进行调整。
151.回声消除模块30,用于通过读指针读取参考信号,根据读取到的参考信号对当前待处理的麦克风信号进行回声消除处理,以得到残差信号e(n)。
152.在一个具体的例子中,读指针位置调整模块20,根据时延估计值对读指针的位置
进行调整,包括:
153.在读指针计数值大于时延估计值并且时延估计值为正值的情况下,将读指针计数值减去时延估计值,得到更新后的读指针计数值;
154.在读指针计数值小于等于时延估计值并述时延估计值为正值的情况下,将读指针计数值设置为零;
155.在时延估计值为零或者负值的情况下,保持读指针计数值不变。
156.在一个具体的例子中,时延估计模块10基于互相关算法估计时间延迟。
157.在一个具体的例子中,时延估计模块10还用于,在时延估计值上增加一预设正值。
158.在一个具体的例子中,基于回声系统的情况预先估计时间延迟的最大范围,根据时间延迟的最大范围设置循环缓存区的容量。
159.在一个具体的例子中,麦克风信号来自于第一电子设备的麦克风,扬声器属于第二电子设备;第一电子设备通过无线传输方式将音频源信号发送给第二电子设备,以供第二电子设备的扬声器进行播放。
160.在一个具体的例子中,麦克风信号来自于第一电子设备的麦克风,扬声器属于第二电子设备,参考信号来自于第二电子设备。
161.在一个具体的例子中,第一电子设备是智能音箱,第二电子设备是车载音箱。
162.本公开的实施例提供了一种回声消除装置,包括处理器和存储器,存储器中存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一实施例的回声消除方法。
163.本公开的实施例的回声消除装置,利用循环缓冲区的读指针位置处的参考信号来计算时间延迟,并且根据本次时间延迟来调整读指针的位置,能够准确跟踪到参考信号和麦克风信号之间的时间延迟,可以得到较好的回声消除效果。
164.<智能语音交互设备>
165.本公开的实施例提供了一种智能语音交互设备,包括麦克风、扬声器、处理器和存储器,存储器中存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一实施例的回声消除方法。
166.<车载智能语音助手的回声消除性能的测试装置>
167.本公开的实施例提供了一种车载智能语音助手的回声消除性能的测试装置,所述车载智能语音助手包括扬声器和麦克风,所述测试装置包括处理器和存储器,存储器中存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一实施例的车载智能语音助手的回声消除性能的测试方法。
168.<计算机可读存储介质>
169.本公开实施例提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一实施例的回声消除方法。
170.本公开实施例提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一实施例的语音激活方法。
171.本公开实施例提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现前述任一实施例的车载智能语音助手的回声消除性能的测试方法。
172.本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对装置、介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
173.上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
174.本公开的实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开实施例的各个方面的计算机可读程序指令。
175.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
176.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
177.用于执行本公开的实施例操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公
开实施例的各个方面。
178.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
179.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
180.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
181.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
182.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏移所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。