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