本文主要对基于GMM/HMMs的传统语音识别系统做一个整体介绍。

Outline:

  1. 识别原理
  2. 统计学模型
  3. 系统框架

首先需要说明本文讨论的对象是连续语音识别(Continuous Speech Recognition, CSR),意味着基于DTW(动态时间规整)的孤立词识别(Isolated Word Recognition)不在讨论范围内(out-of-date)。同时,整篇围绕自动语音识别解码过程(识别过程)展开的讨论的。

1.识别原理

首先明白,我们的语音是一种声波,是模拟信号,一般在电脑中保存为wav文件(无压缩格式)或者可以直接通过麦克风采集获得(online)。

需先进行预处理与数字化操作:滤波降噪、预加重(提升高频)、端点检测、加窗分帧,把我们的一段语音信号分解为很多很多的小段语音片段(语音帧)。一般每帧长度为25ms,相邻两帧有10ms的重叠,也就是常说的帧长25ms,帧移10ms。
然后,我们再对每一帧做信号分析,来进一步压缩数据,也被称作特征提取,常见的特征参数有:MFCC,PLP。经过特征提取后,每帧由原来上百个记录点,压缩为39维的MFCC特征参数。(瞬间轻松了好多)

接下来,就是怎么把一系列特征参数序列转化为一段话的问题了?也就是声学模型(GMM-HMMs)、语言模型派上用场的时候到了。首先我们要知道一段话是由一串文字序列组成,一个文字由一串音素(phoneme)组成(如bal:/b/ /ɔː/ /l/)。通常在英文中我们选择音素来建立了隐马尔科夫模型(中文建模单元常为声韵母),即一个音素对应一个HMM,同时通常一个HMM由三个状态(state)组成。好的我们再反过来,我们现在手上有一个特征参数序列,识别的过程,就是解决怎么把每个特征参数识别为一个状态,再由状态到音素,音素到单词,单词到单词序列(一段话)?其中特征参数到状态,由GMMs(混合高斯模型)解决;三个状态到一个音素,由HMM解决;音素到单词,由词典解决;单词到单词序列,由语言模型解决。当然,在整个过程中,我们都是在一个状态网络(time-state)中进行的,都是基于HMMs的。这也是为什么说是HMMs解决了语音识别问题。

统计学模型

自动语音识别(Automatic Speech Recognition, ASR)的任务是将一个段声学信号映射为一串文字。(对其建模是我们实际去解决问题的第一步)即

W∗=argmaxWP(W|X)(1)

W^*=\mathop{argmax}_{W}P(W|X) \tag{1}

其中X=xTi=x1x2,⋯,xt,⋯,xTX=x_{i}^{T}=x_1x_2,\cdots,x_t,\cdots,x_T代表一段长度为TT的声学信号(语音帧),W=wni=w1w2,⋯,xnW=w_{i}^{n}=w_1w_2,\cdots,x_n代表一段长度为nn的单词序列(word sequence),W∗W^*为在所有 中,最有可能的一段单词序列,也就是我们的识别结果了。
然而公式(1)很难直接计算得出(对于generative models)。我们进行Bayes变换:

P(W|X)=P(X|W)P(W)P(X)∝P(X|W)P(W)(2)

P(W|X)=\frac{P(X|W)P(W)}{P(X)} \\ \quad\quad\quad\quad\propto P(X|W)P(W) \tag{2}

W∗=argmaxW(P(X|W)⏟AMP(W)⏟LM)(3)

W^*=\mathop{argmax}_{W} (\underbrace{P(X|W)}_{AM} \underbrace{P(W)}_{LM}) \tag{3}

最终得到公式(3),其中 代表了一个声学似然度,包含了字典、语音学和声学知识,通过声学模型计算得到; 表示单词序列的一个先验概率(Occam’s Razor),包含了语言学信息,可由语言模型获得。自此,我们知道语音识别问题可以利用声学模型和语言模型来解决。(不过在实际处理中,我们要对公式(3)作进一步细化)

系统架构

一个语音识别系统框架主要包括:声学分析(Signal Analysis)、声学模型(Acoustic Model)、辞典(Lexicon)、语言模型(Language Model)、搜索/解码(Search/Decoding)。原始语音经过信号分析后,结合声学模型、语言模型和辞典, 在搜索空间中找出一个最有可能的单词序列。

声学分析:也称特征提取(Feature Extraction)。
作用:降维,提取有用信息,比如将一段语音帧,解析为一个固定维数(39维)的特征向量。
常用:MFCC(Mel-frequency cepstral Coefficient)、PLP(Perceptual Linear Prediction)。

声学模型
作用:解析声学信号,比如将特征向量解析到一个特征的建模单元上,并获得相应的score,如音素,声韵母等等。
常用:GMM-HMM、hybrid ANN-HMMs、DNN-HMM、RNN-CTC。

辞典:
作用:给单词和发音提供HMM模型(亚词)和语言模型间关联。
通常:基于音素,由专家手工完成,如CMU-dict。

