简明GMM-HMM语音识别模型

本文简明讲述GMM-HMM在语音识别上的原理,建模和测试过程。这篇blog只回答三个问题:

1. 什么是Hidden Markov Model

2. GMM是神马?怎样用GMM求某一音素(phoneme)的概率?

3. GMM+HMM大法解决语音识别

首先声明我是做视觉的不是做语音的,迫于**需要24小时速成语音。上网查GMM-HMM资料中文几乎为零,英文也大多是paper。苦苦追寻终于貌似搞懂了GMM-HMM,本文结合最简明的概括还有自己一些理解应运而生,如有错误望批评指正。

====================================================================

1. 什么是Hidden Markov Model

ANS:一个有隐节点(unobservable)和可见节点(visible)的马尔科夫过程(见详解)。

隐节点表示状态,可见节点表示我们听到的语音或者看到的时序信号。

最开始时,我们指定这个HMM的结构,训练HMM模型时:给定n个时序信号y1...yT(训练样本), 用MLE(typically implemented in EM) 估计参数:

1. N个状态的初始概率

2. 状态转移概率a

3. 输出概率b

--------------

  • 在语音处理中,一个word由若干phoneme(音素)组成;
  • 每个HMM对应于一个word或者音素(phoneme)
  • 一个word表示成若干states,每个state表示为一个音素

---------------------------------------------------------------------

2. GMM是神马?怎样用GMM求某一音素(phoneme)的概率?

2.1 简单理解混合高斯模型就是几个高斯的叠加。。。e.g. k=3

2.2 GMM for state sequence

每个state有一个GMM,包含k个高斯模型参数。如”hi“(k=3):

PS:sil表示silence(静音)

其中,每个GMM有一些参数,就是我们要train的输出概率参数

只要已知了这些参数,我们就可以在predict(识别)时在给定input sequence的情况下,计算出一串状态转移的概率。如上图要计算的state sequence 1->2->2概率:

3. GMM+HMM大法解决语音识别

我们获得observation是语音waveform, 以下是一个词识别全过程:

1. 将waveform切成等长frames,对每个frame提取特征(e.g. MFCC),

2.对每个frame的特征跑GMM,得到每个frame(o_i)属于每个状态的概率b_state(o_i)

3. 根据每个单词的HMM状态转移概率a计算属于该词的概率(如上图最后一行);那个词的HMM跑出来概率最大,就判断这段语音属于该词

宏观图:

(from Encyclopedia of Information Systems, 2002)

本文太过简略,只为科普。欢迎关注Rachel____Zhang

简明GMM-HMM语音识别模型

时间: 2024-08-03 04:04:43

简明GMM-HMM语音识别模型的相关文章

GMM-HMM语音识别模型 原理篇

转自http://blog.csdn.net/abcjennifer/article/category/1173803/3 本文简明讲述GMM-HMM在语音识别上的原理,建模和测试过程.这篇blog只回答三个问题: 1. 什么是Hidden Markov Model? HMM要解决的三个问题: 1) Likelihood 2) Decoding 3) Training 2. GMM是神马?怎样用GMM求某一音素(phoneme)的概率? 3. GMM+HMM大法解决语音识别 3.1 识别 3.2

重磅!MaxCompute助力阿里开源自研语音识别模型DFSMN,准确率高达96.04%

摘要: 阿里开源语音识别模型DFSMN 在近期举行的云栖大会武汉峰会上,装有DFSMN语音识别模型的"AI收银员"在与真人店员的PK中,在嘈杂环境下准确识别了用户的语音点单,在短短49秒内点了34杯咖啡.此外,装备这一语音识别技术的自动售票机也已在上海地铁"上岗". 阿里开源语音识别模型DFSMN 在近期举行的云栖大会武汉峰会上,装有DFSMN语音识别模型的"AI收银员"在与真人店员的PK中,在嘈杂环境下准确识别了用户的语音点单,在短短49秒内点

隐马尔可夫(HMM)模型

