標籤:

準備學習研究一下語音識別 請問有哪些值得推薦的書籍 論文 及開源庫?


最經典的教材當然是傳奇大牛前貝爾實驗室主任L. Rabiner教授和美國國家工程院院士庄炳煌教授合著的Fundamentals of Speech Recognition。書的內容雖然比較舊,但對於語音識別基本問題和基礎的闡述非常精闢,如果打算深入研究語音技術方向非常推薦。書的缺點還包括比較難找到,以及缺少中文翻譯(由於語音識別涉及語音學、生理學、統計學等多個領域,這導致書的閱讀門檻比較高)。

另外就是黃學東博士的Spoken Language Processing。黃學東博士是微軟公司語音團隊的負責人,美國十大亞裔工程師等等,是李開復當年在CMU和微軟公司的研究夥伴,堪稱業界傳奇。書的合著者還包括Alex Acero博士和洪小文博士。Alex Acero博士曾任微軟公司和蘋果公司語音技術負責人,也是IEEE SPS社群(語音技術的主要社群之一)的前主席。洪小文博士的訪談和新聞國內IT網站經常有,搜一下就可以看到了。這本書介紹了到DNN出現之前的主流語音識別技術,深入淺出,考據詳實。並且由於除了端到端技術之外,各種神經網路技術在語音中的主流應用相對於傳統技術並沒有顛覆性改變,所以這本書在目前依然非常實用,絕對是居家旅行的必備讀物。

還有就是要推薦劍橋大學的HTK工具包的手冊,HTK Book。這本書/手冊僅3.4.1版總引用數就達到數千次。書的作者主要來自劍橋大學,包括兩位英國皇家工學院院士:前副校長Steve Young教授和前機器智能實驗室主任Phil Woodland教授,他們都是重要的學術權威。並且書的其他作者(前劍橋大學學生)也都赫赫有名,比如Apple Siri語音團隊的負責人Gunnar Evermann、研發出許多流行技術並創造了Kaldi工具包的Dan Povey博士等等。HTK對於語音界的主要貢獻是通過幾十年的開發和共享,幫助塑造了主流的語音識別技術,比如確立HMM為主的技術路線,發明基於決策樹的狀態共享技術、MLLR準則的自適應技術、最小貝葉斯風險的序列化訓練等等。並且這些技術也是今天神經網路大行其道時少有的仍在被企業和學界同時廣泛使用的經典語音技術。HTK Book雖然是英文版,但寫作高度凝練,非常簡單易讀,許多90年代末到2000年初開始從事語音研究的人都是從閱讀HTK Book的閱讀開始的,並且可以找到很多的中文翻譯。2015年底HTK Book更新了3.5的alpha版,添加了神經網路相關的內容。

對於神經網路和語音識別結合方面,由於這個最近發展很快,所以更好的辦法是閱讀最新的重要論文。但同時神經網路是一個非常經典的領域,神經網路專門的經典著作很多,比如微軟劍橋研究院院長C. Bishop教授早年寫作的Neural Networks for Pattern Recognition一書,是由深度學習的發明人G. Hinton教授推薦的,堪稱神經網路入門必讀。Bishop教授還把一些神經網路的主要內容內容重新摘要寫作後放在了經典無比的Pattern Recognition and Machine Learning一書中。最後最近微軟公司研究院的俞棟博士和鄧力院士合著的Automatic Speech Recognition: A Deep Learning Approach非常流行,網上曾經可以找到電子版,很多人都在讀,兩位作者是DNN在語音識別應用的主要推手。另外樓上有人推薦的斯坦福大學Dan Jurafsky教授寫的Speech and Language Processing也很不錯,前一半是語音識別相關的內容,定位和Spoken Language Processing一書有些接近,後版本是關於自然語言方面的內容。