语言模型:
作用:提供P(W)P(W)这部分的先验概率,可以区分相同发音时的识别结果,如wreck a nice beach。
常用:n-gram。

搜索/解码:
作用:根据状态系列,在time-state Trellis中找到一个最优路径,或者说根据声学模型输出的结果,结合辞典、语言模型信息,找出最有可能的识别结果。
常用:Viterbi search、Beam search。

1-GMM-HMMs语音识别系统-框架篇相关推荐

  1. 基于深度学习的中文语音识别系统框架搭建

    基于深度学习的中文语音识别系统框架 转自@https://blog.csdn.net/chinatelecom08/article/details/82557715 本文搭建一个完整的中文语音识别系统 ...

  2. 基于深度学习的中文语音识别系统框架(pluse)

    目录 声学模型 GRU-CTC DFCNN DFSMN 语言模型 n-gram CBHG 数据集 本文搭建一个完整的中文语音识别系统,包括声学模型和语言模型,能够将输入的音频信号识别为汉字. 声学模型 ...

  3. 2-GMM-HMMs语音识别系统-训练篇

    本文记录在传统的语音识别中,训练GMM-HMMs声学模型过程中的公式推导过程. Outline GMM - 混合高斯模型 HMM – 隐马尔科夫模型 Forward-Backward Algorith ...

  4. 语音识别——基于深度学习的中文语音识别系统框架

    本文搭建一个完整的中文语音识别系统,包括声学模型和语言模型,能够将输入的音频信号识别为汉字. 该系统实现了基于深度框架的语音识别中的声学模型和语言模型建模,其中声学模型包括CNN-CTC.GRU-CT ...

  5. [声纹识别]语音识别系统框架[1]

    在研究者眼中的语音识别是通过三个步骤完成:一是录入语音信号:二是搜素训练数据集包含(声音模型.词库.语言模型):三是解码输出文本.也就是说音频->提取为声学特征->转成音素(这部分为声学模 ...

  6. 语音识别维特比解码_3-GMM-HMMs语音识别系统-解码篇

    本文主要描述基于GMM-HMMs传统语音识别的解码过程. Outline: Viterbi decoding Cross-word decoding Beam search 1.Viterbi dec ...

  7. 干货:科大讯飞最新语音识别系统和框架深度剖析

    雷锋网按:本文作者魏思,博士,科大讯飞研究院副院长,主要研究领域为语音信号处理.模式识别.人工智能等,并拥有多项业界领先的科研成果.张仕良,潘嘉,张致江科大讯飞研究院研究员.刘聪,王智国科大讯飞研究院 ...

  8. 语音识别系统及科大讯飞最新实践

    http://geek.csdn.net/news/detail/96948 语音作为最自然便捷的交流方式,一直是人机通信和交互最重要的研究领域之一.自动语音识别(Automatic Speech R ...

  9. 大热的麦克风阵列语音识别系统的设计和轻松实现,提供软硬件解决方案

    本文引用地址:http://www.eepw.com.cn/article/201706/348732.htm 摘要: 在非近距离语音识别中,由于衰减.干扰.混响等因素的影响,使语音识别率显著降低.使 ...

最新文章

  1. 解决python3 UnicodeDecodeError: 'gbk' codec can't decode byte
  2. 我的 2021 之感谢有你们(上篇)
  3. C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......
  4. mysql5.6安装sys库_MySQL5.6数据库优化my.cnf配置
  5. LeetCode 1652. 拆炸弹(前缀和)
  6. MySQL小问题:导入employee测试数据
  7. python-运算符综合演练
  8. 4011-基于邻接表的深度优先遍历(C++,取巧做法)
  9. The Internet Communications Engine (Ice) 跨平台异构通讯方案 第二弹-Hello world!
  10. ubuntu下libfetion问题
  11. 91卫图免费版使用步骤
  12. python模拟登陆qq空间
  13. 详解函数的三种传递方式
  14. Guarded Suspension模式:等待唤醒机制
  15. 制作 Google Chrome 绿色版
  16. 数据仓库搭建DWT层
  17. C++编写爬虫脚本爬取网站图片
  18. linux内核损坏的原因,Linux内核报错“General protection fault”原因
  19. 宝塔php socket,宝塔开启websocket 小程序聊天功能开发
  20. php正则匹配sg-nc-wap_Pandas基础操作(上)

热门文章

  1. mser python篇
  2. 四川玖益科技:开店的注意事项分析
  3. win7 x86系统 内网安装 IE11
  4. ipdb python调试工具
  5. 360浏览器不弹出java窗口,360浏览器窗口怎么合并打开浏览器都不在同一个窗口...
  6. 并发编程(六):管程
  7. (第20讲)关于排序的各种算法的汇总的题目
  8. Android面试题最全攻略!
  9. PHPCMS支持HTTPS PHP7 MySQL8 PHPCMSX安装包
  10. Layui数据表格调整行高