春節后到現在近兩個月了,沒有更新博客,主要是因為工作的關注點正從傳統語音(語音通信)轉向智能語音(語音識別)。部門起了個新項目,要用到語音識別(准備基於Kaldi來做)。我們之前做的傳統音頻已基本成熟,就開始關注在語音識別上了。對於我們來說,這是個全新的領域(雖然都是語音相關的,但是語音通信偏信號處理,傳統語音識別方法偏概率統計),需要學習的知識很多,所以這段時間主要是在學習新知識了,主要學習了數學(高數/線性代數/概率統計,這應該算復習)、機器學習基礎知識、深度學習、語音識別傳統方法等。由於剛開始學,還沒實踐,有的還是一知半解。學的過程中也要有輸出(把自己學的知識講給組內其他同學聽,並一起討論,讓大家都快速入門),這也能促進把學的東西掌握的更好。我花了兩周的時間學習了語音識別的傳統方法(主要學習方式是看文檔和博客),基本上掌握了其方法,也做了PPT給組內同學講(做PPT時用了一些博客上的圖,謝謝這些博主,這里就不一一列舉了)。今天就把這個PPT share出來,給也想入門語音識別的朋友做個參考。由於還沒實踐,有什么不太准確或不准確的地方還請指出。
語音識別傳統方法主要分兩個階段:訓練和識別,訓練階段主要是生成聲學模型和語言模型給識別階段用。傳統方法主要有五大模塊組成,分別是特征提取(得到每幀的特征向量),聲學模型(用GMM從幀的特征向量得到狀態,再用HMM從狀態得到音素)、發音字典(從音素得到單詞)、語言模型(從單詞得到句子)、搜索解碼(根據聲學模型、發音字典和語言模型得到最佳文本輸出),即從幀得到特征向量(特征提取干的話),從特征向量得到狀態(GMM干的話),從狀態得到音素(HMM干的話),從音素得到單詞(發音字典干的活),從單詞得到句子(語言模型干的活)。傳統方法除了在特征提取上用到信號處理知識,其余全都是概率統計等知識,所以說語音識別和語音通信是兩個完全不同的領域。
經過近十年的發展,語音識別已經從傳統方法演進到基於深度學習的方法,識別率也有了質的提升,而且還在快速的演變中,現在商用的語音識別系統都是基於深度學習實現的。對於傳統方法而言,只會出現在文章教材中了,但作為新手,在入門時學習它還是很有必要的。只有了解了傳統方法再去學習深度學習方法,才知道深度學習方法是怎么樣基於傳統方法一步步演變的。下面就是我的PPT。