語音識別數學表示:argmax p(w|o)=argmax p(o|w)p(w)
w:輸出的文字序列
o:輸入的語音波形序列
語音識別兩大組成部分:
1:p(o|w),在給定的文字序列下,模型生成語音波形序列的概率
稱為聲學模型(acoustic model) 佔據主要的計算任務
2:p(w),表示輸出w文字序列的概率
稱為語言模型(language model)
語音識別的過程:
聲波:
預處理(前端處理):
1,首尾端靜音切除,減少對後續操作的干擾
2,降噪
3,分幀,一般取20-30ms,分幀後的穩態資訊才可以進行訊號處理。
移動視窗實現,每次往前移動10ms進行分幀,交替部分為了保持語音資訊的上下文聯絡。
聲學特徵提取(語音特徵):
理解:語音的波形在一維時間上無法進行描述,不能作為輸入在模型中進行訓練,所以要進行波形的變換(fft快速傅利葉變換),將其他的引數作為語音特徵。
目前最常用的語音特徵:mfcc(梅爾倒譜係數)
梅爾頻率倒譜係數:將線性頻譜對映到基於聽覺感知的mel非線性頻譜中,再進行倒譜分析得到特徵引數。
過程:
將普通頻率轉化到mel頻率的公式:
mel濾波:將不統一的頻率轉化成統一的頻率,如果兩端語音的mel頻率相差兩倍,那麼人耳聽起來的音調也相差兩倍。
倒譜分析:取對數加逆變換(dct離散余弦變換),得到一組係數(12個),這組mfcc就是這幀語音的特徵,對於一段劃分為n幀的語音,那麼輸入矩陣的大小就是12*n。
神經網路:
rnn模型(迴圈神經網路recurrent neural network):
處理序列資料,即資料在時間或者次序上具有前後聯絡,很明顯語音頻號是具有強烈的前後聯絡的。
rnn的正向傳播:
模型的引數訓練:反向傳播梯度下降演算法。
目前使用較多的兩種rnn的變形:
lstm模型(長短時記憶網路),解決rnn前後文關聯序列距離太長時引起的梯度消失問題
改進處:增加了3個門運算,「遺忘門」,「輸入門」,「輸出門」
每個lstm單元都包括三個輸入:上一時刻的單元狀態ct-1、上一時刻的單元輸出ht-1,以及當前時刻的輸入xt
處理機制:
遺忘門:主要計算需要丟棄哪些資訊
輸入門:用於計算哪些資訊儲存在狀態單元中
最後由之前得到的遺忘門的輸出ft以及上一時刻狀態ct-1的積加上輸入門兩部分的乘積得到當前時刻的單元狀態ct
輸出門:通過sigmoid函式計算需要輸出哪些資訊,與當前的狀態ct經過tanh函式後進行乘積得到當前的輸出
總結:從lstm的網路模型可以看出來,其實lstm實際上是通過多次累加運算,使得在梯度下降求解時,不會因為鏈式法則的求導連乘而導致經過sigmoid函式的輸出值越來越小直至趨向於0,導致梯度消失的情況。
例如rnn神經網路,他的當前狀態計算公式是st=f(xt,st-1),如果關係距離過遠,會導致梯度消失的問題。
gru模型(門控制迴圈單元):屬於lstm的乙個變形,基於lstm較為複雜的門結構,改為了只有兩個門運算,
分別為更新門和重置門,原理差不多。
損失函式:ctc loss function(connectionist temporal classification)。。。。。。。??
語言模型:自然語言處理,根據聲學模型的輸出,給出最大概率的文字輸出。
n-gram。。。。?基於rnn的語言模型。。。??
asr語音識別入門材料
沒有語音識別的背景,單看kaldi的 是看不懂的,去kaldi的新手qq群裡面問也沒人會教的。好在國外還有2門課程可以自學,1 英國愛丁堡大學的語音識別課程 2 美國史丹福大學的語音識別課程 另外csdn的乙個博主的文章挺全面的 舉個簡單的圖來總結語音識別的步驟,gmm其實就是將乙個frame 25...
語音識別入門書籍推薦
本人在做本科畢設時蒐集了些資料,推薦給剛入門語音方面的同學。第10章 基於matlab的語音頻號處理 編者 何強 何英 第12章 matlab錄音工具 第13章 基於matlab的語音識別系統 13.1 語音識別簡介 13.1.1 語音識別系統的分類 13.1.2 語音識別系統的基本構成 13.2 ...
情感語音識別的入門解析
關於情感語音識別領域的研究距今已有二三十餘年的歷史。不管是情感語音識別,還是語音情感識別,含義是一樣的,都是對帶有情感的語音頻號進 感的正確判斷。最傳統的情感語音識別是基於機器學習下的有監督學習完成的。有監督,即 使用訓練集訓練處乙個模型,然後使用該模型對測試集中的語音頻號進 感狀態的正確判斷。傳統...