就近语音唤醒及识别关键技术研究与空调应用
2021-08-20陶梦春毛跃辉汪进文皓
陶梦春 毛跃辉 汪进 文皓
珠海格力电器股份有限公司 广东珠海 519070
1 引言
语音空调在识别控制时,需要先唤醒设备的语音功能,然后再进行下一步语音识别,目前,带语音功能的产品在市场上越来越多,且同一品牌语音产品更是出现系列化销售,如家居成套家电语音空调、语音吸油烟机、语音电饭煲等。为有效管控语音模块的通用化,降低用户使用系列化语音产品的学习成本,一般都会采用一个品牌选用同一个唤醒词方式来覆盖语音产品(如我司唤醒词“格力空调”),同时也便于语音产品语音功能宣传一致性,提升产品认知度。
当前市场盛行同品牌成套场景化语音产品销售,当用户购买成套语音家电后,分别安置于不同应用场所场景中,如客厅场景、卧室场景、厨房场景、餐厅场景等,用同一个唤醒词唤醒,就会带来不必要的使用麻烦,有可能出现所有带语音功能且为该唤醒词的语音产品(同类产品或不同类产品)在同一时间被同时唤醒应答(不同空间语音产品,只要被采集到正确的唤醒词就会被唤醒),出现“一呼百应”的现象;倘若用户采用自定义不同唤醒词设置区分对待,用户将需要刻意去记忆每个语音产品的唤醒词,设备一多就会显得累赘、繁琐,如此增加用户使用成本,降低用户使用效率,造成语音功能体验和舒适性差的情况发生。
为解决上述同一唤醒词“一呼百应”现象,本文提出基于本地Wi-Fi局域网通信,引入自适应滤波降噪算法,针对就近语音唤醒及识别关键技术开展综合研究,并在空调上进行应用验证,从而解决设备空间就近唤醒与识别的工程应用问题,以下以成套语音空调进行示例分析。
2 自适应滤波降噪算法
基于自适应滤波语音降噪系统以自适应噪声消除方法为基础[1],基本原理如图1所示。该降噪模型有4个输入端(4个麦克风采集)或者2个输入端[2](2个麦克风采集),本文主要研究4个麦克风阵元(按序形成mic1、mic2、mic3、mic4)组成的麦克风阵列,mic1和mic3作为主输入通道,即含背景噪音的语音信号(用户声音叠加环境噪音),mic2和mic4输入信号作为自适应滤波器的参考信号。由于mic1、mic3与mic2、mic4中的噪声信号是同一噪声信号产生的,因此,mic1、mic3与mic2、mic4中的噪声信号是相关的,且噪声信号与语音信号不相关[1]。使用自适应滤波算法调整滤波器参数,使得滤波器输出信号接近于mic1和mic3中噪声信号,相减后得到纯净语音信号。
图1 语音降噪系统的基本原理
定义一个基于P范数[3]的代价函数:
式中:e(i)=d(i)-wT(n)x(i);d(i)为期望信号;x(i)为输入信号;e(i)为后验误差信号;wT(n)为自适应滤波器抽头系数向量;λ为遗忘因子,其最佳取值范围为[0.99,1][1],图2为声源音频(模拟用户声源)文件的波形图,混合室内以及空调内部结构混响噪音得到,图3为麦克风读取拾音声源(模拟用户声音和环境噪音的混合声音)波形图,通过上述自适应降噪系统最终得到图4的波形图。原音频文件波形图如图2所示,麦克风读取拾音原波形图如图3所示,经过自适应降噪算法处理后麦克风读取拾音过后的波形图如图4所示。
图2 声源音频文件原始波形图
图3 麦克风(mic1和mic3)拾音声源和噪音混合波形图
图4 自适应降噪算法处理后的波形图
图3中麦克风拾音声源经自适应降噪算法处理得到图4波形,且图2与图4波形对比可知,波形幅值大概一致。通过自适应降噪算法消除室内噪音和空调内部混响,提取声源本身能量值来触发目标空调被唤醒,同时能够有效提高就近唤醒的唤醒率。
3 局域网就近唤醒语音交互组网架构设计
3.1 就近唤醒语音通信方式
通信方式:局域网广播通信,单向发送接收延时100 ms以内。
3.2 就近唤醒组网
网络中的节点分为master节点和slave节点,master节点只有一个,每个节点都会维护网络中所有节点的信息,并标记出哪一个是master节点,见图5 master选举流程图。
图5 master选举流程图
(1)网络创建:节点启动后,在规定时间内没有接收到master信令,则主动变更为master节点,并开始广播组网信令,此时网络创建成功。
(2)节点加入:节点启动后,在规定时间内接收到了master信令,则保持slave节点的角色,记录master节点的信息,并开始广播组网信令;网内其它设备接收到新节点的组网信令,将新节点加入到自己的节点列表中。
(3)节点离开:设备遍历自己的列表中各个节点,并检查最后一次接收到此节点的信令距离当前经历多长时间,如果超过规定时间,则认为心跳过期,则将此节点从列表中移除。
4 就近唤醒语音仲裁协议及算法设计
4.1 仲裁协议
仲裁协议[4]通信方式:局域网单播通信,单向发送接收延时100 ms以内。
仲裁信令:
(1)请求信令:slave节点向master节点发送仲裁请求;
(2)响应信令:master节点向slave节点发送请求信令的响应;
(3)等待超时:response等待超时slave节点上生效。slave节点发送request之后,等待500 ms未接收到response,则触发等待超时,超时后放弃本次唤醒交互。request等待超时master节点[4]上生效,master节点在接收到第一个request时开始计时,若在300 ms内接收到所有slave节点的请求,则停止等待,并执行仲裁算法[5],后续到来的request被丢弃,具体流程见图6仲裁方案流程图。
图6 仲裁方案流程图
4.2 就近唤醒语音仲裁算法
仲裁算法包括两部分:slave节点负责收集唤醒相关的信息并计算距离值[6],也叫距离算法,用于推算声源与节点设备之间的距离。master节点负责交互节点选举的判决,主要是比较各slave节点的距离远近,距离说话人最近的设备无论在原始信息完整程度上还是与说话人的交互效果上往往都被认为是最佳的。因此,多语音产品系统中,检测出离用户最近产品是很有必要的。能量检测引擎(Distribute Microphone Array Distance Detector,DMA-DD,简称DD)致力于解决这个问题,DD引擎的有效性基于两个依据:①语音从声源发出,随着传播距离的增加其能量大小逐渐衰减;②频率越高能量衰减越快。
DD引擎目的是为了解决就近唤醒语音系统中的相对距离问题,但是引擎本身只具有距离度量估计功能,因此,每个设备上都需要运行DD引擎,每个设备中反馈的度量值需要在SDK层进行比较(当前版本引擎取距离度量值的最大值对应设备为最近设备)。图7为仲裁算法流程图。
图7 仲裁算法流程图
5 试验验证与结果分析
试验环境是模拟家居场景进行布局,试验中设备A、设备B、设备C都为同一唤醒词的语音空调,识别声源为高保真音响发声模拟,利用高保真音响发声代替用户识别是为了确保声音大小的一致性和可复现性,根据唤醒得分值大小,通过master仲裁决策,最终得出组网下目标空调被唤醒效果。如图8、图10、图12得分曲线图中纵坐标为空调被唤醒的分数值,横坐标为试验次数,master仲裁目标空调被唤醒依据每个设备唤醒的分数值大小作出判断。
图8 安静环境下空调唤醒得分曲线
图9房间设备布置示意图显示用户(声源)靠近设备C,图8为安静环境下空调唤醒得分曲线,分析试验数据可知设备C的唤醒率达到95%,设备C是相对用户最合适的语音设备被唤醒,分析结果与房间实际设备布局图9示意的用户期望唤醒设备C一致,说明本文试验的组网方式和仲裁算法出力性能满足就近唤醒识别要求。
图9 安静环境下房间设备布局分布图
图10和图12分别表示噪音环境下,带自适应降噪空调唤醒得分曲线和无自适应降噪空调唤醒得分曲线,有自适应降噪算法和无自适应降噪算法试验均在同一环境下试验,相应的设备在房间中的布局示意如图11和图13。通过对两组试验数据分析,图10表示带自适应降噪空调唤醒得分曲线,从图11知设备C靠近声源,试验统计空调C的唤醒率为85.14%;图12表示无自适应降噪空调唤醒得分曲线,从图13知设备C靠近声源,统计空调C的唤醒率为20.22%。图10和图12数据说明自适应降噪算法对语音就近唤醒降噪效果明显。通过上述试验数据分析,语音预处理通过自适应降噪算法过滤掉室内噪音和空调内机回声[7]对就近唤醒性能提高有显著效果。
图10 带自适应降噪空调唤醒得分曲线
图11 带自适应降噪设备布局分布图
图12 无自适应降噪空调唤醒得分曲线
图13 无自适应降噪设备布局分布图
6 结论
(1)通过语音空调前端自适应降噪算法应用,把家居内的环境噪音和空调内部的混响进行有效过滤,保证了后续能通过语音能量值进行仲裁,并唤醒就近目标空调设备;
(2)局域网下语音空调自组网成功,通过master进行仲裁,使得语音能量值高的语音空调被唤醒[7],其它语音空调处于静默状态,避免产生“一呼百应”的现象;
(3)下一步将针对不同阵列数量、不同机型,进行跨路由仲裁和跨产品之间的控制应用研究。