上篇系列之一从总体上讲了ASR的原理、评估方法、模型发展,这一篇开始介绍称霸ASR三十年的混合模型(Hybrid Model),特别是GMM/HMM模型。由于GMM和HMM模型本身已经是很大的一块内容,我假设读者已经了解其基本原理。

基本概念

在讲具体模型之前,先介绍一些需要了解的基本概念。对语音进行处理,一般会先进行分帧和特征提取,例如MFCC、FBank,然后把这些特征转化为发音最基本单位的序列,一般是音素序列,音素转换为字后就变为了文字序列。音素是比字更小一级的单位,在汉语中简单理解音素就是声母和韵母集合,但由于某些韵母是其他基本韵母的组合,实际上音素只需要这些基本发音单元就够了。如何把语音特征转换为合理的音素或者文字序列,就是模型要干的事。

GMM/HMM模型

我们知道隐马尔科夫模型HMM(Hidden Markov Model)可以用来预测序列,ASR要做的是从语音到文本序列的转换,顺理成章可以用HMM来预测。HMM预测过程中需要状态转移概率矩阵和发射矩阵(观察概率),使用在ASR中时HMM状态可对应音素,发射矩阵可通过混合高斯模型GMM(Gaussian Mixture Model)计算获得。由于整个方法混合使用了GMM和HMM,所以叫混合模型。相对于混合模型,把语音特征通过一个模型直接预测出音素或者文本序列的模型称为端到端模型。

下图是使用GMM/HMM混合模型以一个单词为例的预测整体过程。

语音通过分帧,然后进行特征提取,对每一帧通过GMM计算其属于每个音素的概率,概率最大者被认为是该帧所属的音素(例如图中的y, eh, s),每个音素是HMM中的一个状态,通过Viterbi算法在这些音素/状态中找到一条最合理的序列,上图中为sil y eh s sil,组合起来就是单词yes。

HMM和GMM的关系如下图:

可以看到,GMM负责从帧到音素状态的转换,HMM负责音素状态到最后音素串的转换。

可能的疑问

  1. GMM和HMM的参数是怎么得到的?

模型训练时,通过标签数据训练学习得到,HMM的参数是状态转移矩阵,GMM的参数是高斯分布的均值和方差。

  1. 标签数据一帧一帧标得吗?

由于语音帧数太多,很难人工一帧一帧标,一般是先平均标上整体音素,然后通过Embedding Training迭代,迭代过程不断更新转移概率和发射概率,使用Viterbi或者前后向算法对帧和标签进行对齐。

模型优缺点

优点:训练速度快,模型小。

缺点:模型没有利用上下帧的信息。从1990年以来,主体框架没变,各种改进的补丁越打越多,模型变得越来越复杂。

DNN/HMM模型

由于GMM没有利用帧的上下文信息,随着深度神经网络的兴起,能弥补上这一缺点,让DNN代替GMM学习深度非线性特征,于是有了DNN/HMM模型。

本质就是用DNN代替了GMM/HMM中的GMM,以前是用GMM计算,选择概率最大的音素作为一帧的HMM状态。使用DNN后通过神经网络直接计算每帧属于各个音素的概率值,即通过softmax得到一个概率值的向量,选最大值对应的音素作为该帧的HMM状态。实际上GMM得到的是真正的概率,DNN通过softmax得到的是和为1的向量,我们把向量中的每个值当成了概率。

DNN/HMM的各种变形

DNN可以使用各种神经网络模型,如CNN、RNN、LSTM等,发挥各自的优势。比如RNN、LSTM能有效利用历史信息,增加模型上下文记忆能力。

由于混合模型使用了HMM,当前状态只和上一个状态相关,存在局限性。同时,混合模型要求语音帧和对应的音素一一对齐,这对数据标注造成极大的挑战,一是工作量极大,二是两个相邻音素边界容易混淆。所以近年来对端到端模型的研究很活跃,下一篇我们谈谈著名的CTC模型。

