主流声学模型对比

目录

概述

基础概念

语音帧

语音识别系统

主流声学建模技术

HMM

DNN-HMM

FFDNN

CNN

RNN及LSTM

CTC

其他建模技术

语言建模技术

语音唤醒技术

关于未来


概述

语音识别建模对语音识别来说是不可或缺的一部分,因为不同的建模技术通常意味着不同的识别性能,所以这是各个语音识别团队重点优化的方向。也正是因为如此,语音识别的模型也层出不穷,其中语言模型包括了N-gram、RNNLM等,在声学模型里面又涵盖了HMM、DNN、RNN等模型...

简单来说,声学模型的任务就是描述语音的物理变化规律,而语言模型则表达了自然语言包含的语言学知识。本文由搜狗语音交互中心语音技术部负责人陈伟来为大家分享伴随着本轮人工智能浪潮下语音识别建模技术的演进,希望能够帮大家理清主流的识别建模脉络以及背后的思考。

搜狗知音引擎是搜狗公司自主研发的一项专注于自然交互的智能语音技术,于2016年8月3日正式对外发布,该技术集合了语音识别、语义理解、语音交互、以及提供服务等多项功能,不仅能听会说,还能理解会思考, 本文将结合知音引擎中语音识别建模技术的使用来为大家讲解。

图1 搜狗知音引擎

基础概念

语音帧

考虑到语音的短时平稳特性,语音信号在前端信号处理时要进行加窗分帧的操作,识别特征都按帧来提取,具体请见图2。(编者注:分帧后的语音信号逐帧提取语音特征用于声学模型建模。)

图2 语音帧的划分

语音识别系统

语音信号经过前端信号处理、端点检测等处理后,逐帧提取语音特征,传统的特征类型包括MFCC、PLP、FBANK等特征,提取好的特征送至解码器,在声学模型、语言模型以及发音词典的共同指导下,找到最为匹配的词序列作为识别结果输出,整体流程请见图3。识别的公式如图4所示,可见声学模型主要描述发音模型下特征的似然概率;语言模型主要描述词间的连接概率;发音词典主要是完成词和音之间的转换,其中声学模型建模单元一般选择三音素模型,以“搜狗语音为例”,

sil-s+ou1 s-ou1+g ou1-g+ou3 g-ou3+y ou3-y+u3 y-u3+y u3-y+in1 y-in1+sil

图3 语音识别系统流程

图4 语音识别原理

需要注意的是,输入特征矢量X代表语音的特征。

主流声学建模技术

近年来,随着深度学习的兴起,使用了接近30年的语音识别声学模型HMM(隐马尔科夫模型)逐渐被DNN(泛指深度神经网络)所替代,模型精度也有了突飞猛进的变化,整体来看声学建模技术从建模单元、模型结构、建模流程等三个维度都有了比较明显的变化,如图5所示:

图5 声学建模演进总结

其中,深度神经网络超强的特征学习能力大大简化了特征抽取的过程,降低了建模对于专家经验的依赖,因此建模流程逐步从之前复杂多步的流程转向了简单的端到端的建模流程,由此带来的影响是建模单元逐步从状态、三音素模型向音节、字等较大单元演进,模型结构从经典的GMM-HMM向DNN+CTC(DNN泛指深度神经网络)转变,演进的中间态是DNN-HMM的混合模型结构。

HMM

HMM最早创立于20世纪70年代。80年代得到了传播和发展,成为信号处理的一个重要方向,现已成功地用于语音识别,行为识别,文字识别以及故障诊断等领域。

详细来看,经典的HMM建模框架如下所示:

图6 HMM建模框架

其中,输出概率使用高斯混合模型GMM建模,如下图所示:

DNN-HMM

2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neural Network)引入到声学模型建模中,将FFDNN的输出层概率用于替换之前GMM-HMM中使用GMM计算的输出概率,引领了DNN-HMM混合系统的风潮,很多研究者使用了FFDNN、CNN、RNN、LSTM等多种网络结构对输出概率进行建模,并取得了很好的效果,如图7所示。

图7 DNN-HMM混合建模框架

DNN-HMM建模框架中,输入特征使用了在当前帧左右拼帧的方式来实现模型对时序信号长时相关性的建模,模型输出则保持了GMM-HMM经常使用的trihone共享状态(senone),中文大词汇量连续语音识别中状态数一般设置在1万左右,如图8所示。

图8 DNN-HMM建模流程

FFDNN

FFDNN的模型结构如下所示:

图9 FFDNN建模流程

CNN

编者注:实际上,最早CNN只应用于图像识别,直到2012年才被用于语音识别系统。

图10 CNN建模流程

RNN及LSTM

