OfficialKaldi(一)| 關於Kaldi專案(翻譯註解)
什麼是Kaldi?
Kaldi是使用C ++編寫的語音識別工具包,並根據Apache License v2.0獲得許可。Kaldi供語音識別研究人員使用。有關更詳細的歷史記錄和貢獻者列表,請參見Kaldi專案的歷史記錄。
卡爾迪(Kaldi)這個名字
根據傳說,卡爾迪是衣索比亞的牧羊人,發現了咖啡植物。
Kaldi與其他工具箱
Kaldi的目標和範圍與HTK相似。目標是擁有易於修改和擴充套件的用C ++編寫的現代而靈活的程式碼。重要功能包括:
-
與有限狀態感測器(FST)的程式碼級整合
-
我們根據OpenFst工具箱(將其用作庫)進行編譯。
-
廣泛的線性代數支援
-
我們包括一個包裝標準BLAS和LAPACK例程的矩陣庫。
-
可擴充套件的設計
-
我們儘可能以最通用的形式提供演算法。例如,我們的解碼器被模板化在一個物件上,該物件提供由(幀,fst-input-symbol)元組索引的分數。這意味著解碼器可以從任何合適的分數源(例如神經網路)工作。
-
公開許可證
-
該程式碼是根據Apache 2.0許可的,Apache 2.0是可用的限制最少的許可證之一。
-
完整食譜
-
我們的目標是為構建語音識別系統提供完整的配方,這些配方可從語言資料庫(LDC)提供的資料庫中獲得。
釋出完整食譜的目標是Kaldi的重要方面。由於該程式碼是根據允許修改和重新發布的許可證公開提供的,因此,我們鼓勵人們以與Kaldi自己的示例指令碼類似的格式釋出其程式碼以及指令碼目錄。
在給定時間限制的情況下,我們試圖使Kaldi的文件儘可能完整,但是短期內我們不希望生成與HTK一樣詳盡的文件。特別是,HTKBook中有很多入門材料,它們為未入門者介紹了統計語音識別,這可能永遠不會出現在Kaldi的文件中。Kaldi的許多文件都是以這樣的方式編寫的,即只有專家才能使用。考慮到我們的目標受眾是語音識別研究人員或培訓中的研究人員,將來我們希望使其更易於使用。通常,Kaldi並不是用於“假人”的語音識別工具包。它將允許您執行許多沒有意義的操作。
卡爾迪的味道
在本節中,我們嘗試總結Kaldi工具包的一些更通用的品質。在某種程度上,這描述了當前開發人員的目標,並描述了專案的當前狀態。這並不意味著排除工作風格不同的研究人員的貢獻。
-
我們強調通用演算法和通用配方
-
所謂“通用演算法”,是指諸如線性變換之類的事物,而不是某種特定於語音的事物。但是,如果更具體的演算法有用,我們就不會太教條。
-
我們希望可以在任何資料集上執行的配方,而不是必須定製的配方。
-
我們更喜歡證明正確的演算法
-
配方的設計原則上永遠不會以災難性的方式失敗。一直在努力避免可能會失敗的配方和演算法,即使它們在“正常情況下”也不會失敗(例如:FST推壓,通常可以幫助但可能導致崩潰或使某些情況變得更糟)情況)。
-
Kaldi程式碼已經過全面測試。
-
目標是使所有或幾乎所有程式碼都具有相應的測試例程。
-
我們試圖使簡單的情況保持簡單。
-
在構建大型語音工具包時,存在程式碼可能成為很少使用的替代品的危險。我們試圖通過以下方式構造工具箱來避免這種情況。每個命令列程式通常只適用於少數情況(例如,解碼器可能僅適用於GMM)。因此,當您新增新型別的模型時,您將建立一個新的命令列解碼器(呼叫相同的基礎模板程式碼)。
-
Kaldi程式碼很容易理解。
-
即使整個Kaldi工具包可能變得非常龐大,我們的目標還是要使它的每個部分都易於理解,而無需付出太多努力。如果可以提高某些部分的易理解性,我們將接受一些程式碼重複。
-
Kaldi程式碼易於重用和重構。
-
我們的目標是使工具包儘可能鬆散地耦合。通常,這意味著任何給定的標頭都應#include儘可能少的其他標標頭檔案。特別是矩陣庫僅依賴於另一個子目錄中的程式碼,因此它幾乎可以獨立於所有Kaldi其餘部分使用。
專案狀況
當前,我們擁有用於大多數標準技術的程式碼和指令碼,包括所有標準線性變換,MMI,增強型MMI和MCE判別訓練,以及特徵空間判別訓練(例如fMPE,但基於增強型MMI)。我們為《華爾街日報》和《資源管理》以及《總機》提供了工作食譜。由於詞彙和語言模型問題,“配電盤”配方尚未提供最新的結果–為此,我們不使用任何外部資料來源。
注意:在我們打算將版本號用於Kaldi的主要發行版(“ v1”等)的早期階段之後,我們意識到這些型別的發行版與自然的開發風格不太吻合,這是非常連續的。當前,我們僅維護“ master”開發分支,這是您應該使用的版本。另外,經常執行“ git pull”以保持其最新狀態。有關更多詳細資訊,請參見下載和安裝Kaldi。
參考論文中的Kaldi
如果您想在論文中引用Kaldi,可以使用以下參考。
@INPROCEEDINGS { Povey_ASRU2011, 作者= {Povey,Daniel和Ghoshal,Arnab和Boulianne,Gilles和Burget,Lukas和Glembek,Ondrej和Goel,Nagendra和Hannemann,Mirko和Motlicek,Petr和Qian,Yanmin和Schwarz,Petr和Silovsky,Jan和Stemmer,Georg還有Vesely,Karel}, 關鍵字= {ASR,自動語音識別,GMM,HTK,SGMM}, 月=十二月 title = {卡爾迪語音識別工具包}, booktitle = {IEEE 2011自動語音識別和理解研討會”, 年= {2011}, 釋出者= {IEEE訊號處理協會}, 位置= {美國夏威夷大島希爾頓唯客樂渡假村}, note = {IEEE目錄號:CFP11SRW-USB}, }
相關文章
- OpenCV翻譯及專案總結一OpenCV
- OpenCV翻譯專案總結二——Mat翻譯OpenCV
- go-internals 翻譯專案Go
- 快速搭建基於註解的 Dubbo 專案
- Kaldi關於Openfst版本的選擇NFS
- Java 專案現在基於註解開發Java
- 關於es6一篇英文流程請大家翻譯
- Java註解詳解「註解專案實戰」Java
- [譯] 關於使用 GRAPHQL 構建專案的回顧
- UBUNTU安裝kaldi遇到關於not install OpenFst errorUbuntuNFSError
- Aop+自定義註解實現資料字典翻譯
- 註解專題(一)Java元註解,內建註解Java
- 關於一個java專案呼叫另一個java專案的心得Java
- 【譯】關於React Native在專業用於多種規模專案後的思考React Native
- kaldi的編譯安裝與報錯解決方法編譯
- 關於describe和test執行順序的翻譯
- 專案中關於解構的常用用法
- 關於Java中的@Deprecated註解Java
- QT TS檔案翻譯,部分不能正確被翻譯QT
- [非專業翻譯] Mapster - 基於規則的對映
- 關於翻譯包的擴充套件 dimsav/Laravel-translatable套件Laravel
- 關於 Angular 註解 @Injectable() 使用的一些誤區Angular
- 關於事務回滾註解@Transactional
- 關於專案過程度量
- Flux 深度解讀(翻譯)UX
- 官方翻譯 | 有關基於文件的iOS應用開發iOS
- 關於六西格瑪綠帶專案註冊的常見問題
- 關於springmvc中常用的註解,自己也整理一下SpringMVC
- Kaldi學習(一)kaldi在ubuntu上的安裝Ubuntu
- 如何參與翻譯開源專案技術文件?來 Breword
- 關於Apache Flink的那些子專案,你瞭解多少?Apache
- [譯] 關於 Room 的 7 點專業提示OOM
- Flutter-一行註解直接編譯生成資源配置檔案Flutter編譯
- Kaldi在ubuntu 18.04下編譯小結Ubuntu編譯
- [非專業翻譯] Mapster - 物件引用物件
- [非專業翻譯] Mapster - 配置位置
- 關於註解我們需要知道的
- 關於註解我們應該知道的