语音识别(ASR)系列之二:混合模型相关推荐

  1. 语音识别MFCC系列(四)——MFCC特征参数提取

    最好先看下下面三篇(其中系统的讲述了离散傅里叶变换,能量密度谱为什么是DFT系数的平方除以总点数,为什么512点的离散傅里叶变换只选前257个分量,离散余弦变换,为什么采样频率要大于真实信号最大频率的 ...

  2. 语音识别(ASR)论文优选:端到端ASR综述Recent Advances in End-to-End Automatic Speech Recognition

    声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵.搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html.语音合成领域论文列表请访问h ...

  3. 一文看懂“语音识别ASR” | AI产品经理需要了解的AI技术概念

    原标题:一文看懂"语音识别ASR" | AI产品经理需要了解的AI技术概念 温馨提示:文末有[重大福利]:优惠券(金额很大) for 三节课<产品经理P2(进阶)系列课程&g ...

  4. 【资讯博客翻译】----通过序列转导实现联合语音识别和说话人二值化

    [翻译]通过序列转导实现联合语音识别和说话人二值化 原文网址:https://ai.googleblog.com/2019/08/joint-speech-recognition-and-speake ...

  5. 阿里云RPA(机器人流程自动化)干货系列之二:认识RPA(下)

    2019独角兽企业重金招聘Python工程师标准>>> 导读:本文是阿里云RPA(机器人流程自动化)干货系列之二,主要介绍了RPA的发展齐纳经和主要使用场景有哪些,目前国内外主流的R ...

  6. 语音识别ASR技术通识

    语音识别ASR技术通识 语音识别(Automatic Speech Recognition),一般简称ASR:是将声音转化为文字的过程,相当于人类的耳朵. 语音识别原理流程:"输入--编码- ...

  7. mlfviewer_语音识别ASR - HTK(HResults)计算字错率WER、句错率SER

    HResults计算字错率(WER).句错率(SER) 前言 好久没发文,看到仍有这么多关注的小伙伴,觉得不发篇文对不住.确实好久没有输出经验总结相关的文档,抽了个时间,整理了下笔记,发一篇关于ASR ...

  8. 语音识别asr是什么

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 腾讯云语音识别(asr) 为开发者提供语音转文字服务的最佳体验. 语音识 ...

  9. 科大讯飞/百度/阿里/腾讯(BAT)智能语音识别(ASR)性能对比选择预计价格分享 - pytorch中文网...

    最近在做智能客服的时候需要使用到语音识别,所以了解和对比了各家平台的语音识别对比和分析! 一.科大讯飞 1.语音听写即在线音识别查看Demo 把语音(≤60秒)转换成对应的文字信息,让机器能够&quo ...

最新文章

  1. iOS与JS交互的4种方法
  2. Spring Boot 中的 @EnableAutoConfiguration 是如何处理的?
  3. 【线上圆桌整理 - 微软】后疫情时代现代化办公新趋势
  4. 用计算机求锐角A,B,计算机操作题
  5. MS SQL Server 常用操作
  6. opencv源码解析之(5):CommandLineParser类的简单理解
  7. 【Mava】一个分布式多智能体强化学习研究框架
  8. express搭建的nodejs项目使用webpack进行打包
  9. 爬虫工程师是干什么的?你真的知道吗?
  10. 【寒江雪】Go实现代理模式
  11. 新疆计算机操作题,新疆维吾尔自治区教师计算机操作题复习套
  12. oracle是java代码块,Oracle中施行java代码
  13. Linux计划任务篇
  14. 常见的希腊字母及读音
  15. html静态页面--对我的idol相关内容的集合页面(徐明浩the 8)
  16. 计算机音乐数字乐谱童话,童话钢琴简谱-数字双手-光良
  17. linux命令之打包和解压
  18. iconfont-阿里图标库 的使用
  19. 【LSSVM回归预测】基于matlab麻雀算法优化LSSVM回归预测【含Matlab源码 1128期】
  20. 软件开发周期(各个阶段)

热门文章

  1. 「Do.017」如何高效使用Win电脑?
  2. 主动变被动9个例句_语法知识:被动语态怎么用,你知道吗?
  3. 戴尔DELL灵越3881台式计算机,戴尔灵越3881台式机装win7系统及bios设置教程(支持10代cpu usb)...
  4. 怎么用计算机玩超级玛丽,玩家在《超级马里奥制造2》里做出了计算器 计算过程太神奇...
  5. 贷后催收中的风险联动管控指标
  6. 数字电路36( 时序可编程逻辑器件)
  7. 七日杀服务器文件翻译,七日杀items文件翻译 | 手游网游页游攻略大全
  8. 算法工程师10——opencv
  9. 【科普贴】UART接口通讯协议
  10. 蚂蚁市值25万亿?互联网的“后棚”买卖,你我都逃不过