對Kaldi的設計進行描述,Kaldi是一個免費的,開源的工具箱用於語音識別研究。Kaldi提供基於有限狀態變換器(finite-state transducers,使用OpenFst)的語音識別系統,以及詳細的文件和腳本用於構建完整的識別系統。
Kaldi使用C++編寫,核心庫支持任何語音上下文大小的建模,子空間的高斯混合模型(SGMM)以及標准的高斯混合模型的聲學模型建模,以及所有經常使用的線性變換和仿射變換。
Kaldi源碼以Apache License V2.0協議發布。
Kaldi的目標:具有現代和靈活的代碼,便於理解,協議和擴展。使用類Unix系統和Microsoft Window剩下的通用的編譯工具編譯即可。
關於自動語音識別(Automatic speech recognition,ASR)的研究者可以有多種開源工具箱的選擇用於構建一個識別系統。著名的有:HTK,Julius(這兩種C語言實現),Sphinx-4(Java語言識別),RWTH ASR工具箱(C++實現)。
但是,對於Kaldi的特定需要: finite-state transducer(FST),擴展的線性代數支持和non-restrictive license,導致Kaldi的開發。
Kaldi包含的重要特性:
- 集成Finite State Transducer(編譯OpenFst工具箱,作為一個庫)
- 擴展的線性代數支持
- 可擴展設計
- 開源的license —— Apache v2.0, 最小限制的開源協議
- 完整的方法 —— Kaldi提供了完整的方法用於構建語音識別系統
- 周密的測試 —— 基本上所有的代碼都有相應的測試例程
Kaldi的主要用途是聲學模型研究,因此,最相近的競爭者是HTK和RWTH ASR工具箱(RASR)。Kaldi相對與這些競爭者的主要優勢:現代的,靈活的,清晰的結構化代碼以及比較好的WFST和數學支持,同時使用的開源license比HTK和RASR更開放。
按如下步驟對Kaldi工具箱進行介紹
1. Kaldi代碼結構和設計選擇,包括語音識別系統的各個部件介紹
2. 特性提取介紹
3. 聲學模型
4. 語音決策樹
5. 語言模型
6. 解碼器(decoder)
7. 簡要介紹基准結果