声学模型训练-嵌入式训练
本章主要讲解HMM训练过程,首先回顾上章的HMM模型如下:
Q =q1q2...qN 状态集合(subphone集合)
A =a01a02...an1...ann 状态(subphone)转移矩阵,Q和A构成了发音字典
B=bi(ot) 观测似然,也叫作发射概率 ,表述为:每个subphone状态i产生倒谱特征Ot的概率
最简单的方式是给定手工标注的孤立词和对应的音频文件,计算每个子音素(subphone)对应的标注来计算矩阵B,然而实际中却无法做到,因为每个subphone对应的Ot是很难用手工去标注的。(用手工去在一断连续的音频上标注一个子因素是不可行的)因此,训练每个phone的HMM是嵌入在整个句子中进行的,音素的分割和对其是在训练过程中自动进行的,所以整个这个训练过程叫做嵌入式训练(embedded training)
数据准备:在训练过程前,需要准备wav音频文件,对应的标注文本,还有发音字典,基于句子的HMM构建如下:
接下来就是训练状态转移矩阵A和似然估计矩阵B了,
用ξj(t) 表示:在t时刻,状态i生成观测序列O的概率。
在初始阶段,我们需要对ai j和bj(ot)一个初始的估计 ,最简单的做法叫做flat start,
在flat start中,状态转移矩阵中,状态的自环和跳转到下一个状态(subphone)的概率相同,为0.5,高斯的均值方差取全局训练数据的均值和方差。现在有了基础的HMM-GMM参数了,接下来就要在整个训练集合上跑Balum-Welch算法,每次迭代,都要修改HMM参数,直到系统趋于一致不变。首先在给定初始的矩阵A和B的情况下,计算前向-后向概率,然后,用前向-后向概率重新估算新的矩阵A和矩阵B,具体推导会在下一篇文章《HMM基础-HMM训练-前向后向算法》章节详细讨论。同时用EM算法来更新多元高斯模型的均值和方差。
综上所述,标准的嵌入式训练过程如下所述:
给定训练音频文件,标注文件,发音字典情况下
1)如上图所述,对每个句子,构建一个句子的HMM模型。
2)初始化状态转移中的非零元素(自环为0.75,和跳转到下一个状态的为0.25)
3)初始化发射概率矩阵每个高斯的均值方差为所以训练集合的全局均值和方差。
4)EM迭代多次,用Viterbi来计算ξj(t) (在t时刻,状态i生成观测序列O的概率),
为计算ξj(t) ,要累计所有可能的路径,这样计算太慢了,一个更高效的算法是Viterbi 算法,
在训练算法中,不再是用前向-后向算法累计所有的路径来计算ξj(t),而是通过重复的跑Viterbi路径(最大概率路径)
来接近估测这个值。
用Viterbi来训练数据过程,也叫作强制Viterbi对齐,或强制对齐过程
在Viterbi对齐过程中,因为已经知道观察序列对应的词序列,所以合适的设置aij ,就可以强制Viterbi算法来通过某个指定的词。
Viterbi对齐其实是Viterbi解码的一个简化版,因为,Viterbi强制对齐过程中只需要找到观测值Ot对应正确的状态(或subphone)序列,而不需要找到正确的词序列。训练结果就是Viterbi强制对齐:即,对应观测序列O的,一条最优状态序列。
接下来,我们可以用对齐的HMM状态到累计counts,从而重新估计HMM参数。
Viterbi对齐中重新训练高斯模型参数的公式如下所示:
高斯混合模型的计算参加上一篇文章。
以上就是嵌入式训练过程。
声学模型训练-嵌入式训练相关推荐
- 语音识别中强制对齐_语音识别中的标注问题和嵌入式训练
什么是嵌入式训练(Embedded Training)? 序列的标注问题 机器学习的问题主要分为三类:分类问题,标注问题和回归问题 标注问题的输入是一个观测序列,输出是一个标记序列或者状态序列.标注问 ...
- 战斗机嵌入式训练系统中的智能虚拟陪练
战斗机嵌入式训练系统中的智能虚拟陪练 人工智能技术与咨询 来源:<航空学报> ,作者陈斌等 摘 要:智能化"实虚"对抗是现代先进战斗机嵌入式训练系统的重要功能需求.自主 ...
- 自训练 + 预训练 = 更好的自然语言理解模型
论文标题: Self-training Improves Pre-training for Natural Language Understanding 论文作者: Jingfei Du, Edoua ...
- yolov5——断点训练/继续训练【解决方法、使用教程】
yolov5--断点训练/继续训练[解决方法.使用教程] 1. 问题描述 2. 解决办法 2.1 步骤一 2.2 步骤二 2.3 步骤三 3. 全部流程 1. 问题描述 在用yolov5训练数据的过程 ...
- 使用预训练网络训练的两种方式:Keras Applications、TensorFlow Hub
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) tensorflow 2.0 画出model网络模型的拓扑图 ...
- Opencv+traincasade训练器训练
Opencv+traincasade训练器训练 1. 前期准备 opencv3.4.1 +VS2018 存放正样本和负样本的文件夹 生成训练的文件 2. 准备样本 2.1 准备正样本 正样本就是你想要 ...
- U2Net、U2NetP分割模型训练---自定义dataset、训练代码训练自己的数据集
前言 博客很久没有更新了,今天就来更新一篇博客吧,哈哈: 最近在做图像分割相关的任务,因此,写这么一篇博客来简单实现一下分割是怎么做的,内容简单,枯燥,需要耐心看,哈哈: 博客的内容相对简单,比较适合 ...
- 端到端训练 联合训练_图分解的端到端学习
source:End-to-end Learning for Graph Decomposition Jie Song ETH Zurich Bjoern Andres MPI for Intelli ...
- 端到端训练 联合训练_曲靖两家银行举行联合军事拓展训练 献礼祖国71周年华诞...
导语 为了丰富和活跃企业文化,促进员工深入沟通交流,增强团队凝聚力和执行力,熔炼意志,锻造信念,联学联建,共谋发展.10月17日至18日,中国农业发展银行曲靖市分行.交通银行曲靖分行举行联合军事拓展训 ...
- Google开源OCR项目Tesseract训练(自己训练的记录,未成功)
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 本文训练Tesseract用的方法主要参考文章 ...
最新文章
- java培训教程:什么是匿名内部类?怎样创建匿名内部类?
- 全国大学生智能车单车行进组中的单车改造飞轮安装方案参考
- 设计模式总结 (3)创建内存型模式
- oracle 1g apex030200,APEX_030200
- SAP CRM product settype read from database table
- 红袖添香唯美中国风PPT模板
- 每天进步一点点《ML - 高斯混合模型》
- NHibernate.Cfg.HibernateConfigException
- 理解GAN生成对抗网络
- Bundle Adjustment原理及应用
- 基于SSM的运动会管理系统
- 从零学Java(1)之面向对象
- 剪切蒙版与抠图的结合
- 请将第4章例4-6中的问卷调查结果用文本文件result保存, 并编写程序读该文件然后统计各评语出现的次数,再将最终统计结果追加至esultxt文件中
- go-stat-reporter(1):golang开发通用报表展示系统,设计数据结构
- sql基本的日期函数
- 人工智能安全的核心观点:何时、为何、何事以及如何
- SMU Problem 1727 逃生
- Android之startService()和bindService()区别
- 如何用java写一个九九乘法表。