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

2017-08-21 09:57:32 浏览数 (1)

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算法,可以得到完整语音对应权重最小的文本,即为最后的解码结果。

0 人点赞