一個不小心,2018就過完了。上篇文章還是5個月前寫的,實在是令人汗顏啊。不過讓我意外的是,目前居然已經有107人關注這個專欄了。而且前一段時間有兩位已經工作一兩年的朋友打算轉到語音識別這個行業,向我諮詢如果著手準備。這更堅定了我要把這個專欄寫下去的信念。前一段時間確實比較忙,而且近期工作上會有變動,所以今天,踩著2018年的尾巴,貼一篇之前給實驗室師弟師妹和我上述兩位朋友分享過的我入門階段的學習資料。如果一切順利,2019年我會有更多時間維護這個專欄,把我工作和學習中的收穫持續輸出並分享給大家。

  • Linux操作系統

跑腳本訓模型,沒別的選擇,只能是Linux,千萬別指望著在Windows上裝個虛擬機或者Cygwin來湊合,把折騰這個的時間節省下來,去學更多性價比高的東西。

如果之前沒用過Linux操作系統的話,個人推薦《鳥哥的Linux私房菜——基礎學習篇》。需要著重看第一部分第三章「主機規劃與磁碟分區」,第四章「安裝Centos與多重引導小技巧」,學著怎麼安裝配置Linux操作系統;第二部分裡面Linux的一些基本操作也要看;然後就是第三部分的shell編程。這些東西比較細節,不需要佔用大面積時間,每天都看一些,重要的是要配合實踐。做好反覆重裝機器10遍以上的準備。

這裡先挖個坑,有機會我會寫一下語音識別訓練集羣的搭建和配置,如果你不想用刀耕火種的方式去訓練你的模型,調一個參數半個月後看結果,那我想集羣你是肯定需要的。

  • 語音識別理論知識

Speech and Language Processing-An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition by Daniel Jurafsky, James H. Martin. 這本書我覺得很經典。可以作為語音識別導論來讀,去了解語音識別需要解決哪些問題,前人提出的GMM-HMM框架是如何解決這些問題的。時間緊的話,可以直接看第九章,遇到什麼概念不知道再回過頭去其它章節裏找。

  • Kaldi官方文檔

Kaldi是工具,用工具當然要查手冊,看使用說明瞭。一開始看肯定一頭霧水,沒關係,就為混個臉熟。念念不忘,必有回想。永遠記住,在遇到問題想求助之前,先看看文檔裡面有沒有相關的線索。

  • Kaldi腳本涉及到的Linux命令

kaldi的上層腳本,大部分是Shell腳本,還有一部分是Perl和Python。如果是剛開始用Kaldi,那大部分時間都是在寫數據準備的Shell腳本,免不了會用到Linux下的各種工具。以下是出鏡率最高的三個:

  1. awk
  2. grep
  3. sed

前面提到的《鳥哥的Linux私房菜——基礎學習篇》對這三個工具的基本功能和使用參數都有介紹,但還不夠。我這裡推薦一本學習awk的書 The AWK Programming Language,這本書我只看了前兩章,學到的知識已經夠我使用awk解決我遇到的95%的問題了,剩下的5%,可能我就不得不去寫一個Python腳本來解決了。Kaldi的好多常式裡面,Shell腳本里有些awk語句,看這本書之前我不知道為什麼那麼寫,看完這本書前兩章之後,基本上全都理解了。總之,這是一本學習awk性價比超高的書,推薦你想辦法找來看看。

  • 深度學習理論知識

Kaldi的神經網路訓練工具,從最早的nnet一直更新到nnet3,現在大部分人都在用nnet3了。傳統的GMM-HMM大部分場景都是用來提供一個對齊信息,也就是訓練神經網路用的label,所以使用Kaldi的nnet3訓練神經網路,是核心部分。想用Kaldi煉丹,沒點兒老中醫的方子傍身是不行的。不過好在現在網上深度學習公開課那麼多,隨便找一個口碑不錯的跟著學下來就行,比如Andrew Ng有關Micheal Learning的一系列課程。我這裡推薦一本我之前學過覺得不錯的神經網路和深度學習入門書 Neural Networks and Deep Learning 。這是一本公開的電子書,作者用了很多例子和動畫來試圖解釋神經網路背後的原理,很適合初學者入門,推薦大家找來看看。

  • 語音識別領域的深度學習理論知識

前面語音識別理論知識那部分提到的Speech and Language Processing-An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition這本書,由於成書時間太早,只能用來學習GMM-HMM框架。對於目前主流的DNN-HMM框架,需要俞棟和鄧力兩位老師的這本 Automatic Speech Recognition-A Deep Learning Approach 來作為補充。這樣就能對傳統的GMM-HMM和目前主流的DNN-HMM框架有個整體的瞭解,這時候再回過頭去看Kaldi的官方文檔,應該會有不一樣的感受。

  • Kaldi郵件組

Last but not least. 一定要提一下kaldi的Google郵件組。Kaldi的一幫核心開發者,包括Daniel Povey自己,都在裡面回答問題,幾乎每個帖子都能得到回復。如果你無法打開鏈接,這裡提到了解決辦法。需要提醒一句:在提問之前,先搜下Kaldi官方文檔有沒有線索,然後搜索郵件組裡是否已經有人問過相關的問題了;提問的時候把自己的問題描述清楚,自己已經做了哪些嘗試,目前卡在什麼地方了。

以上,就是我的入門學習資料匯總了。雖然是慌忙應付了一篇,但如果你是初學者,我相信應該能幫到你一些。再次感謝上篇文章留言區催更的朋友們。祝大家學得愉快,玩得開心,我們2019見。

推薦閱讀:

相關文章