编辑导语:随着手机的逐渐智能化,越来越多的手机只要听到指令就会帮助主人完成一些任务,这就是语音唤醒功能。本文作者围绕语音唤醒功能,从其应用有哪些、工作原理是什么、怎样训练一个唤醒模型、如何测试等方面展开了详细地讨论。
“Hisiri”、“天猫精灵”、“小爱同学”,我们生活中常常会叫到这些名字,让她们来帮我们完成一些指令,这个过程就像叫某人帮你做某事的感觉。
而这个叫名字的过程,就是我们今天要聊的语音唤醒。
一、什么是语音唤醒
语音交互前,设备需要先被唤醒,从休眠状态进入工作状态,才能正常的处理用户的指令。
把设备从休眠状态叫醒到工作状态就叫唤醒,我们常见的有触摸唤醒(锁屏键),定时唤醒(闹钟),被动唤醒(电话)等,而语音唤醒就是——通过语音的方式将设备从休眠状态切换到工作状态。
语音唤醒(keywordspotting):在连续语流中实时检测出说话人特定片段。
可能有长得好看的同学就要问了,我让他一直保持工作状态不可以吗?
工作状态的设备会一直处理自己收到的音频信息,把不是和自己说话的声音也当作有效信息处理,就会导致乱搭话的情况。而语音唤醒就成功的避开了这个问题,在只有用户叫名字的时候工作,其他时间休眠。
其实到底是否需要语音唤醒这个能力,也是看场景的,有些廉价的玩具,就是通过按住按钮进行语音交互的。
二、语音唤醒的应用有哪些
语音唤醒目前的应用范围比较窄,主要是应用在语音交互的设备上面,用来解决不方便触摸,但是又需要交互的场景。
生活中应用的最好,就应该是智能音箱了,每个品牌的智能音箱都有自己的名字,我们通过音箱的名字唤醒她,和她进行交互,控制家电。
其次就是手机,目前大部分手机都配有手机助手,从苹果最早的siri到现在的“小爱同学”,让我们实现了即使不触碰手机,也可以实现一些操作。
还有一些服务类型的机器人,也会用到语音唤醒。
不过一般机器人会采用多模态的唤醒能力,他会结合语音唤醒、人脸唤醒、触摸唤醒、人体唤醒等多个维度的信息,在合适的时候进入工作状态。
三、语音唤醒的工作原理是什么
语音唤醒能力主要依赖于语音唤醒模型(下称“唤醒模型”),是整个语音唤醒核心。
唤醒模型主要负责在听到唤醒词后马上切换为工作状态,所以必须要实时监测,才能做到听到后及时反馈。由于需要实时响应,以及唤醒模型对算力要求不高等方面原因,一般唤醒模型是做在本地的(区别于云端的ASR识别)。
这就是我们即使没有联网,你叫“小爱同学”,她也会答应你的原因。
唤醒模型的算法经过了三个阶段的发展:
1.基于模板匹配
用模板匹配的方法来做唤醒模型,一般会把唤醒词转换成特征序列,作为标准模板。
然后再把输入的语音转换成同样的格式,使用DTW(dynamictimewarping)等方法,计算当前音频是否和模版匹配,匹配则唤醒,不匹配则继续休眠。
简单理解就是找到唤醒词的特征,根据特征制定触发条件,然后判断音频内容是否满足触发条件。
2.基于隐马尔可夫模型
用隐马尔可夫模型来做唤醒模型,一般会为唤醒词和其他声音分别建立一个模型,然后将输入的信号(会对音频信息进行切割处理)分别传入两个模型进行打分,最后对比两个模型的分值,决定是该唤醒,还是保持休眠。
简单理解就是分别对唤醒词和非唤醒词作了一个模型,根据两个模型的结果对比,决定是否唤醒。
3.基于神经网络
用神经网络来做唤醒模型,可以分为多种:
有将模版匹配中的特征提取,改为神经网络作为特征提取器;也有在隐马尔可夫模型中,某个步骤使用神经网络模型的;还有基于端到端的神经网络方案。凡是用到神经网络原理的,都可以说是基于神经网络的方案。
其实唤醒模型工作原理很简单,就是一直在等一个信号,等到这个信号就切换到工作状态,只是判断信号的内部逻辑不同而已。
四、如何训练一个唤醒模型
一般训练语音唤醒模型大概需要四个步骤,包括:
1.定义唤醒词
首先我们需要定义一个唤醒词:
定义唤醒词也是有讲究的,一般会定义3-4个音节的词语作为唤醒词。像我们常见的“天猫精灵”、“小爱同学”、“小度小度”,全部都是4个音节,由于汉语的发音和音节的关系,你也可以简单的把音节理解为字数。
唤醒词字数越少,越容易误触发;字数越多,越不容易记忆——这也是一般定义在4个字的原因。
另外这3-4个字要避开一些常见的发音,避免和其他发音出现竞合,要不然会频繁的误唤醒。
一般唤醒词会做这样一个处理,就是唤醒词中的连续3个字也可以唤醒,比如你喊“小爱同”,同样可以唤醒你的小爱同学。这是为了提高容错率所做设定的规则。
2.收集发音数据
然后就需要收集这个唤醒词的发音,理论上来说发音人越多、发音场景越丰富,训练的唤醒效果越好。
一般按照发音人数和声音时长进行统计,不同的算法模型对于时长的依赖不一样。基于端到端神经网络的模型,一个体验良好的唤醒词可能需要千人千时,就是一千个人的一千个小时。
收集唤醒词发音的时候,一定要注意发音的清晰程度,有时候甚至要把相近的音也放到训练模型中,防止用户发音问题导致无法进行唤醒。
如果用户群体庞大,甚至考虑该唤醒词在各种方言下的发音。
3.训练唤醒模型
数据都准备好了,就到了训练模型的阶段了,这里常见的算法有:
基于模板匹配的KWS基于马尔可夫模型的KWS基于神经网络的方案这三种方案对比如下:
4.测试并迭代
最后就是测试并上线,一般分为性能测试和效果测试,性能测试主要包括响应时间、功耗、并发等,这个一般交给工程师来解决。
产品会更
转载请注明:http://www.0431gb208.com/sjszjzl/2128.html