语音的协同发音现象说明声学模型需要考虑到语音帧之间的长时相关性,尽管上文中DNN-HMM通过拼帧的方式对上下文信息进行了建模,但是毕竟拼接的帧数有限,建模能力不强,因此引入了RNN(循环神经网络)增强了长时建模的能力,RNN隐层的输入除了接收前一个隐层的输出之外,还接收前一时刻的隐层输出作为当前输入,通过RNN的隐层的循环反馈,保留了长时的历史信息,大大增强了模型的记忆能力,语音的时序特性通过RNN也得到了很好的描述。但是RNN的简单结构在模型训练进行BPTT(Backpropagation Through Time)时很容易引起梯度消失/爆炸等问题,因此在RNN的基础上引入了LSTM(长短时记忆模型),LSTM是一种特殊的RNN,通过Cell以及三个门控神经元的特殊结构对长时信息进行建模,解决了RNN出现的梯度问题,实践也证明了LSTM的长时建模能力优于普通RNN。

图11 RNN结构

图12 RNN到LSTM

CTC

上述的建模技术在模型训练时需要满足一个条件,就是训练数据中每一帧都要预先确定对应的标注,即对应DNN输出状态的序号,训练特征序列和标注特征序列必须是等长的,而为了得到标注,需要使用已有模型对训练数据序列和标注序列进行强制对齐,但是基于大数据训练时标注的准备比较耗费时间,同时对齐使用的模型精度往往存在偏差,训练中使用的标注会存在错误。因此引入了CTC(Connectionist Temporal Classification)准则,解决了标注序列与特征序列不等长的问题,通过前向后向算法自动学习语音特征中的模型边界,这种准则与用于时序建模的神经网络(如LSTM)的结合可以直接用于端到端的模型建模,颠覆了语音识别使用接近30年之久的HMM框架。

CTC准则引入了blank类别,用于吸收发音单元内部的混淆性,更加突出模型与其他模型之间的差异性,因此CTC具有非常明显的尖峰效果,图13是使用triphone-lstm-ctc模型对内容为“搜狗语音”的语音进行识别后的输出概率分布,可以看到大部分区域都被blank吸收,识别出的triphone对应着明显尖峰。

图13 CTC尖峰效果演示

可以预期,基于CTC或者引用CTC概念(如LFMMI)的端到端识别技术将逐渐成为主流,HMM框架将逐渐被替代。

其他建模技术

语言建模技术

目前RNNLM的技术已经逐步引入到语音识别中来,通过对更长历史信息的建模,RNNLM较传统使用的N-Gram技术对识别性能有了较好的提升,但是考虑到大词汇量语音识别中,如果完全替换N-Gram会带来运算量以及运算时间的大幅增加,因此在知音引擎中,RNNLM用在对N-Gram识别输出的N-Best候选列表的重排序上。

语音唤醒技术

知音引擎中目前针对固定唤醒词的方式,基于DNN进行端到端的唤醒词建模,具体如下:

图14 端到端语音唤醒流程

这种方法尽管取得了非常低的误唤醒率,但是缺点也很明显,唤醒词无法自定义,因此知音引擎中,我们使用DNN提取Bottleneck Feature,用于基于HMM的唤醒模型训练,较传统基于MFCC的方式也取得了较好的效果。

关于未来

尽管语音识别建模能力取得了较大的提升,但是远场、噪声、口音、发音习惯(吞音)等问题仍然存在,很赞成吴恩达的说法,由95%的准确率发展到99%,尽管只有4%的差距,但是可能会改变人们的交互方式,将实现很少用到经常使用的转变。

目前语音原始数据获取的成本越来越低,工业界正在使用数万小时的已标注数据进行模型更新,将来十万级的训练数据将成为可能,怎么能高效的使用数据,主要有以下几点的考虑:

数据筛选层面:使用无监督、弱监督、半监督的数据进行训练,同时更高效的挑选数据进行标注,知音引擎已经在使用主动学习的方法进行数据的筛选;

运算层面:基于异构计算的集群在超大数据上高效的完成模型训练,而运算能力的升级已经从线下训练扩展到了线上测试;

模型层面:超大数据的学习需要更强能力的模型,目前基于多种模型结构的复合结构(如CNN-LSTM-DNN)已经证明了可行性,后续基于Encoder-Attention-Decoder的序列学习框架也已经在和语音识别进行结合。

同时语音识别尽管现在可以达到很高的准确率,但是准确率从95%到99%甚至100%的这个跨越是由量变到质变的过程,也是决定语音交互能否成为主流交互方式的重要一环,但是目前语音识别的一些老问题仍然存在,技术上仍然没有能力完全解决,因此技术之外的产品创新也很重要,可以有效弥补准确率上的缺失。

以知音引擎为例,它针对这个问题提供了语音纠错的解决方案,针对识别中出现的错误可以使用自然语音的方式进行修正,比如用户想说“我叫陈伟”,识别成了“我叫晨炜”,通过语音说出“耳东陈伟大的伟”就会改正识别结果,目前随着多轮产品的迭代,语音修改已经具备了80%的修改成功率,并且已经应用到了知音引擎的语音交互中,同时在搜狗iOS输入法中也集成了语音修改的能力。

