橫向對比5大開源語音識別工具包,CMU Sphinx最佳
目前開源世界里存在多種不同的語音識別工具包,它們為開發者構建應用提供了很大幫助。這些工具各有哪些優劣?數據科學公司 Silicon Valley Data Science 為我們帶來了 5 種流行工具包的深度橫向對比。此前,他們曾為我們帶來過流行深度學習框架的對比:《從 TensorFlow 到 Theano:橫向對比七大深度學習框架》。
作為深度學習研發團隊的一員,我們對于循環神經網絡(RNN)和其他語音識別需要用到的方法都有所涉及。在幾年之前,業內***的語音識別系統還是基于語音分析的方法,包含發音、聲學和語言模型。通常,這些方法包含 n-gram 語言模型,以及隱馬爾科夫模型(HMM)。在此,我們以這種模型作為基準,試圖對比目前流行的一些語音識別方法。迄今為止,我們很難看到有人對開源語音識別模型進行過真正對比,希望本文可以拋磚引玉,為大家帶來一些幫助。
本文回顧了使用傳統 HMM&n-gram 語言模型的開源語音識別工具包。對于用戶而言,大多數人都會知道 Siri 或 Cortana 這樣的消費產品。而對于研發工程師來說,更靈活、更具專注性的解決方案則更符合需求,很多公司都會研發自己的語音識別通路。以下是目前開源世界上出現的流行工具包,以及我們對它們的各項評價。
開源免費語音識別工具包橫向對比
本次分析基于 svds 開發者的主觀經驗和開源社區的已有消息。上表列出了目前大部分流行的語音識別軟件(但略微超出開源的范疇)。2014 年 Gaida 等人的一篇論文評估了 CMU Sphinx、Kaldi 和 HTK。其中 HTK 嚴格意義上來說并不是開源的,因為其代碼并不能重用或作為商業用途使用。
編程語言
因為用戶使用語言的情況各不相同,你可能會對特定的工具包有自己的偏好。以上工具除了 ISIP 以外都有 Python 的封裝,雖然在一些情況下,Python 封裝并不包括核心代碼的全部功能。CMU Sphinx 也包含了其他幾種編程語言,如 Java 和 C。
開發工作
在學術研究中,所有列出的項目都包含它們的來源。CMU Sphinix,顯而易見,從它的名字就能看出來是卡內基梅隆大學的產物。它已經以某些形式存在了 20 年了,現在它在 Github(C (https://github.com/cmusphinx/pocketsphinx) 版本和 Java (https://github.com/cmusphinx/sphinx4) 版本)和 SourceForge (https://sourceforge.net/projects/cmusphinx/) 上都開源了,而且兩個平臺上都有***活動。Github 上的 Java 版本和 C 版本都只有一個貢獻者,但是這并不影響此項目的歷史真實性(在 SourceForge repo 上有 9 個管理人員還有很多開發者)。
Kaldi 從 2009 年的研討會起就有它的學術根基了,現在已經在 GitHub (https://github.com/kaldi-asr/kaldi) 上開源,有 121 名貢獻者。HTK 始于 1989 年的劍橋大學,已經商用一段時間了,但是現在它的版權又回到了劍橋大學并且已經不是開源軟件了。它的***版本更新于 2015 年 12 月,先前發布于 2009 年。Julius (http://julius.osdn.jp/en_index.php) 起源于 1997 年,***一個主要版本發布于 2016 年 9 月,有些活躍的 Github repo 包含三個貢獻者,現在已經不大可能反應真實情況了。ISIP 是***個***型的開源語音識別系統,源于密西西比州立大學。它主要發展于 1996 到 1999 年間,***版本發布于 2011 年,但是這個項目在 Github 出現前就已經不復存在了。
社區
這里我們關注一下郵件、討論群還有開發者團體的情況。CMU Sphinx 在它的 repos 上有著在線交流論壇和積極的關注。然而,我們想知道復制 SourceForge 和 GitHub 的 repo 是否阻礙了更多的投稿。相比之下,Kaldi 不僅有著論壇和討論群,還有一個活躍的 GitHub repo。HTK 也有討論群但是沒有開放資源庫。Julius 網站上的用戶論壇壞掉了,但是在日本站里可能有更多的信息。ISIP 主要用于教育目的,而且郵件清單檔案現在已經不再實用。
教程和例子
CMU Sphinx 的教程非常具有可讀性,易于學習,Kaldi 的文檔也很全面,但似乎更難理解。不過 Kaldi 的內容覆蓋了語音識別中的語音和深度學習方法。如果你缺乏語音識別的知識,HTK 的教程文檔(注冊用戶可看)對這一領域有詳盡的描述。Julius 項目聚焦于日語,***的資料就是 Japanese2 (https://www.svds.com/open-source-toolkits-speech-recognition/#fn2),但是他們也主動地譯成英文,并且也提供相關資料;這里列有一些運行語音識別的實例(https://github.com/julius-speech/dictation-kit)。ISIP 也有一些資料,但是有些難以瀏覽。
訓練模型
即使你使用這些開源工具的***理由是訓練特定的識別模型,其他語音功能也會是它們吸引人的地方。CMU Sphinx 包含英語和很多其他即開即用的模型,在該項目 GitHub 的 redme 上,我們可以很容易地找到它們。而 Kaldi 對現有模型進行解碼的指令深深地隱藏在文檔中,我們最終在 egs/voxforge 子目錄的 repo 下發現了一個英語 VoxForge 數據集訓練后的模型,而識別功能在 online-data 子目錄下。其他三個軟件包沒有容易找到的功能,但它們至少都有適配 VoxForge 格式的簡單模型,后者是一個語音識別數據和訓練模型的著名眾包網站。
原文:http://www.kdnuggets.com/2017/03/open-source-toolkits-speech-recognition.html
【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】