语音唤醒入门

Ref: https://zhuanlan.zhihu.com/p/62576391补白模型补白模型有时也被称为垃圾模型,它将Keyword S

语音唤醒主流方法

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个音频文件传输到云端,训练分类器后下载。

唤醒词的评估

  1. 唤醒词字数:3-5个字,4个字为最佳
  2. 唤醒词内容:
  3. 避免使用敏感词:包含政治,伟人名字等等;
  4. 避免使用口语化的词汇,口语词汇日常使用频率很高,容易导致误唤醒
  5. 唤醒词发音应选择易开口,响度大,发音清晰易分辨的词;
  6. 避免使用多音字,唤醒词的音节覆盖应尽量多,差异大,避免使用叠字, 避免连续使用零声母的词

例如:

唤醒词:一心一意
评估: 存在连续的两个发音是零声母,尽量避免重复发音。

思必驰在线评估: 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

尝试算法

  1. 纯KWS没有声纹的轻量模型。https://github.com/MycroftAI/mycroft-precise
  2. 唤醒+声纹。https://github.com/Janghyun1230/Speaker_Verification
  3. 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

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信