加权有限状态机在语音识别中的应用

WFST在语音识别中的应用,要从Mohri的《Weighted Finite-State Transducers in Speech Recognition》这篇论文开始说起。首先看下面简单的WFST图,它是一个有向图,状态转移弧上有输入符号、输出符号以及对应的权重值。下图中的输入符号和输出符号相同,当然在多数情况下它们是不相同的,在语音识别中,输入可能是发声的声韵母,输出是一个个汉字或词语。

WFST的基本操作

WFST是基于半环代数理论的,详细的半环理论可以看上面Mohri的论文或者找其它资料学习。简单的一个半环代数结构定义为

,它包含元素集合K,两个基本操作和两个基本单元。半环必须满足以下定理:

在语音识别中经常使用的有Log半环和热带半环:

⊕log is defined by: x ⊕log y = −log(e−x + e−y).

合并操作

合并操作用于将两个WFST合并成,合并可以用于存在多个WFST时,将它们合并到一个WFST,用于语音识别中。如下,将A和B

组合操作

组合操作用于合并不同层次的WFST,用于将前一个WFST的输出符号同后一个WFST的输入符号做合并,生成由前一个WFST的输入符号到后一个WFST输出符号的状态机。假设WFST A中有一条转移弧,输入x,输出y,权重是a;WFST B中有一条转移弧,输入是y,输出是z,权重是b,那么A和B的组合后,就会生成一条输入是x,输出是z,权重为ab。下图为对a和b做组合操作

确定化操作

确定化操作用于去除WFST的冗余,对于WFST的每一个状态,它的每一个状态对于同一个输入符号,只有一个转移弧。确定化的加权有限状态器的优势在于它的非冗余性,对于确定化的加权有限状态器,一个给定的输入符号序列最多只有一条路径与其对应,这样可以降低搜索算法的时间和空间复杂度。下图为对a做确定化操作,得到b

权重推移

权重前推操作将转移弧的权重都向加权有限状态器的初始状态推移,这样在采用搜索算法去找到最大或者最小路径时,可以在早期就丢弃一些不可能的路径。下图为对a做权重前推操作,得到b

WFST在语音识别中的应用

在语音识别中,隐马尔可夫模型(HMM)、发音词典(lexicon)、n-gram语言模型都可以通过WFST来表示。对于语音识别,其目标函数是:

其中p(O|W)为声学模型,p(W)为语言模型。将上述公式贝叶斯展开:

其中V是音素序列,P(V|W)表示单词W的发音概率。另外,P(O|V,W)的概率只与V有关,P(O|V,W) = P(O|V)

在语音识别中,通常会对概率取log运算,所以上式等同于下面:

基于上述公式,可以将语音识别分成三个部分,如下:

表达式

知识源

权重意义

WFST表示

-logP(W)

语言模型

wG(W→W)

G

-logP(V/W)

发音词典模型

wL(V→W)

L

-logP(O/V)

声学模型

wH(O→V)

H

采用知识源的方式替换上述的公式,得到:

一个完整的语言识别加权有限状态转换器可以表达为:

。在引入音素窗后,上式在H后增加音素窗的变化

通常N的组成由后往前进行,先进行LG的组合,再进行CLG的组合,最后进行HCLG的组合,即N = Min(H C Min(Det(L * G)))。

语言模型G

在语音识别中,语言模型用n-gram模型表示,常用的有bigram、trigram。n-gram模型与一个(n-1)阶马尔可夫链相似,所以可以用WFSA来表示。如下是一个简单的语言模型”start it”和“stop it”转成WFSA的示例:

发音词典模型L

发音词典模型表示一个单词有哪些音素序列串构成。当用WFST来表示L模型时,输入是音素串,到达终止状态时,输出一个相对应的单词。

上下文相关音子模型C

上下文相关音子模型用于将三音子序列转换为音素序列,这通常很容易构造,只需要输入三音子串,输出其central音素即可。

声学模型H

声学模型用HMM来进行建模,对于输入的MFCC特征,通过GMM或者DNN计算出当前帧对应的HMM发射态的概率。

将上述的HCLG通过组合以及相关的操作后,得到一个完整的解码图,配合GMM或者DNN模型去计算每一帧对应HMM状态的概率,采用Viterb或者beam-search算法,可以得到完整语音对应权重最小的文本,即为最后的解码结果。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

李炼的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

搞懂深度学习到底需要哪些数学知识

1002
来自专栏机器之心

LSTM、GRU与神经图灵机:详解深度学习最热门的循环神经网络

选自MachineLearningMastery 作者:Jason Brownlee 机器之心编译 参与:熊猫 循环神经网络是当前深度学习热潮中最重要和最核心的...

3419
来自专栏人工智能LeadAI

卷积神经网络中PET/CT图像的纹理特征提取

Author: Zongwei Zhou 周纵苇 Weibo: @MrGiovanni Email: zongweiz@asu.edu Please cit...

3403
来自专栏人工智能LeadAI

机器学习实战 | 数据探索(缺失值处理)

点击“阅读原文”直接打开【北京站 | GPU CUDA 进阶课程】报名链接 接着上一篇:《机器学习实战-数据探索》介绍,机器学习更多内容可以关注github项目...

3336
来自专栏梦里茶室

读论文系列:Object Detection CVPR2016 YOLO

CVPR2016: You Only Look Once:Unified, Real-Time Object Detection 转载请注明作者:梦里茶 ? ...

3849
来自专栏小鹏的专栏

一个隐马尔科夫模型的应用实例:中文分词

什么问题用HMM解决 现实生活中有这样一类随机现象,在已知现在情况的条件下,未来时刻的情况只与现在有关,而与遥远的过去并无直接关系。 比如天气预测,如果我...

2527
来自专栏python开发者

神经网络反向传播梯度计算数学原理

[神经网络]反向传播梯度计算数学原理 1 文章概述 本文通过一段来自于Pytorch官方的warm-up的例子:使用numpy来实现一个简单的神经网络。使用基本...

33613
来自专栏大数据挖掘DT机器学习

R语言与机器学习(分类算法)logistic回归

由于我们在前面已经讨论过了神经网络的分类问题,如今再从最优化的角度来讨论logistic回归就显得有些不合适了。Logistic回归问题的最优化问题可以表述为:...

4274
来自专栏PPV课数据科学社区

【学习】R语言与机器学习(分类算法)logistic回归

由于我们在前面已经讨论过了神经网络的分类问题,如今再从最优化的角度来讨论logistic回归就显得有些不合适了。Logistic回归问题的最优化问题可以表述为:...

2644
来自专栏杨熹的专栏

一个隐马尔科夫模型的应用实例:中文分词

什么问题用HMM解决 现实生活中有这样一类随机现象,在已知现在情况的条件下,未来时刻的情况只与现在有关,而与遥远的过去并无直接关系。 比如天气预测,如果我们知道...

3476

扫码关注云+社区