kaldi语音识别工具_2011年

kaldi语音识别工具_2011年
kaldi_asru.pdf

I 概述

kaldi 一款免费、开源的语音识别研究工具。
支持  SGMM  subspace GMM. 线性变换,仿射变换
仿射变换(Affine Transformation或 Affine Map, 即:y=wx+b)是一种二维坐标到二维坐标之间的线性变换,它保持了二维图形的“平直性”

kaldi的目标是 拥有现代和灵活的代码,易于理解,修改和扩展。
但 kaldi 是基于 OpenFST, 线性代数和 非严格许可的要求开发的。

kaldi依赖两个外部库OpenFST, 线性代数。 并给予这两个外部库构建了很多C++函数模块/工具。
模块 DecodableInterface 桥接两个工具(OpenFST & 线性代数)集。
通过C++的命令行工具来用这些工具。每个命令行都有明确的功能和小的参数集。工具可连结。
应用层是用脚本调用这些命令行工具。
为了防止代码腐烂,在增加新特性的时候,一般是增加新代码和新的命令行工具而不是修改现有代码。

II 声学建模
目标是 支持传统的GMM,也支持子空间GMM,还易于支持新的建模方法。
GMM的am模型 对应pdf-id,是HMM的状态集合。
能设置HMM的结构图,
kaldi中的SGMM是参考了论文: D. Povey, L. Burget et al., “The subspace Gaussian mixture model—
A structured model for speech recognition,” Computer Speech & Language,
vol. 25, no. 2, pp. 404–439, April 2011
SGMM的类实现 AmSgmm表示所有的pdf 。SGMM没有单一的pdf。
注: SGMM已经过时了。

III 音素决策树
传统的实现是: 每个音素的HMM状态有一个决策树,问的问题是左/右边的音素是什么之类的。
但kaldi的实现是自动生成问题。对同一个音素在不同的版本之间共享决策树根。

IV 语言模型
工具有 IRSTLM,  SRILM

V 创建解码图WSFT
输入端是文本相关的状态(pdf-ids).但在kaldi中,一个音素可以有好几个pdf-ids,
为了解决这个问题,kaldi使用transition-id

VI 解码器
解码器指C++类,实现了核心解码算法。
解码器不需要声学模块,只需要简单的计算声学模型分数的方法。
命令行的解码器很简单,都只做一路解码,只适合一个特点的解码器和声学模型类型。
多路解码是在脚本层实现的。

猜你喜欢

转载自blog.csdn.net/smith24122412/article/details/84568032