[深度学习概念]·主流声学模型对比相关推荐

  1. 2017深度学习最新报告及8大主流深度学习框架超详细对比(内含PPT)

    2017深度学习最新报告(PPT) ​ 深度学习领军人物 Yoshua Bengio 主导的蒙特利尔大学深度学习暑期学校目前"深度学习"部分的报告已经全部结束. 本年度作报告的学术 ...

  2. 深度学习三大框架(对比)

    人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等."人工智能"的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样 ...

  3. 【机器学习】机器学习和深度学习概念入门

    机器学习和深度学习概念入门(上) 作者:谭东  来源:机器学习算法与自然语言处理 目  录 1   人工智能.机器学习.深度学习三者关系 2   什么是人工智能 3  什么是机器学习 4  机器学习之 ...

  4. 干货 :深度学习的主流模型及应用

    近年来,深度学习在很多机器学习领域都有着非常出色的表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投放.医学自动诊断和金融等领域有着广泛应用.面对繁多的应用场景,深度学习框架有助于建模者节省 ...

  5. python模型训练框架_深度学习三大框架(对比)

    人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等."人工智能"的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样 ...

  6. 前海征信“好信杯”大数据算法竞赛 - HM队【附源码】 原创 2017-06-17 高铭 科赛Kesci 赛题回顾 自2006年Hinton等人提出“深度学习”概念至今,深度学习在海量数据的挖

    前海征信"好信杯"大数据算法竞赛 - H&M队[附源码] 原创 2017-06-17 高铭 科赛Kesci 赛题回顾 自2006年Hinton等人提出"深度学习& ...

  7. 干货丨机器学习和深度学习概念入门

    对于很多初入学习人工智能的学习者来说,对人工智能.机器学习.深度学习的概念和区别还不是很了解,有可能你每天都能听到这个概念,也经常提这个概念,但是你真的懂它们之间的关系吗?那么接下来就给大家从概念和特 ...

  8. [深度学习概念]·声纹识别技术简介

    声纹识别技术简介 声纹识别,也称作说话人识别,是一种通过声音判别说话人身份的技术.从直觉上来说,声纹虽然不像人脸.指纹的个体差异那样直观可见,但由于每个人的声道.口腔和鼻腔也具有个体的差异性,因此反映 ...

  9. [深度学习概念]·深度学习中人脸识别开发解析

    深度学习中人脸识别开发解析 目录 人脸识别介绍 人脸识别算法 实战解析 参考文献 人脸识别介绍 人脸识别是什么 人脸识别问题宏观上分为两类:1. 人脸验证(又叫人脸比对)2. 人脸识别. 人脸验证做的 ...

  10. tensorflow随笔——深度学习中GPU型号对比

    深度学习是机器学习的一个分支.深度学习通过深层神经网络自行寻找特征来解决问题,不同于传统方法需要告诉算法找什么样的特征.为获取数据的本质特征深度神经网络需要处理大量信息,一般有两种处理方式:CPU和G ...

最新文章

  1. DB2 9 使用拓荒(733 检讨)认证指南,第 2 部分: DB2 数据操作(6)
  2. 除了芯片 我们还应关注哪些核心技术
  3. python使用字典实现switch_python之 利用字典与函数实现switch case功能
  4. 【BZOJ4500】矩阵(差分约束)
  5. Android 中的 Context
  6. ABAP学习-第二章[HELLO WORLD]
  7. Oracle ASM 翻译系列第十一弹:高级知识 Offline or drop?
  8. AngularJS学习笔记(1)——MVC模式的清单列表效果
  9. ei加声调怎么加_ei在e还是i上标声调
  10. .NET的MVVM框架
  11. android 浮层菜单弹出,Android PopupWindow实现微信右上角的弹出菜单
  12. 使用GDAL生产jpg格式的快视图(拇指图)
  13. MySQL游标循环取出空值的BUG
  14. 大数据催生智慧园区_颠覆性的大数据时代催生革命发展
  15. java反编译 jd-gui_JD-GUI(Java反编译工具)
  16. 苹果手机录屏软件_4款手机录屏软件推荐,你觉得哪款更好用?
  17. ASC2BCD及奇偶校验位
  18. Windows的13个版本的区别,企业版、教育版、专业版、工作站版、SE版的主要区别
  19. 《炬丰科技-半导体工艺》用于高效显示和通信的无磷白光 LED
  20. Linux操作系统概述

热门文章

  1. 如何查看电脑的产品密钥
  2. 2.1Mysql 基础--基本介绍
  3. C语言递归解兔子繁衍问题
  4. Android——Intent总结
  5. 串口通信基础(一)——串行与并行通信,同步与异步通信
  6. 戴德金--连续性和无理数--我自己做的中文翻译第4页
  7. 微信多开脚本2.0 批处理bat,可一键关闭微信
  8. MySQL中的自增主键用完了怎么办
  9. ActiveMq NON_PERSISTENT与PERSISTENT以及 durable subscription(持久订阅)的理解
  10. 12123 上传照片到文件服务器失败,“交管12123”APP上传证件照片老是出错?教你正确上传姿势……...