语音唤醒主流方法
keyword spotting(hotword detector)分为补白模型与基于样例的两个主要方法。
Ref: https://zhuanlan.zhihu.com/p/62576391
补白模型(Filler Models)
补白模型有时也被称为垃圾模型,它将Keyword Spotting问题考虑为一个逐帧的序列标注问题。关键词定为不同的标注,而一个额外的“补白”标注用来匹配所有非关键词。
基于隐马尔可夫模型的补白模型最早用于Keyword Spotting。它对每一个关键词建立一个隐马尔可夫模型,对非关键词额外建立一个隐马尔可夫模型,观测概率通过混合高斯或神经网络建模。直接针对关键词建模在数据稀疏的问题。目前流行的隐马尔可夫模型则采用子词单元,如音素,进行建模。这种情况下,它与基于HMM混合模型的语音识别中的声学模型就十分类似了,只是解码图是手工设计的文法,而不是基于统计语言模型生成的。亚马逊Alexa语音助手所用的Keyword Spotting系统就是基于这一类方法的,它的隐马尔可夫模型示意图如下图所示:
另一种基于神经网络分类的方法就更加直接了,如下图所示,连续语音流逐段地送入神经网络进行分类。类别为所有的关键词,和一个额外的填充类别(Filler),比如有10个关键词,就有11类。
分类完成后,由于输出的概率可能出现“毛刺”,所以进行平滑后处理,之后如果某一个类别概率超过一个阈值,就认为某一个关键词呗检测到了。这种方法内存占用小,不需要解码搜索,准确率高。但是由于需要准备大量包含关键词的语料,如果更换了关键词,则需要再另行搜集一批语料,所以也较难实际使用。相比之下,基于隐马尔可夫模型的Keyword Spotting由于是针对子词单元建模,语料用通用的就可以,所以更常用。
基于样例的Keyword Spotting
基于样例的Keyword Spotting,则将问题考虑为匹配问题。考虑关键词的音频样例,和几个测试音频,分别计算它们的相似度,测试音频中和关键词相似度超过某个阈值的,就认为它是检测出来的关键词。这种方式在使用的过程中,用户可以录制自己的音频并定义为关键词,使用起来就更个性化。
基于样例的关键词检测可以分为两类,一种基于动态时间弯折(Dynamic Time Warping,DTW)算法,它使用DTW算法计算两个音频特征序列之间的相似度;另一种是基于嵌入学习的,它将两个音频分别编码为向量,然后直接计算两个向量之间的距离。基于DTW的方法从上世纪70年代就开始开始应用,但是它在匹配两个序列的时候计算复杂度比较高,目前主要用于无监督的情形;基于嵌入学习的方法,匹配的时候更为简单,在深度学习火热以后就流行起来。
如图所示就是一个基于嵌入学习的关键词检测系统。它由一个LSTM网络构成。训练时,将LSTM视为一个词级别的分类器;测试时,将测试音频和关键词音频输入进LSTM,将最后k个状态拼接起来,计算余弦距离,如果超过某个阈值,就认为是检测到了关键词。
唤醒技术路线
主要分为3代。
Ref: https://www.zhihu.com/question/27344376,
视频:http://www.aidaxue.com/course/courseDetail?id=119
第一代:基于模板匹配的KWS
训练和测试的步骤比较简单,训练就是依据注册语音或者说模板语音进行特征提取,构建模板。测试时,通过特征提取生成特征序列,计算测试的特征序列和模板序列的距离,基于此判断是否唤醒。
第二代:基于HMM-GMM的KWS
将唤醒任务转换为两类的识别任务,识别结果为keyword和non-keyword。
第三代:基于神经网络的方案
神经网络方案又可细分为几类.
- 第一类是基于HMM的KWS,同第二代唤醒方案不同之处在于,声学模型建模从GMM转换为神经网络模型。
- 第二类融入神经网络的模板匹配,采用神经网络作为特征提取器。
- 第三类是基于端到端的方案,输入语音,输出为各唤醒的概率,一个模型解决。
指标
- 唤醒率,指用户交互的成功率,专业术语为召回率,即recall。
- 误唤醒,用户未进行交互而设备被唤醒的概率,一般按天计算,如最多一天一次。
- 响应时间,指从用户说完唤醒词后,到设备给出反馈的时间差。
- 功耗水平,即唤醒系统的耗电情况。很多智能设备是通过电池供电,需要满足长时续航,对功耗水平就比较在意。
开源代码
- https://paperswithcode.com/task/keyword-spotting
- An End-to-End Architecture for Keyword Spotting and Voice Activity Detection。https://github.com/mindorii/kws。[2016 interspeech]
- https://github.com/MycroftAI/mycroft-precise。Mycroft.ai开源的。是二分类问题,不是识别内容。
- 比较好的实操性。
- 有相应教程。
- Hello Edge: Keyword Spotting on Microcontrollers。ARM开源的,能够编译优化用于嵌入设备上。
- https://github.com/Picovoice/Porcupine。核心C写的唤醒模型,Start 1K+。
数据集
- Google speech commands dataset。是一个用的比较多的。
功能点
更新热词
更新/定制执词/唤醒词的不同方案。
定制特点备注讯飞在云端输入汉字的定制热词,马上可以下载对应资源包,应该没有训练。1. 可以附加闭环优化。
2. 针对智能硬件,MSC SDK提供了可处理多声道音频,获取音频中有效了几路音频,同时进行唤醒的模式,我们称之为AIMIC唤醒。在这种模式下,需要使用额外的音频处理库 libaimic.so,结合智能硬件的加密模块,对多声道的原始音频处理,并在唤醒结果中,包含当前唤醒的角度等信息。Snowboy使用者念出的三遍唤醒词,形成3个音频文件传输到云端,训练分类器后下载。
唤醒词的评估
- 唤醒词字数:3-5个字,4个字为最佳
- 唤醒词内容:
- 避免使用敏感词:包含政治,伟人名字等等;
- 避免使用口语化的词汇,口语词汇日常使用频率很高,容易导致误唤醒
- 唤醒词发音应选择易开口,响度大,发音清晰易分辨的词;
- 避免使用多音字,唤醒词的音节覆盖应尽量多,差异大,避免使用叠字, 避免连续使用零声母的词
例如:
唤醒词:一心一意 评估: 存在连续的两个发音是零声母,尽量避免重复发音。
思必驰在线评估: http://www.aispeech.com/index.php?m=content&c=index&a=lists&catid=76
语音唤醒跟声纹结合
可以用几种实现方法:
- 一是唤醒词跟声纹在用同一个模型(Text-Dependent Speaker Verification);
- 一是唤醒词检测后再使用声纹模型验证。
Text-Dependent Speaker Verification
- END-TO-END ATTENTION BASED TEXT-DEPENDENT SPEAKER VERIFICATION。出自微软。2017。
- 使用CNN模型。
- Attention-Based Models for Text-Dependent Speaker Verification。出自Google。 ICASSP 2018。比只使用LSTM高14%。
- code:https://github.com/liyongze/lstm_speaker_verification
- 更新,此代码只是论文中的baseline model。
- Generalized End-to-End Loss for Speaker Verification。出自Google。 ICASSP 2018。
- code:https://github.com/Janghyun1230/Speaker_Verification
团队
kitt.ai的Snowboy
2017被百度收购。
KITT.AI最初是作为艾伦人工智能研究所(AllenInstitute for Artificial Intelligence,简称AI2)的一个内部孵化项目于2014年9月诞生,但在2015年底才真正转做“热词”(即唤醒词)和对话引擎,相关产品也打磨了近一年半。目前,其热词技术可达到95%~98%的唤醒率。
KITT.AI联合创始人兼CTO陈果果。
具体来讲,热词识别的原理是:使用者念出的三遍唤醒词会形成3个音频文件传输到云端,这是一个端到端的深度学习分类器,它会对该文件进行音频建模,建立一个只针对这三个音频的分类器。它可以从能量、音调等方面提取参数进而构成特征,下次使用唤醒词时,这个分类器就会判断是否与这三个音频的特征相近,来决定是否唤醒。据姚旭晨介绍,KITT.AI的热词识别用到了几十万到上百万的特征提取。
唤醒设备很重要,但如何减少误唤醒同样重要。姚旭晨谈到,误唤醒的因素也很多,跟噪声、能量也有关。比如一些与唤醒词相似的音节,小鱼在家机器人曾用《小鱼儿与花无缺》这部电视剧进行测试,发现剧中很多“小鱼儿”的词语有时会带来误唤醒。
此外,他也谈到,毫无相关的一些声音有时也能够引发设备的误唤醒。原因在于机器并不像人一样有语境,它只能从众多特征参数中去判断,可能你的一个爆破音会导致分类器的每个权重都很大,进而造成误唤醒。
专利
- 可定制语音唤醒方法及系统: 俞凯。上海交通大学。https://patents.google.com/patent/CN106098059A/zh
- 一种语音唤醒模块的实现方法及应用。讯飞。https://patents.google.com/patent/CN102999161A/zh
尝试算法
- 纯KWS没有声纹的轻量模型。https://github.com/MycroftAI/mycroft-precise
- 唤醒+声纹。https://github.com/Janghyun1230/Speaker_Verification
- 2019年基于Attention的语音+声纹唤醒。Attention-Based Models for Text-Dependent Speaker Verification.
Idea
- 语音唤醒跟声纹结合。
- 语音唤醒跟声纹、静音检测结合。
资料
- LOW RESOURCE HIGH ACCURACY KEYWORD SPOTTING。陈果果(guoguo chen) 2016年的博士论文。
- SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS。陈果果2014年论文。论文除了用专门的KWS数据集,也使用了3000小时的ASR数据集,可以查看如何使用。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/83551.html