在Kaldi tutorial: Overview of the distribution中介绍了一个使用openfst的例子。先来介绍一下这个例子,再来说明FST(finite-state transducers,有限状态机)如何应用到语音识别中。
首先有三个文件,text.fst、isyms.txt、osyms.txt。
text.fst文件的内容为(请无视前面的行号):
0 1 a x .5
0 1 b y 1.5
1 2 c z 2.5
2 3.5
前三行是FST中的弧(arc),格式为[ 起点(src),终点(dest),输入标签(ilabel),输出标签(olabel) ];弧在文件中的顺序可以交换,但是初始状态的弧必须在第一行。最后一行为最终状态的编号和最终状态的权值。这个文件描述的是FST的结构,根据这个文件可以得到下图:
下图代表的意义稍后说明。
isyms.txt文件内容为:
<eps> 0
a 1
b 2
c 3
osyms.txt文件内容为:
<eps> 0
x 1
y 2
z 3
isyms.txt和osyms.txt是输入标签和输出标签对应的符号。
(草稿)