Kaldi
Kaldi 是一个开源的语音识别系统,使用 Apache v2.0 开源协议,由 Daniel Povey 主导开发,在很多语音识别测试和应用中广泛使用。但它依赖大量脚本语言,且核心算法是用 C++ 编写的,对声学模型的更新和代码调试带来一定难度。它的主要目标用户是语音识别的研究者(而不是普通的用户)。
Kaldi 的目标和 HTK 类似,它需要提供现代和灵活的代码,使用 C++ 实现,容易修改和扩展。它包括如下重要特性:
-
代码级别集成 WFST
Kaldi 是把 OpenFST 作为一个库编译进来。(而不是脚本的方式集成)。
-
广泛的线性代数支持
Kaldi 包括封装了标准 BLAS 和 LAPACK 库的矩阵库。
-
可扩展的设计
比如,Kaldi 中的 decoder 是基于模板,模板的对象根据(frame, fst-input-symbol)来计算 score。这就意味着 decoder 可以很容易的用神经网络梯度 GMM 模型。
-
开源协议
基于 Apache 2.0 开源协议,最自由的开源协议。
-
完整的 recipe
对于很多常见语音数据集(主要是 LDC 的数据,当然也有一些其它开源数据集)都提供完整的 recipe,从而可以完整的复现整个过程。
包含完整的 reciple 是 Kaldi 的重要特性。这样其他人就可以轻松的复现整个实验过程。
GitHub 地址:https://github.com/kaldi-asr/kaldi