在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) ,权重(weight)];弧在文件中的顺序可以交换,但是初始状态的弧必须在第一行。最后一行为最终状态的编号和最终状态的权值。这个文件描述的是FST的结构,根据这个文件可以得到下图:

从上图可以看出字符串ac到xz的转换的权重为0.5+2.5+3.5=6.5.

关于这个图的说明放一段openFst教程中的原话:The initial state is label 0. There can only be one initial state. The final state is 2 with final weight of 3.5. Any state with non-infinite final weight is a final state. There is an arc (or transition) from state 0 to 1 with input label aoutput label x, and weight 0.5. This FST transduces, for instance, the string ac to xz with weight 6.5 (the sum of the arc and final weights). Note we have assumed the library default Weight type for this description.

isyms.txt文件内容为:

<eps> 0
a 1
b 2
c 3

osyms.txt文件内容为:

<eps> 0
x 1
y 2
z 3

isyms.txt和osyms.txt是输入标签和输出标签对应的符号。因为FST的输入标签和输出标签在内部都是用数字表示的,所以要有这么两个符号表。可以使用任意的非负整数作为符号的ID。那个为0的标签ID是为epsilon标签保存的,epsilon是一个空字符串。上面的例子中并没有用到epsilon这个标签,openFST的教程上面说以后会用到,具体干什么我也还不清楚。

以上内容主要来自openFst官网的FstQuickTour。

语音识别学习记录 [kaldi中的openfst]相关推荐

  1. Sphinx语音识别学习记录 (五)-错误调试

    CMUSphinx系列目录 如何解决使用别的声学模型的时候出现的问题 使用别人训练好的hmm模型的时候一直报以下错误(我这里使用的Communicator_40.cd_cont_4000这个模型) I ...

  2. 语音识别学习笔记(三)【动态时间归正的识别技术】

    语音识别学习笔记(三)[动态时间归正的识别技术] 1.概述  在语音识别中,简单的将输入模板和参考模板进行比较存在很大的缺陷,因为语音信号具有很大的随机性,即便是同一个人在不同时刻说同一句话,也不可能 ...

  3. 语音识别学习笔记(二)【基于矢量量化的识别技术】

    语音识别学习笔记(二)[基于矢量量化的识别技术] 概述  量化分为标量量化和矢量量化(Vector Quantization,VQ).标量量化是将采样后的信号值逐个进行量化,而适量量化是将若干个采样信 ...

  4. 语音识别学习笔记(一)【概述】

    语音识别学习笔记(一)[概述] 概述:  1)语音识别是机器通过识别和理解过程把人类的语音信号转变成相应的文本或命令的技术.  2)集 声学.语音学.计算机.信息处理.人工智能等于一身的综合技术. 难 ...

  5. kaldi中hashlist阅读总结

    kaldi中的解码算法里,需要记录很多的令牌(token).每个令牌,都是一条路径的"头",通过这个令牌回溯,就可以得到一条完整的路径.如果解码到最后一帧,从所有的令牌中,找到得分 ...

  6. kaldi中的声纹识别

    kaldi中的声纹识别 文章目录 kaldi中的声纹识别 kaldi的安装 运行aishell例程 使用TIMIT数据库进行声纹识别 kaldi中声纹识别的流程 我的博客:https://yutouw ...

  7. kaldi中的数据准备

    数据准备 译者:V (shiwei@sz.pku.edu.cn)  水平有限,如有错误请多包涵.   @wbglearn校对. 介绍 在运行完示例脚本后(见Kaldi tutorial),你可能会想用 ...

  8. NET问答: 如何记录 EntityFramework 中的所有 SQL 日志 ?

    咨询区 PC.: 我正在 MVC5 项目中使用 EF 6.0,为了方便调试和获取性能指标,我想记录 EF6 中的所有 sql  日志. 在 Java/Hibernate 中,我只需要设置 hibern ...

  9. C#开发笔记,点点细微,处处真情,记录开发中的痛点

    该文章的最新版本已迁移至个人博客[比特飞],单击链接 C#开发笔记,点点细微,处处真情,记录开发中的痛点 | .Net中文网 访问. 概述 本系列文章将会向大家介绍本人实际开发过程中所遇到技术点和心得 ...

最新文章

  1. 会计电算化之Excel
  2. Tomcat启动脚本startup.sh分析
  3. docker redis重启_Docker解决傻瓜式安装软件
  4. “兼职”运维的常用命令
  5. Kunpeng BoostKit 使能套件:大数据场景如何实现“大鹏一日同风起”倍级性能提升?
  6. [转] Asp.net mvc 3 beta 新特性介绍
  7. 计算机网络要点,计算机网络要点
  8. MySQL记录变化工具_MySQL 表记录数对比工具
  9. CGPathAddArc
  10. 数据库系统概论第五版 答案
  11. iPhone 4 Cydia使用教程 精选Cydia源 cydia怎么添加源 Cydia源使用方法 越狱后使用cydia
  12. jmeter基本教程
  13. Java笔试/面试题
  14. C#入门小练习2储蓄计算器程序
  15. Android开发自学教程,安卓面试题及答案2022
  16. 数字化转型再下一城,数字孪生厂商优锘科技宣布完成超3亿元融资
  17. 转生活中的各种食品安全问题
  18. 计算机配置好一点的,怎么了解电脑配置好坏 电脑配置怎么样算好
  19. 【计算智能】模糊控制(一)模糊集合及其基本运算
  20. 新品发布!—— ZStack Mini超融合一体机

热门文章

  1. gossip algorithms
  2. 深入理解Windows域概念
  3. 用Matlab生成Ornstein-Uhlenbeck过程
  4. iOS 小数向上、下取整
  5. C语言的逻辑右移和算术右移
  6. 微信小程序申请医疗-就医服务类目解决办法
  7. 音视频技术开发周刊 | 251
  8. [转载]625线,525线什么意思?
  9. 手机电脑都能用,将照片转成PDF的免费方法
  10. 如何在H5页面中实现长按二维码关注微信公众号?