HMM/GMM识别之三音素训练——决策树

语音识别-声学模型(GMM-HMM) 本文主要讲解一下GMM-HMM算法声学模型的大概思路!~~~声学模型的目的是将经MFCC提取的所有帧的特征向量转化为有序的音素输出。概述如下:我们都知道HMM模型里面有隐含状态概念。我们需要弄明白音素HMM模型的隐含状态与一个音素之间的关系,通常一个音素含有3到5个状态,如果一个包含代表一个音素的HMM模型有3个状态(1,2,3,4,5),在对应一个音素的状态序列可以有1122333455(共10... 阅读详情

三音素训练
决策树
为什么需要决策树
我们进行语音识别模型训练的过程中,首先进行的是单音素、单个高斯的模型训练。抛开单个高斯不说,单音素模型本身有很大缺点:没有考虑到本音素前后音素的发音对本音素的影响。比如,同样是一个音素iy,如果它前面的音素分别是h和p,那么iy这个音素在这两种情况下的发音会有所不同,那么模型参数也就会受到其影响,此时,如果用同一个模型来描述音素iy,那么就会不合理。

为了解决这个问题,采用三音素(triphones)模型,典型的三音素模型如下 
[t-iy+n],这表示iy音素前一个音素是t,后一个因素是n,模型[t-iy+n] 
用来表示这种情况下的音素iy模型,那么此时,这个三音素模型和 [t-iy+ng] 
不再表示同一个模型了,虽然他们都是表示音素 
iy的模型,但是因为中心音素(此处为iy)的上下文音素不同了,所以此时它们其实是两个不同的模型。

如此以来,模型的数量会剧增。单因素模型时,假如我们只有40个音素需要建模,每个音素有3个HMM状态。但是在三因素模型中,最坏的情况是需要给40×40×40 
个模型进行建模,当然这其中有很多是不可能或者不会在训练数据中出现的。但是相对于单音素模型来说,这个数目已经增加了很多倍,这就导致了一个问题:训练数据不足!那么如何解决因为模型数量增加而导致训练数据不足的问题呢?HTK使用了模型状态绑定的方法。所谓的模型状态绑定,就是让一些具有某些相似特征的模型的一些状态来共享一组模型参数,这样就能够有效的减少模型参数的数量从而解决训练数据不足的问题。

如何使用决策树进行模型的状态绑定
在进行状态绑定时,我们首先要做的就是使用决策树进行聚类。具有相同类别的模型,他们的某一个状态可以共享一组参数。例如:对于音素iy,如果它的前一个音素分别是m和n,由于m和n发音比较像,所以模型[m-iy+*]和[n-iy+*]的第一个状态的参数就应该比较相似,那么我们就把这两个模型的第一个状态的参数进行绑定,也就是说这两个模型的第一个状态参数是相同的。那么到底如何确定那些模型的哪些状态可以共用一组参数也就是可以进行绑定参数?这就用到了决策树进行聚类,具有相同类别的状态就可以共用一组参数。

在这里,一定要注意,我们在建立决策树时,是对每个音素的每个状态都建立一个决策树,而不是只对某一个音素来建立。这里,我们以音素ih的首状态为例,详细说明决策树的建立过程。

在上图中的每一个类中,A、B……E,每一个类中的第一个状态都被绑定在一起,如此进行,把所有的音素的所有状态都进行决策树的建立,就能完成参数的绑定。
 

语音识别-音素的上下文建模 人的发音其实是个渐变过程,在从一个音素转向另一个音素时,会存在协同发音现象,包括同一个音节内部和不同音节的过渡。 本博客主要看洪青阳教授写的《语音识别:原理与应用》而写的笔记。 协同发音 协同发音是指一个音受前后相邻音影响而发生变化。如”好好学习“的“好好”。因此同一个音素在不同位置,发音差异可能较大。 中文: 好 好 音节: hao3 hao3 音素:h ao3 h ao3 每个字都是一个音节,音节内部有发音衔接,音节之间也是有衔接的,其体现就是在语谱图过渡阶段存在交叉。 上下文建模 阅读详情

相关推荐

语音识别之Kaldi:学习GMM-HMM

kaldi语音识别理论与实践课程学习。前面的博客介绍了语音识别的基础知识及原理。现在开始学习实战。以Kaldi框架为基础。Kaldi是一个有全套的语音识别代码的工具,由Dan Povey博士和捷克的BUT大学联合开发,最早发布于2011年,底层代码使用C++编写,接口采用shell和python,覆盖了统计模型和深度学习方法,操作灵活,易于扩展,开发者更为活跃。语音识别流程:目前开源的语料库有: Kaldi官网:KALDI里面有详细的文档。 下载Kaldi:https://github.com/du-ud/

Barbara‘s Blog 2924

模型训练遇到数据量太大而导致内存不够问题?今天教你一招

sklearn中不少模块支持迭代训练和处理,特点是这些模块包含方法。在使用过程中需要考虑处理数据集为多批次的过程,需要考虑批大小和批个数,同时也需要考虑对最终精度的影响。与使用全量数据的处理相比,使用迭代训练和处理在效果和精度上可能会稍差,但可以在内存有限的情况下使用。

Python数据挖掘 6389

[语音识别] 单音素、三音素、决策树

了解单音素、三音素、决策树主要从几个问题出发: (1)什么是音素? 以前的音标现在也可以叫音素,而且现在正广泛的把音标叫音素。 每一种语言中的音素都是不一样的,即使是同种语言中,方言的音素也是不一样的。音素应该与人体的发音严格的区分开,因为音素是指一个有规律的有限的发音系统而人体的发音则是无限的。 以英语为例,英语共有48个音素,其中元音20个,辅音28个。英语辅音和元音在语言中的作用,就相当...

MachineLP的专栏 3098

从单音素到三音素模型

参考文章: 《Tree-Based State Tying for High AccuracyAcoustic ModellingBasicsTriphone TyingDecision Trees 》,S.J. Young, J.J. Odell, P.C. Woodland 1994. 1.为什么要用三音素建模 单音素建模没有考虑协同发音效应,也就是上下文音素会对当前...

aig8440的博客 543

Kaldi三音素GMM学习笔记

在这个笔记中,我会首先介绍表示HMM的类HmmTopology和TransitionModel,然后介绍三音素GMM训练脚本train_deltas.sh用到的几个程序,这几个程序与单音素GMM的不同或者只在三音素GMM训练中出现。与GMM相关的其余部分请参考单音素GMM学习笔记。

局放起始电压(PDIV)与击穿电压(BDV):绝缘系统设计的核心参数 [特殊字符]

在电力设备绝缘系统设计中,**局放起始电压(Partial Discharge Inception Voltage, PDIV)和击穿电压(Breakdown Voltage, BDV)**是两个至关重要的参数。它们直接反映了绝缘材料的性能和绝缘系统的可靠性,对变压器的设计、制造和运行具有重要指导意义。本文将深入探讨这两项参数的定义、测试方法及其与绝缘设计制造的关系,帮助读者全面理解其在电力设备中的核心作用。

mubiao05的博客 2629

Diphone和Triphone模型

Diphone和Triphone模型都是用于语音合成和识别的统计模型,它们通过考虑音素之间的连续性和上下文来生成更自然和准确的语音。Diphone模型较为简单,而Triphone模型则提供了更复杂的上下文建模。在实际应用中,这些模型需要大量的语音数据进行训练,并且通常需要结合其他技术(如隐马尔可夫模型HMM或深度学习)来实现高效的语音处理。

qq_40844444的博客 605

SAP 批量处理分包事后调整:BAPI_GOODSMVT_CREATE 关键参数与避坑指南

本文详细解析了SAP系统中使用BAPI_GOODSMVT_CREATE进行分包事后批量调整的关键参数配置与常见错误排查。重点介绍了GOODSMVT_CODE设置为'07'的必要性、GOODSMVT_ITEM结构体的正确配置方法,以及如何避免M7384、M7386等常见错误,帮助用户高效处理分包业务中的数量调整问题。

weixin_29276847的博客 566

语音识别入门第五节:基于GMM-HMM的语音识别系统

语音识别入门第五节:基于GMM-HMM的语音识别系统

小小莫大大爱的博客 2143

Hi3559AV100制作ext4文件系统和烧录emmc

1、首先生成所需文件系统,见本博客<Hi3559AV100文件系统制作cramfs>。 2、使用工具生成EXT4文件系统 ./make_ext4fs -s -l 96M rootfs_hi3559av100.ext4 ./rootfs 3、烧录文件系统 mw.b 0x82000000 ff 0x12C00000;tftp 0x82000000 STM_...

阿Sir问道 7033

海康工业相机BayerRG8转BGR8实战:手把手教你用OpenCV实现高效图像转换

本文详细解析了海康工业相机BayerRG8格式到BGR8格式的高效转换实战。针对工业视觉项目中高帧率、大分辨率场景下的性能瓶颈,文章对比了海康SDK原生方案与OpenCV多种转换方法的优劣,并提供了从基础实现到高级优化(如多线程流水线、内存管理、SIMD指令集应用)的完整代码示例与性能调优策略,帮助开发者构建稳定、高效的图像处理系统。

weixin_29237635的博客 523

基于GMM-HMM的语音识别系统

本文介绍基于GMM-HMM的语音识别系统,包括:孤立词、单音素、三音素识别系统。

cdLiang的博客 4530

告别Keil,在Windows上用VSCode + arm-none-eabi-gcc + Makefile搭建国产MCU开发环境(附JLink配置避坑)

本文详细介绍了如何在Windows上使用VSCode、arm-none-eabi-gcc和Makefile搭建国产MCU开发环境,替代传统的Keil和IAR。内容涵盖工具链配置、工程结构设计、Makefile编写、VSCode集成调试以及高效开发工作流,特别针对国产MCU如复旦微FM33系列提供了优化方案和避坑指南。

weixin_28729205的博客 431

AI大语音(八)——GMM-HMM声学模型(深度解析)

基于GMM的0-9孤立词识别系统以词为训练单位,添加新词汇需要重新进行训练,若要涵盖所以词,差不多6万个词,训练量极大,预测时也要计算6万个模型的似然,哪个大预测出哪个,在实际应用中有局限性,只能应用于小词汇量场合。 孤立词识别系统识别了0-9的数字的英文单词,但是假如有人用英文报电话号码,是识别不了整个号码的,甚至识别不了其中的one。 孤立词识别这个模型无法从一连串英文号码(里面包含了one two等多个数字)中准确识别出one,关键点在于连续语音中不知道哪些语音信号是one,哪些是two,或者说不

aibigtruth的博客 8039

信贷模型域——客户管理阶段模型(贷中模型)

本文主要探讨了信贷模型域中的客户管理阶段模型,重点聚焦于交叉销售模型。交叉销售模型不仅应用于贷中阶段,还贯穿于贷前、贷中、贷后全过程,其核心作用在于提升客户价值、增强客户粘性、降低流失率以及实现风险与收益的平衡。文中通过具体案例展示了交叉销售模型在现实业务中的应用,并指出其在贷中阶段的主要任务是提升存量客户价值、增加产品使用率,同时有效控制风险。

庄小焱 1879

k8s 不同node之间pod ip不通

底层k8s使用calico网络,ipip网络模式,kubevirt启动了2台虚拟机;在这两台虚拟机上再搭建k8s,calico网络,ipip网络模式。说明:我是使用helm安装的calico,改这个模式要改crd资源ippools。其他方式安装的calico修改方法可能不一样。在虚拟机上的k8s上启动了2个pod,分布在不同的node上,这两个pod不能ping通对方的pod ip。修改虚拟机之上的k8s集群的calico网络的ipipMode为Never即可,之前使用的是Always。

weixin_40548182的博客 4056

【语音识别】基于GMM-HMM的语音识别系统

如题,这部分结合了这系列前面几章的知识,做了一个建议的语音识别系统。

nianmaoren2400的博客 1739

第三节:Vben Admin登录对接后端login接口

上一节,我们梳理的Vben Admin登录功能接口的逻辑,本节开始正式开启后端的开发后端我们采用Python的Flask项目,Flask-SQLAlchemy管理数据库模型,Flask-Migrate进行模型迁移。参考版本如下:Flask3.0.23.1.1本节,我们已经开启的后端的开发,因为是主要介绍Vben Admin的登录逻辑,所以Flask开发这里只截取了部分主要代码。

cuiwin的专栏 4188

语音识别入门课——week5(GMM-HMM)

每个状态都有一个对应的GMM,每个词又有对应的HMM,给出一段未知序列的时侯,就会在HMM上计算一下观测概率、转移概率,也就是做一个Viterbi算法,计算一个序列在HMM-GMM上的概率。就是将孤立词里面的词3状态,转变为每个因素3状态,做一个HMM的平滑连接,相当于一个9状态的HMM,再去使用Viterbi训练或者前向后向训练。词(语音)是一个序列,P_w(X)可以用HMM的概率问题来进行描述,并且语音经过MFCC特征提取后也会变成连续概率密度分布。词 --> 音素序列,3状态变成拼接的多状态。

m0_61474277的博客 1387

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

AI大语音(九)——基于GMM-HMM的连续语音识别系统(深度解析)

上一专题GMM-HMM声学模型中讲述了其理论知识,这一章利用理论搭建一套GMM-HMM系统,来识别连续0123456789的英文语音。 本系统是单音素,未涉及后面三音子的训练以及决策树的内容。 在GMM专题和HMM专题中分别讲述了其训练都是EM算法,那么融合形成GMM-HMM模型后会如何训练?是应用一个EM算法还是分别应用EM算法呢? 1 Viterbi解码 在HMM专题中,HMM解码有两种方法,分别为Viterbi算法和近似算法,本系统采用Viterbi算法进行解码。 针对...

aibigtruth的博客 3427

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

基于GMM-HMM的传统语音识别对比

本文深入解析基于GMM-HMM的传统语音识别技术,介绍其声学模型与语言模型的协同机制,探讨高斯混合模型和隐马尔可夫模型在语音特征建模与时序推理中的作用,并分析其在小数据、嵌入式场景下的应用价值。

weixin_32480007的博客 1021

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于pytorch语音识别_基于GMM-HMM的语音识别系统(2)

接上一篇 基于GMM-HMM的语音识别系统(1) 二. 三音素GMM-HMM模型使用三音素建模之后,引入了新的问题:N个音素,则共有 个三音素,若N=100,则建模单元又太多了,每个音素有三个状态,每个状态对应的GMM参数,参数就太多了。数据稀疏问题,有的三音素数据量很少unseen data问题。有的三音素在训练数据没有出现,如K-K+K,但识别时却有可能出现,这时如何描述未被训练的三音素及其...

weixin_39520880的博客 710

第五讲 GMM-HMM模型学习笔记

GMM-HMM模型学习笔记

一只猫猫的博客 1413

Kaldi 单音素模型训练流程与总结

文章目录脚本原理总体的流程介绍:流程1.初始化单音素模型1.1gmm-init-mono.cc1.2compile-train-graphs.cc2.训练单音素模型2.1align-equal-compiled.cc和gmm-align-compiled2.2gmm-acc-stats-ali2.3gmm-sum-accs2.4gmm-est模型参数输出解释:提醒资料专业名词的解释 脚本 ais...

qq_36782366的博客 3361

从0开始学习kaldi决策树绑定+三音素

从0开始的Kaldi决策树绑定+三音素 这个博客主要介绍了三音素GMM的原理以及Kaldi对其的实现,由于没有分篇幅所以全篇较长 三音素GMM 在单音素GMM中,我们对每一个音素建立一个HMM模型,并相应于音素开头、中间和结尾使用了3个发射状态(emitting state),每个发射状态对应一个GMM模型,然而这种建模方式只是对一个音素单独建模而没有考虑到发音是个连续的过程。 由于协同发音情况的...

qq_37591044的博客 1279
上一篇: 常用的数值计算工具
下一篇: HMM-GMM解码图谱构建——HCLG
audiocool
博客等级 码龄9年 335粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值