上下文相关的GMM-HMM声学模型
一、上下文对音素发音的语谱轨迹的影响
受到上下文的影响,同一个音素的发音语谱轨迹不同
为提高识别准确率,对音素建模时应将这种上下文影响考虑在内
二、基于上下文相关的音素建模
注意,非单音素建模中,每个模型依旧代表一个音素,只是考虑了这个音素的上下文关系而已
(一)双音素diphones
考虑上个音素/下个音素对当前音素的影响
对于ROCK:
两个??分别取决于ROCK的前一个单词的最后一个音素和后一个单词的第一个音素
灰色的边界单元为邻近单词所共享
为语法/词序列中观察到的前后音素的每个组合构建单独的基于双音素的单词模型,
因此,同一个单词对应的单词模型常有多个
有时,根据语法,同一个单词的不同模型的部分可以重叠
由于边界单元为邻近单词所共享,所以不再具有明确识别出的单词级HMM
无法区分哪些双音素是词内,哪些是跨词---单词边界不明确
因此可区分对待词内双音素与跨词双音素---共2xNxN个模型(N为单音素个数)
分别用词内训练数据和跨词训练数据进行训练
(二)三音素triphones
考虑上个音素和下个音素对当前音素的影响
与双音素不同,不存在跨词共享的边界单元
与双音素相同,??与前一个单词和后一个单词相关,同一个单词常对应多个单词模型
有时,根据语法,出现部分重叠
三音素的情况变得更为复杂:
模型数更多,搜索更慢
基于单音素
基于三音素
填料音:背景噪音等,有声填料音:"UM","UH"等
三音素类型:
词内三音素
词首跨词三音素
词尾跨词三音素
单词只有单音素的三音素
(三)多音素nphones
(四)单词vs单音素vs双音素vs三音素vs多音素
1、单词
词汇量大时,为每一个单词建模,导致模型的数量很大,模型很难训练
无法识别训练数据中未出现过的单词---这样的单词实际很多(Zipf定律)
2、单音素
3、双音素
4、三音素---最常用,可通过参数共享控制模型复杂度
三音素数量分布非常接近Zipf定律轨迹
5、多音素
Nphone:
随着N的增大,多音素数量分布轨迹越来越接近Zipf定律,
当N大于3时,相对于收益的增加程度,代价的花费更大,
因此,常使用三音素
三、基于上下文相关的声学模型训练
上下文相关的GMM-HMM声学模型的更多相关文章
- 04(1) 基于上下文相关的GMM-HMM声学模型1
1.上下文对音素发音的语谱轨迹的影响 受到上下文的影响,同一个音素的发音语谱轨迹不同 为提高识别准确率,对音素建模时应将这种上下文影响考虑在内 2.基于上下文相关的音素建模 注意,非单音素建模中,每个 ...
- 04(2) 基于上下文相关的GMM-HMM声学模型2之参数共享
1.三音素建模存在的问题 问题一:很多三音素在训练数据中没有出现(尤其跨词三音素) 问题二:在训练数据中出现过的三音素有相当一部分出现的频次较少 因此,三音素模型训练时存在较严重的数据不足问题 2.参 ...
- 上下文相关的GMM-HMM声学模型续:参数共享
一.三音素建模存在的问题 问题一:很多三音素在训练数据中没有出现(尤其跨词三音素) 问题二:在训练数据中出现过的三音素有相当一部分出现的频次较少 因此,三音素模型训练时存在较严重的数据不足问题 二.参 ...
- [源码解析] PyTorch 分布式 Autograd (3) ---- 上下文相关
[源码解析] PyTorch 分布式 Autograd (3) ---- 上下文相关 0x00 摘要 我们已经知道 dist.autograd 如何发送和接受消息,本文再来看看如何其他支撑部分,就是如 ...
- 语音识别传统方法(GMM+HMM+NGRAM)概述
春节后到现在近两个月了,没有更新博客,主要是因为工作的关注点正从传统语音(语音通信)转向智能语音(语音识别).部门起了个新项目,要用到语音识别(准备基于Kaldi来做).我们之前做的传统音频已基本成熟 ...
- kaldi基于GMM的单音素模型 训练部分
目录 1. gmm-init-mono 模型初始化 2. compile-train-graghs 训练图初始化 3. align-equal-compiled 特征文件均匀分割 4. gmm-acc ...
- HMM拓扑与转移模型
<Topology> <TopologyEntry> <ForPhones> 1 2 3 4 5 6 7 8 </ForPhones> < ...
- JavaScript的执行上下文
在JavaScript的运行过程中,经常会遇到一些"奇怪"的行为,不理解为什么JavaScript会这么工作. 这时候可能就需要了解一下JavaScript执行过程中的相关内容了. ...
- Execution Contexts (执行上下文)
本章我们一起讨论一下ECMAScript的执行上下文及相关可执行代码的各种类型.so...什么是执行上下文?我们来看看定义: 每次当控制器转到ECMAScript可执行代码的时候, 即会进入到一个执行 ...
随机推荐
- 2018.10.30 bzoj4942: [Noi2017]整数(线段树压位)
传送门 直接把修改的数拆成logloglog个二进制位一个一个修改是会TLETLETLE的. 因此我们把303030个二进制位压成一位储存在线段树里面. 然后维护区间中最靠左二进制位不为0/1的下标. ...
- 1.The Necessity of a Broad Education 全面教育的必要性
1.The Necessity of a Broad Education 全面教育的必要性 (1) According to a survey,which was based on the respo ...
- Win7 VS2017简单编译FFMPEG播放器FFPlay
Win平台简单编译FFPlay播放器,顺便纪念下雷霄骅,一年前刚学FFMPEG时还看过他的博客,昨晚再次搜FFMPEG文章时才知道人已经走了... 做成了视频放到B站 https://www.bili ...
- s5-12 RIP
什么是RIP? RIP:Routing information protocol,路由选择信息协议 1988年,RFC1058 RIPv1:有类的路由选择协议 RIPv2:无类的路由选择协议,支持CI ...
- hdu2222(ac自动机模板)
#include<iostream> #include<cmath> #include<cstdio> #include<cstring> #inclu ...
- day36(动态代理)
动态代理 动态代理:是实现增强类中的一种方式,jdk中的动态代理:Proxy对象,使用最广泛的是在AOP切面编程中. 实现一个简单的动态代理来了解其中的运行机制. 创建一个接口:Person类型的接口 ...
- Alpha阶段敏捷冲刺(五)
1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 祁泽文:实现了个人遗忘曲线图 徐璐琳:完成了微信Web ...
- java基础-day16
第05天 API 今日内容介绍 u Object类 & System类 u 日期相关类 u 包装类&正则表达式 第1章 Object类 & System类 1.1 ...
- Linqpad工具
下载地址: http://www.linqpad.net/ 可以通过连接数据库,直接测试LINQ语句,并可以转化为Lamda .SQL语句. 非常好用的小工具,记录一下.
- request.getScheme() 使用方法
今天在看代码时,发现程序使用了 request.getScheme() .不明白是什么意思,查了一下.结果整理如下: 1.request.getScheme() 返回当前链接使用的协议:一般应用返回h ...