編者按:本文原作者 Cindi Thompson,美國德克薩斯大學奧斯汀分校(University of Texas at Austin)計算機科學博士,,數(shù)據(jù)科學咨詢公司硅谷數(shù)據(jù)科學(Silicon Valley Data Science,,SVDS)首席科學家,在機器學習,、自然語言處理等領域具有豐富的學術研究和產(chǎn)業(yè)界從業(yè)經(jīng)驗,。雷鋒網(wǎng)編譯。 作為 SVDS 研究團隊的成員,,我們會經(jīng)常接觸各種不同的語音識別技術,,也差不多見證了語音識別技術近幾年的發(fā)展。直到幾年之前,,最先進的語音技術方案大多都是以語音為基礎的(phonetic-based),,包括發(fā)音模型(Pronunciation models),聲學模型(Acoustic Modelling)和語言模型(Language Model)等,。通常情況下,,這些模型大多都是以隱馬爾可夫模型(HMM)和 N-gram 模型為核心的,。未來,我們希望以這些傳統(tǒng)模型為基礎,,探索一些諸如與百度 Deep Speech 等最新的語音識別系統(tǒng)相結(jié)合的新技術,。當然,目前互聯(lián)網(wǎng)上可以找到許多針對這些基礎模型進行解釋,、匯總的文章和資料,,但針對它們之間的差別和特點展開闡述的卻并不多。 為此,,我們對比了五款基于 HMM 和 N-gram 模型的語音識別工具:CMU Sphinx,,Kaldi,HTK,,Julius 和 ISIP,。它們都是開源世界的頂級項目,與 Dragon 和 Cortana 等商業(yè)語音識別工具不同,,這些開源,、免費的工具可以為開發(fā)者提供更大的自由度以及更低的開發(fā)成本,因此在開發(fā)圈始終保持著強大的生命力,。 需要提前說明的是:以下分析大多來源于我們的主觀經(jīng)驗,,同時也參考了互聯(lián)網(wǎng)上的其他信息。而且這篇文章也并非一個覆蓋所有語音識別開源工具的匯總類文章,,我們只是對比了其中五款相對更主流的產(chǎn)品,。另外,HTK 并不是嚴格開源的,,它的代碼并不能重新組織發(fā)布,,也不能用于商業(yè)用途,。 想知道更多語音識別工具的用戶請點擊以下鏈接,,其中列出了幾乎所有開源/非開源的語音識別工具,非常全面,。 https://en./wiki/List_of_speech_recognition_software 編程語言:根據(jù)你對不同編程語言的熟悉程度,,你可能會更偏愛某一種工具。如上圖所示,,這里列出的五款工具中,,除了 ISIP 只支持 C++ 之外,全都支持 Python,。你可以直接在它們的官網(wǎng)找到不同語言對應的下載鏈接,。不過,Python 版有可能并不會覆蓋工具包的全部功能,,有些功能還可能是為其他語言的特性單獨設計的,。另外值得注意的是,,CMU Sphinx 還支持 Java、C 和其他更多語言,。 開發(fā)者活躍度:這里列出的五個項目均源于學術研究,。 從名字也能看出,CMU Sphinx 是一款源于卡內(nèi)基梅隆大學的產(chǎn)品,。它的研發(fā)歷史大約可以追溯到 20 年前,,目前在 GitHub 和 SourceForge 平臺同步更新。在 GitHub 平臺有 C 和 Java 兩個版本,,而且據(jù)說分別只有一個管理員維護,。但在 SourceForge 平臺卻有 9 個管理員和十幾個開發(fā)者。 Kaldi 源于 2009 年的一場研討會,,代碼目前在 GitHub 平臺開源,,共有 121 位貢獻者。 HTK 始于 1989 年的劍橋大學,,曾一度商業(yè)化,,但目前又回歸劍橋。如前所述 HTK 現(xiàn)在并不是一款嚴格意義的開源工具,,而且更新緩慢(雖然它的最新版本更新于 2015 年 12 月,,但前一個版本的更新時間卻是 2009 年,中間隔了差不多 6 年時間),。 Julius 始于 1997 年,,最后一個主要版本更新于 2016 年 9 月,據(jù)稱其 GitHub 平臺有三名管理員維護,。 ISIP 是第一個比較先進的開源語音識別系統(tǒng),,起源于密西西比州。它主要在 1996 年到 1999 年之間研發(fā),,最后一個版本發(fā)布于 2011 年,,在 GitHub 平臺出現(xiàn)之前就已經(jīng)停止更新了。 社區(qū)活躍度:這一部分我們考察了上述五個工具的郵件和社區(qū)討論情況,。 CMU Sphinx 的論壇討論熱烈,,回帖積極。但其 SourceForge 和 GitHub 平臺存在許多重復的 repository,。相比之下,,Kaldi 的用戶則擁有更多交互方式,包括郵件,、論壇和 GitHub repository 等,。HTK 有郵件列表,但沒有公開的 repository,。Julius 官網(wǎng)上的論壇鏈接目前已經(jīng)不可用,,其日本官網(wǎng)上可能有更詳細的信息,。ISIP 主要用于教育目的,其郵件列表目前已不可用,。 教程和示例:CMU Sphinx 的文檔簡單易讀,,講解深入淺出,且貼近實踐操作,。 Kaldi 的文檔覆蓋也很全面,,但是在我看來更難理解。而且,,Kaldi 同時包括了語音識別解決方案中的語音和深度學習方法,。 如果你并不熟悉語音識別,那么可以通過對 HTK 官方文檔(注冊后可以使用)的學習對該領域有一個概括的認識,。同時,,HTK 的文檔還適用于實際產(chǎn)品設計和使用等場景。 Julius 專注于日語,,其最新的文檔也是日語,,但團隊正在積極推動英文版的發(fā)布。 以下鏈接提供了一些基于 Julius 的語音識別樣例,。 https://github.com/julius-speech/dictation-kit 最后是 ISIP,,雖然它也有一些文檔,但是并不系統(tǒng),。 預訓練模型:即使你使用這些開源工具的主要目的是想要學習如何去訓練一個專業(yè)的語音識別模型,,但一個開箱即用的預先訓練好的模型仍然是一個不可忽略的優(yōu)點。 CMU Sphinx 包括英語,、法語,、西班牙語和意大利語在內(nèi)的諸多可以直接使用的模型,詳情可以參考它的說明文檔,。 Kaldi對現(xiàn)有模型進行解碼的指令深藏在文檔中,,不太容易找到,但我們?nèi)匀话l(fā)現(xiàn)了貢獻者在 egs/voxforge 子目錄下基于英文 VoxForge 語料庫訓練好的一個模型,,并且還可以通過 online-data 子目錄下的一個腳本直接運行,。詳情可以參考 Kaldi 項目的 repository,。 我們沒有深入挖掘其他三個軟件包的模型訓練情況,,但它們應該至少包含一些簡單可用的預訓練模型,而且與 VoxForge 兼容(VoxForge 是一個非?;钴S的眾包語音識別數(shù)據(jù)庫和經(jīng)過訓練的模型庫),。 未來我們將陸續(xù)推出關于 CMU Sphinx 具體應用和如何將神經(jīng)網(wǎng)絡應用于語音識別的更多文章,歡迎大家繼續(xù)關注,。 來源:kdnuggets,,雷鋒網(wǎng)編譯 雷鋒網(wǎng)相關閱讀: 從SwiftScribe說起,,回顧百度在語音技術的七年積累 IBM語音識別能力逼近人類水平,獲深度學習巨頭Yoshua Bengio盛贊 百度首席科學家吳恩達:大腦能在一秒內(nèi)完成的任何工作,,都會被AI取代 |
|