隐马尔可夫(HMM)模型 隐马尔可夫模型,是一种概率图模型,一种著名的有向图模型,一种判别式模型.主要用于时许数据建模,在语音识别.自然语言处理等领域广泛应用. 概率图模型分为两类,一类:使用有向无环图表示变量间的依赖关系,称为有向图模型或者贝叶斯网:第二类:使用无向图表示变量间的依赖关系,称为无向图模型或者马尔可夫网. 判别式模型:考虑条件分布P(Y, R | O),生成式模型:考虑联合分布P(Y, R, O) HMM三个假设 当前观测值只由当前隐藏状态决定 当前隐藏状态由前一个隐藏状态决定

理解隐马尔科夫(HMM)模型

前言 在李航的<统计学方法>第十章有对隐马尔科夫模型(Hidden Markov Model,HMM)比较详细的介绍和推导公式,我参考公式结合中文分词应用实现了隐马模型观测序列的生成.前向算法.维特比算法. 本文在此针对HMM模型在中文分词中的应用,讲讲实现原理.我尽可能的撇开公式,撇开推导.结合实际开源代码作为例子,争取做到雅俗共赏,童叟无欺. 没有公式,就没有伤害. 理解一个算法,我认为需要做到:会其意,知其形.本文回答的,其实主要是第一点.但是这一点呢,恰恰是最重要,而且很多书上不会讲的

利用隐马尔科夫链(HMM)模型实现中文分词

1.什么是HMM? 隐马尔科夫链(HMM)是一个五元组: 隐状态集合 ; 观测状态集合: 状态概率转移矩阵: 观察状态概率矩阵: 初始状态概率分布: 2.HMM有两个假设: 齐次马尔可夫链假设:任意时刻的隐藏状态只依赖与前一时刻的隐藏状态. 观测独立性假设:任意时刻的观察状态,只依赖与当前时刻的隐藏状态. 3.HMM可以解决3类基本问题: 评估观察序列的概率. 学习模型参数.即给定观察序列,估计模型的参数,是观察序列出现的概率最大. 预测问题.即给定观察序列和模型,求最有可能出现的对应状态序列.

Kaldi 语音识别基础教程

Kaldi 介绍 Kaldi 是由 C++ 编写的语音识别工具,其目的在于为语音识别研究者提供一个研究和使用的平台. Kaldi 环境搭建 本文主要通过使用 Docker 和 Nvidia-docker 构建 Ubuntu 环境对 Kaldi 进行搭建.Docker 针对的是无 GPU 的环境,Nvidia-docker 针对的是需要使用 GPU 计算的环境,如果读者机器上存在 GPU 计算资源,请使用 Nvidia-docker,使用 Nvidia 官方提供的 CUDA 镜像,可以省去安装 C

数学之美——HMM模型(一)介绍

一直想写点关于数学方面的blog,这对于数据挖掘分析,NLP处理等都有着比较重要的作用,之前在CSDN上想写点HMM方面的文章,一直没写成,最近几天终于抽点时间完成了HMM的文章,加以整理,遂有这个系列文章 首先是对HMM模型的介绍. 传统的马尔可夫模型(Markov Model)主要描述了具有马尔可夫性质的一个随机过程.更特殊的来讲,是离散的马尔可夫过程——马尔可夫链(Markov Chain).马尔可夫性质是指在给定当前和之前已发生事件后,未来发生事件仅依赖当前事件.马尔可夫过程主要具有两个

隐马尔科夫模型(HMM)分词研究

第一部分 模型简介 隐马尔可夫模型是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生.所以,隐马尔可夫模型是一个双重随机过程 ----具有一定状态数的隐马尔可夫链和显示随机函数集.自20 世纪80年代以来,HMM被应用于语音识别,取得重大成功.到了90年代,HMM还被引入计算机文字识别和移动通信核心技术"多用户的检测".HMM在生物信息科学.故障诊断等领域也

机器学习---HMM模型学习笔记

HMM算法想必大家已经听说了好多次了,完全看公式一头雾水.但是HMM的基本理论其实很简单.因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察向量由一个具有相应概率密度分布的状态序列产生,又由于每一个状态也是随机分布的,所以HMM是一个双重随机过程. HMM是语音识别,人体行为识别,文字识别等领域应用非常广泛. 一个HMM模型可以用5个元素来描述,包过2个状态集合和3个概率矩阵.其分别为 隐含状态S,可观测状态O,初始状态概率矩阵π,隐含