语音识别系统原理介绍---从gmm-hmm到dnn-hmm
一直想写个关于语音识别系统原理的博文。前段时间我和@零落一起做了很多实验,比如htk,kaldi等。从周五开始就已经放寒假了,明天就做火车回家了。今晚加点劲写点吧,回家由于没网。大家有问题只能留言或者找我qq,我尽量过段时间来回答吧。现在我就把语音识别的原理说下去。
具体的框架图还是来一个把。这个图我也是我从网上找的。
按照上图的说法,语音识别是由语言模型和声学模型构成的。下面我就根据图上的流程说下。
一 特征提取
现在主流的特征是mfcc。具体mfcc的步骤,在我前面转的博客里也有。地址:语音信号处理之(四)梅尔频率倒谱系数(MFCC)。这里我引有知乎里的一个人的说法:
首先说一下作为输入的时域波形。我们知道声音实际上是一种波。常见的mp3、wmv等格式都是压缩格式,必须转成非压缩的纯波形文件,比如Windows PCM文件,即wav文件来处理。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。采样率越大,每毫秒语音中包含的点的个数就越多。另外声音有单通道双通道之分,还有四通道的等等。对语音识别任务来说,单通道就足够了,多了浪费,因此一般要把声音转成单通道的来处理。下图是一个波形的示例。
备注:这个波形你可以用htk里的标注和录音去看。其他的语音处理软件也可以吧。
另外,通常还需要做个VAD处理,也就是把首尾端的静音切除,降低对后续步骤造成的干扰,这需要用到信号处理的一些技术。
时域的波形必须要分帧,也就是把波形切开成一小段一小段,每小段称为一帧。分帧操作通常使用移动窗函数来实现,分帧之前还要做一些预加重等操作,这里不详述。帧与帧之间是有交叠的,就像下图这样:
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。
分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,把每一帧波形变成一个12维向量。这12个点是根据人耳的生理特性提取的,可以理解为这12个点包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,比如差分、均值方差规整、高斯化、降维去冗余等,声学特征也不止有MFCC这一种,具体就不详述了。
备注:mfcc的一些处理还是有很多研究的东西。等寒假回来可以跟大家交流。
这里,每个工具箱提供的特征都是不一样的。具体的可以去参考各个工具箱的说明。如:htkbook的第五章。
最后,这个mfcc的变形有很多,也就是对于mfcc的改进也很多。适合自己的才是最好的。此外,这步处理后就是一组13维*帧数的二维向量。这步在训练和测试都得做。
二 声学模型
特征提取完毕就是声学模型的事情。通常需要大量的数据来训练我们的声学模型。这样,我们最后的识别率才是理想。这步就是用马尔科夫模型的过程。具体的细节我暂时也写不清楚。我贴一个图,希望对你理解有好处。
稍微说明一下:最下面的observation就是我们提取的特征。gmm-hmm就是把我们的特征用混合高斯模型区模拟,然后把均值和方差输入到hmm的模型里。
此外,dnn-hmm的模型图:
最后是dbn-hmm:
希望我寒假过来可以很好的解释这三个图,如果有人可以解释这三个图,欢迎和我联系,与我交流。谢谢……
这些就是声学模型的全部了。如果你有时间,欢迎分享你的理解。
三 语言模型
语言模型,我就引用@zouxy09的博客。
语言模型是用来计算一个句子出现概率的概率模型。它主要用于决定哪个词序列的可能性更大,或者在出现了几个词的情况下预测下一个即将出现的词语的内容。换一个说法说,语言模型是用来约束单词搜索的。它定义了哪些词能跟在上一个已经识别的词的后面(匹配是一个顺序的处理过程),这样就可以为匹配过程排除一些不可能的单词。
语言建模能够有效的结合汉语语法和语义的知识,描述词之间的内在关系,从而提高识别率,减少搜索范围。语言模型分为三个层次:字典知识,语法知识,句法知识。
对训练文本数据库进行语法、语义分析,经过基于统计模型训练得到语言模型。语言建模方法主要有基于规则模型和基于统计模型两种方法。统计语言模型是用概率统计的方法来揭示语言单位内在的统计规律,其中N-Gram模型简单有效,被广泛使用。它包含了单词序列的统计。
N-Gram模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。
四 待续……还有很多,……寒假过来补吧……
希望这个对大家理解整个过程有点用。具体的细节过程寒假过后补过来。如果大家有任何想法和建议,欢迎留言和与我交流。
最后,这是本命年最后一个博客应该。来年我希望我自己可以在语音识别做得更多,希望和大家一起学习,一起努力……加油……提前祝大家新春快乐。
语音识别系统原理介绍---从gmm-hmm到dnn-hmm相关推荐
- 室内空气流动原理图_新风系统原理图—新风系统原理介绍
如今我们在进行新家的装修的时候,不少人为了家人的健康着想,都在选购家电的同时会选择安装一款新风系统.但是尽管如此,大家对新风系统原理其实并不了解,更不要提新风系统各部分的原理了,下面小编就结合新风系统 ...
- 计算机房需要排风吗,机房新风排风系统怎么样 机房新风排风系统原理介绍【详解】...
因为机房设备属于高精密设备,对周边环境的要求非常高,如果机房内空气中有太多杂质,可能导致静电放电问题,可能会损坏元器件.所以一台机房新风排风系统不仅会会解决这样的问题,而且还会为企业节省大笔的资金,下 ...
- LD3320的嵌入式语音识别系统的应用
摘要:语音交互系统是比较人性化的人机操作界面,它需要语音识别系统的支持.LD3320就是这样一款语音识别芯片.介绍了该芯片的工作原理及应用,给出了LD3320与微处理器的硬件接口电路及软件程序.随着M ...
- 门禁系统原理及其组成模块电路分析
门禁系统是安防监控市场中很常见的一类产品(门禁系统的种类),它与我们的实际生活息息相关,小编在上一篇文章中就门禁系统的功能作了详细介绍,这只是其比较基础的知识.本篇文章中,小编将对门禁系统做更深入解读 ...
- 语音识别技术原理是什么 讯飞语音识别技术特点介绍【详解】
语音识别技术原理简介 自动语音识别技术(Auto Speech Recognize,简称ASR)所要解决的问题是让计算机能够"听懂"人类的语音,将语音中包含的文字信息"提 ...
- AI大语音(七)——基于GMM的0-9语音识别系统(深度解析)
本文来自公众号"AI大道理". 这里既有AI,又有生活大道理,无数渺小的思考填满了一生. 1 系统概要 孤立词识别:语音中只包含一个单词的英文识别 识别对象:0-9以及o的英文语音 ...
- 智能语音识别系统_语音识别技术原理_智能语音识别系统如何识别用户意图_企业服务汇...
编者按:智能语音识别系统目前已经实现商业化应用,广泛应用于客服行业,包括智能语音客服和智能客服呼叫中心.那么智能语音识别系统如何识别客户意图,如何判断智能客服系统的语音识别能力呢?本文我们将结合语音识 ...
- 嵌入式语音识别系统之电路设计原理
现在社会发展的这么快,什么高科技都涌现出来,什么智能机器人啦,智能手机等,有很多在这里就不一一列举了,在这里我们要说的就是语音识别系统了,现在嵌入式产品如此的多,就像一些智能空调啦,我们可以对着他说调 ...
- 基于DTW和HMM算法的语音识别系统对比研究-毕业小结
论文导读:别算法 (一)动态时间归整算法 发音具有随机性,同一个人在不同时间,不同场合对同一摘自:7彩论文网写毕业论文经典的网站http://www.7ctime.com个字的发音长度都不是完全一样的 ...
- 在线答题系统的技术原理介绍
对于在线答题系统有很多种不同的定义. 一种是人工对计算机的题目解答,另外一种就是答案库的自动解答.我们现在介绍的就是利用自身的答案库进行自动答题的在线答题系统的技术原理介绍. 在答题平台中有大量的识别 ...
最新文章
- 计算机无法打开策略,Win10提示“无法打开此计算机上的组策略对象”如何解决...
- oracle执行计划的概念,SQL语句性能调整之ORACLE的执行计划
- java ssh框架流程图_SSH框架整合详细分析【执行流程】
- ubuntu更新显卡驱动到460.84,升级cuda版本到11.2
- Errors running builder 'DeploymentBuilder'
- C#3.0 语言基础扩充
- Keras 开发你的第一个 Python 深度学习项目
- native2ascii.exe详细使用方法、native2ascii转换示例
- 酒店管理系统需求分析
- Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法
- Linux中ImageIO生成词云图片中文乱码
- Python读取和处理mf4
- 微信公号开发之图文消息全攻略
- JS返回到上一页的三种方法
- 卡特兰数Catalan number的应用
- java Long详解
- python线程锁和线程池
- 《指数基金投资指南》读书笔记---行业指数基金
- 能提高十倍工作效率的windows桌面小工具
- Squid 缓存代理(二)---ACL访问控制、日志分析
热门文章
- 利用HttpOnly来防御xss攻击
- 设计模式之美:Builder(生成器)
- Sql Server 全文检索
- @Responsebody与@RequestBody
- vscode 智能打印_vscode学习(一)之vscode开发中绝对让你惊艳的插件!!!(个人在用) 持续更新。。。。...
- 树莓派64位系统_玩转树莓派之安装系统
- 表单里面能不能套表单_抽奖+表单,居然还能这么玩?
- 牛客网-华为机试题(python)
- linux 信号阻塞和信号未决
- 【CF585-div2:C】Swap Letters(贪心)