HTK( http://htk.eng.cam.ac.uk )是劍橋大學開發的一個非常經典的語音識別工具包,全球大約有10萬專業用戶。HTK使用C語言編寫的,最早的代碼已經有20多年的歷史了。關於HTK的一個故事是與它有關的劍橋Entropy公司曾經被微軟公司購買,在獲得Entropy的語音團隊後,微軟公司又將HTK的版權還給了劍橋大學,日後成為了免費的開源工具。HTK的最大優點是代碼和功能非常穩定,並且集成的都是最主流的語音識別技術;並且HTK的很多擴展包本身也非常經典,比如最重要的統計語音合成工具包HTS。HTK的另一大優點是它有相對最完善的文檔手冊,也就是前文提到的HTK Book。HTK的缺點之一是更新相對緩慢,並且部分代碼由於編寫時間比較久,需要一定的更新。HTK在2015年底已經更新了包含有神經網路技術的3.5 beta版本。HTK的另一個缺點是目前缺乏易用的腳本系統,HTK附帶的資源管理(RM)數據集的例子雖然涵蓋了GMM-HMM、自適應、區分性訓練、DNN等主要技術,但部分腳本使用tcsh編寫,不方便上手。

對於工具包方面,Kaldi( Kaldi · GitHub )是一個使用C++編寫的全面向對象的工具包。Kaldi是傳說中發現咖啡的咖啡之神的名字,用這個名字的意思據說是希望工具包像咖啡那樣容易、方便、流行,具體方式之一包括發布大量比較適合初學者上手的可以直接運行的腳本和例子,所以據說國內很多語音公司都是直接使用Kaldi或從Kaldi的源代碼學習技術。Kaldi是由前微軟公司研究院的Dan Povey博士與捷克的BUT大學聯合開發的。另外值得一提的是,Dan Povey博士也是HTK的作者之一,於是Kaldi和HTK的技術思路比較相近,但經過若干年的發展,Kaldi集成的技術已經多於HTK。這部分是因為HTK開發協議不同:由於Kaldi用戶協議比較開放,於是經常可以第一時間集成很多新技術。但優點和缺點往往是伴生的,Kaldi的一個缺點是目前由於貢獻者比較多,所以代碼的branch比較多,並且有時會有不穩定或有問題的代碼更新,所以如果使用最新的代碼時常會遇到問題,甚至有時有版本前後不兼容的情況。所以使用Kaldi比較新的功能的話,推薦多比較幾個branch看看。並且Kaldi暫時缺少完善的手冊,所以入門的話可以考慮多向有經驗的用戶討論請教。

最近另一個非常值得推薦的新工具包是微軟公司由俞棟博士領銜開發的CNTK( Computational Network Toolkit (CNTK) ),其中關於神經網路的功能非常強大,據說優於Kaldi中許多常用的神經網路branch。CNTK的一大亮點是定位於多種問題的組合,比如機器翻譯+語音識別等等。但這樣也導致CNTK並不是完全專業的語音識別工具,需要配合Kaldi等工具使用。據說微軟公司正在對CNTK進行優化和更新,未來優化後的版本有望從源代碼質量到運行效率都有顯著提升。另外,CNTK毫無疑問也是以上工具包中對Windows平台支持最好的,比較符合國內的使用習慣。

另外,其它的語音識別工具包還包括CMU的Sphinx、德國亞琛工業大學的RWTH ASR等。但Sphinx和以上工具包的功能差距比較大;而RWTH ASR雖然寫作很嚴謹,但多年來一直未能普及,用戶比較少。不久前Google還推出了Tensor Flow,定位和CNTK比較接近,但對於最初的版本非議比較多,並且該工具包目前不具備進行語音識別中聲學模型建模需要的一些重要功能。Tensor Flow的前途應該取決於Google公司後續開發的情況。


經典教材:

Huang, Acero Hon, Spoken Language Processing

Jurafsky Martin, Speech and Language Processing

經典論文:

Rabiner, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition

(這篇是講HMM的,倒不是語音識別的綜述)

開源庫:

玩Kaldi吧。


不建議學。

原因,如果你是科班的博士,有幾年專業研究這個行業的時間,還好。識別是個關乎語言學,語音學、以及信號處理、計算機科學的交叉學科,需要大量的時間。

如果僅僅是研究模式識別沒問題。


俞棟的新書ASR,涉及的內容還挺多的,而且比較新。開源庫的話...torch,cntk等...

因為剛接觸用的比較少所以寫的不全,這裡補充一下開源庫

mxnet,tensorflow,kaldi,等


比較基礎的有宗成慶的《統計自然語言處理》


CNTK簡介_cntk吧_百度貼吧


推薦閱讀:

政府監控私人電話,記錄的主要是哪些信息?
如何理解語音識別的 lattice-free MMI 聲學訓練?
Kaldi里的DNN訓練時的輸入是什麼,三音素的GMM訓練好後為什麼要做數據的強制對齊?
微軟有哪些語音識別技術積累,Cortana 能否跟 Siri 和 Google Now 抗衡?
想學語音識別技術用什麼教材入門比較好?

TAG:語音識別 |