承接上文
四、語音識別的工作流程
1、信號的數字化和預處理:
1)數字化
聲音是作為波的形式傳播的。將聲波轉換成數字包括兩個步驟:采樣和量化。
為了將聲波轉換成數字,我們只記錄聲波在等距點的高度,這被稱為采樣(sampling)。
采樣定理(Nyquist theorem)規定,從間隔的采樣中完美重建原始聲波——只要我們的采樣頻率比期望得到的最高頻率快至少兩倍就行。
2)預加重處理:
在語音識別過程中,經常會遇到原始語音數據因為噪音、背景音或次要信息的影響導致識別效果變差。預加重的目的就是為了提高語音質量,從含有噪聲語音的信號中,盡可能提取純凈的原始語音信號。
它的方法有很多,下面列舉三個:
(1)譜減法
首先假設噪音和期望語音信號相互獨立,然后通過估計噪音的功率,在原始語音中減去噪音功率達到去除噪音的目的。
這個方法較適用于噪音平穩波動性小的情況。
(2)自適應濾波法
通過獲得前一時刻的濾波器參數,去自動調節現在時刻的濾波器參數。我的理解是:假設語音信號具有較強的相關性,那么取t+1時刻的濾波器參數作用于t時刻的語音信號,形成純凈的語音信號。
(3)小波去噪法
基于信號和噪聲的小波系數在各尺度的分布特性,采用閾值的方法,達到去除噪聲的目的。
3)聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀,使用移動窗函數來實現,不是簡單的切開,各幀之間一般是有交疊的。
我們把它分隔為一小段一小段(10毫秒-40毫秒)的短語音,我們認為這樣的小片段是平穩的,稱之為【幀】。
在每個幀上進行信號分析,稱為語音的短時分析。
2、特征提取:主要算法有線性預測倒譜系數(LPCC)和Mel 倒譜系數(MFCC),目的是把每一幀波形變成一個包含聲音信息的多維向量。
1)原理:我們經過采樣,預處理,將這些數字繪制為簡單的折線圖,如下所示,我們得到了 20 毫秒內原始聲波的大致形狀:
這樣的波形圖對機器來說沒有任何描述信息。這個波形圖背后是很多不同頻率的波疊加產生的。(準確的講,它在時域上沒有描述能力)
我們希望一段聲紋能夠給出一個人的特性,比如什么時候高,什么時候低,什么時候頻率比較密集,什么時候比較平緩等等。
就是我們上面所說的,用傅里葉變化來完成時域到頻域的轉換。
這就需要對每一幀做傅里葉變化,用特征參數MFCC得到每一幀的頻譜(這個過程就是特征提取,結果用多維向量表示),最后可以總結為一個頻譜圖(語譜圖)。
2)特性參數
(1)特性提取時,我們有常用的特征參數作為提取模板,主要有兩種:
線性預測系數(LPC)
LPC 的基本思想是,當前時刻的信號可以用若干個歷史時刻的信號的線性組合來估計。通過使實際語音的采樣值和線性預測采樣值之間達到均方差最小,即可得到一組線性預測系數。
求解LPC系數可以采用自相關法 (德賓 durbin 法) 、協方差法、格型法等快速算法。
(2)倒譜系數
利用同態處理方法,對語音信號求離散傅立葉變換后取對數,再求反變換就可得到倒譜系數。
其中,LPC倒譜(LPCCEP)是建立在LPC譜上的。而梅爾倒譜系數(Mel Frequency Cepstrum Coefficient, MFCC)則是基于MEL譜的。不同于LPC等通過對人的發聲機理的研究而得到的聲學特征,MFCC 是受人的聽覺系統研究成果推動而導出的聲學特征。
簡單的說,經過梅爾倒譜分析,得到的參數更符合人耳的聽覺特性。
1、聲學模型(AM):
聲學模型是識別系統的底層模型,其目的是提供一種計算語音的特征矢量序列和每個發音模板之間的距離的方法。通過對語音數據進行訓練獲得,輸入是特征向量,輸出為音素信息;也就是說,提取到的語音特性,與某個發音之間的差距越小,越有可能是這個發音。
或者說,某幀對應哪個狀態的概率最大,那這幀就屬于哪個狀態。這個可以用GMM(混合高斯模型,就是一種概率分布)或DNN(深度神經網絡)來識別。
但這樣識別出來的結果會比較亂,因為一個人講話的速度不一樣,每一幀識別出的結果可能是:....HHH_EE_LL__LLLL__OOO.....,如下圖:
這個問題可以用DTW(動態時間規整)或HMM(隱馬爾科夫模型)或CTC(改進的RNN模型)來對齊識別結果,知道單詞從哪里開始,從哪里結束,哪些內容是重復的沒有必要的。
1)常用的聲學建模方法包含以下三種:
· 基于模式匹配的動態時間規整法(DTW);
· 隱馬爾可夫模型法(HMM);
· 基于人工神經網絡識別法(ANN);
在過去,主流的語音識別系統通常使用梅爾倒譜系數(Mel-Frequency Cepstral Coefficient, MFCC)或者線性感知預測(Perceptual Linear Prediction, PLP)作為特征,使用混合高斯模型-隱馬爾科夫模型(GMM-HMM)作為聲學模型。
近些年,分層鑒別模型比如DNN,變得可行起來,比如上下文相關的深度神經網絡-隱馬爾可夫模型(context-dependent DNN-HMM,CD-DNN-HMM)就比傳統的GMM-HMM表現要好得多。
如下圖,你可以清晰的看到被替換的部分。
2)主要問題:
我們要了解的是,聲學模型存在2個問題:
(1)特征向量序列的可變長;
每個人說同一個單詞的時間長度都不一樣,聲學模型要能從不同的時間長度的語音信號中識別出是同一個單詞。
解決方法就是DTW(動態時間規整)、 HMM(隱馬爾可夫模型)。
(2) 音頻信號的豐富變化性;
如說話人的性別,健康狀況,緊張程度,說話風格、語速,環境噪音,周圍人聲,信道扭曲,方言差異,非母語口音等。
3)聲學建模:
(1)隱馬爾可夫模型(HMM)
對語音識別系統而言,HMM 的輸出值通常就是各個幀的聲學特征 。 為了降低模型的復雜度,通常 HMM 模型有兩個假設前提,一是內部狀態的轉移只與上一狀態有關,一是輸出值只與當前狀態或當前狀態轉移有關。除了這兩個假設外,HMM 模型還存在著一些理論上的假設,其中之一就是,它假設語音是一個嚴格的馬爾科夫過程 。
現代通用語音識別系統基于隱馬爾可夫模型。這些是輸出符號或數量序列的統計模型。HMM用于語音識別,因為語音信號可以被視為分段靜止信號或短時靜止信號。在短時間尺度(例如,10毫秒)中,語音可以近似為靜止過程。語音可以被認為是許多隨機目的的馬爾可夫模型。
HMM受歡迎的另一個原因是因為它們可以自動訓練并且使用起來簡單且計算可行。在語音識別中,隱馬爾可夫模型將輸出一系列n維實值向量(其中n是一個小整數,例如10),每10毫秒輸出一個這些向量。矢量將由倒譜系數組成,倒譜系數是通過對短時間語音窗口進行傅里葉變換并使用余弦變換對頻譜進行去相關而獲得的。,然后取第一個(最重要的)系數。隱馬爾可夫模型將傾向于在每個狀態中具有對角協方差高斯的混合的統計分布,這將給出每個觀察向量的可能性。每個單詞,或(對于更一般的語音識別系統),每個音素,將具有不同的輸出分布; 通過將單獨訓練的隱馬爾可夫模型連接成單獨的單詞和音素,制作用于一系列單詞或音素的隱馬爾可夫模型。
以上描述的是最常見的基于HMM的語音識別方法的核心要素。現代語音識別系統使用多種標準技術的各種組合,以便改進上述基本方法的結果。典型的大詞匯系統需要音素的上下文依賴(因此具有不同左右上下文的音素具有與HMM狀態不同的實現); 它會使用倒譜歸一化來規范不同的揚聲器和錄音條件; 對于進一步的說話者歸一化,它可能使用聲道長度歸一化(VTLN)進行男性女性歸一化和最大似然線性回歸(MLLR)用于更一般的演講者改編。這些特征將具有所謂的delta和delta-delta系數以捕獲語音動態,此外還可以使用異方差線性判別分析(HLDA); 或者可以跳過delta和delta-delta系數并使用拼接和基于LDA的投影,然后可能是異方差線性判別分析或全局半連接協方差變換(也稱為最大似然線性變換),或MLLT)。許多系統使用所謂的判別訓練技術,其省去了對HMM參數估計的純粹統計方法,而是優化了訓練數據的一些與分類相關的測量。示例是最大互信息(MMI),最小分類錯誤(MCE)和最小電話錯誤(MPE)。
(2)基于動態時間規整(DTW)
動態時間扭曲是一種歷史上用于語音識別的方法,但現在已經被更成功的基于HMM的方法取代。
動態時間扭曲是用于測量可能在時間或速度上變化的兩個序列之間的相似性的算法。例如,即使在一個視頻中人們正在緩慢行走而在另一個視頻中他或她走得更快,或者即使在一次觀察的過程中存在加速和減速,也會檢測到行走模式的相似性。DTW已應用于視頻,音頻和圖形 - 實際上,任何可以轉換為線性表示的數據都可以使用DTW進行分析。
一個眾所周知的應用是自動語音識別,以應對不同的語速。通常,它是一種允許計算機在具有某些限制的兩個給定序列(例如,時間序列)之間找到最佳匹配的方法。也就是說,序列被非線性地“扭曲”以彼此匹配。該序列比對方法通常用于隱馬爾可夫模型的上下文中。
(3)神經網絡
在20世紀80年代后期,神經網絡在ASR中成為一種有吸引力的聲學建模方法。從那時起,神經網絡已被用于語音識別的許多方面,例如音素分類,?58 .孤立詞識別,?59 .視聽語音識別,視聽說話人識別和說話者適應。
與HMM相比,神經網絡對特征統計特性的顯式假設較少,并且具有多種特性使其成為語音識別的有吸引力的識別模型。當用于估計語音特征片段的概率時,神經網絡允許以自然且有效的方式進行辨別訓練。然而,盡管它們在分類短時間單位(如個體音素和孤立單詞)方面有效,?60 .,早期神經網絡很難成功進行連續識別任務,因為它們對時間依賴性建模的能力有限。
這種限制的一種方法是在基于HMM的識別之前使用神經網絡作為預處理,特征變換或維數減少61 .步驟。然而,最近,LSTM和相關的遞歸神經網絡(RNNs)?33 .?37 .?62 .?63 .和時間延遲神經網絡(TDNN)?64 .已經證明了該領域的改進性能。
(4)深度前饋和遞歸神經網
深度神經網絡和去噪自動編碼器?65 .也正在研究中。深度前饋神經網絡(DNN)是一種人工神經網絡,在輸入和輸出層之間具有多個隱藏的單元層。?40 .與淺層神經網絡類似,DNN可以模擬復雜的非線性關系。DNN架構生成組合模型,其中額外的層使得能夠從較低層構成特征,從而提供巨大的學習能力,從而具有對復雜的語音數據模型進行建模的潛力。?66 .
2010年,工業研究人員與學術研究人員合作,在大詞匯量語音識別中成功發展了DNN,其中采用了基于決策樹構建的依賴于上下文的HMM狀態的DNN的大輸出層。?67 .?68 .?69 .參見微軟研究院最近的Springer一書,了解截至2014年10月對這一發展和現有技術的全面評論。?70 .另見最近概述文章中自動語音識別的相關背景和各種機器學習范例的影響,特別是包括深度學習。?71 .?72 .
深度學習的一個基本原則是取消手工制作的特征工程并使用原始特征。這一原理首先在“原始”光譜圖或線性濾波器組特征的深度自動編碼器架構中成功探索,?73 .顯示其優于Mel-Cepstral特征,其包含來自光譜圖的固定變換的幾個階段。語音波形的真正“原始”特征最近被證明可以產生出色的大規模語音識別結果。
(5)端到端自動語音識別
1.發展歷程:
自2014年以來,對“端到端”ASR的研究興趣不斷增加。傳統的基于語音的(即所有基于HMM的模型)方法需要單獨的組件和發音,聲學和語言模型的訓練。端到端模型共同學習語音識別器的所有組件。這很有價值,因為它簡化了培訓過程和部署過程。例如,所有基于HMM的系統都需要n-gram語言模型,典型的n-gram語言模型通常需要幾千兆字節的存儲空間,因此在移動設備上部署它們是不切實際的。?75 .因此,谷歌和蘋果的現代商用ASR系統(截至2017年)部署在云上,需要網絡連接,而不是本地設備。
在終端到終端的ASR的第一個嘗試是與聯結顳分類(CTC)通過引入基于系統亞歷克斯·格雷夫斯的谷歌DeepMind的和納瓦迪普Jaitly?多倫多大學于2014年?76 .該模型由遞歸神經網絡和CTC層。共同地,RNN-CTC模型一起學習發音和聲學模型,但是由于類似于HMM的條件獨立性假設,它不能學習語言。因此,CTC模型可以直接學習將語音聲學映射到英文字符,但這些模型會產生許多常見的拼寫錯誤,并且必須依靠單獨的語言模型來清理成績單。后來,百度通過極大的數據集擴展了工作,并展示了中文普通話和英語的商業成功。?77 .2016年,牛津大學提出LipNet,?78 .第一個端到端句子級唇讀模型,使用時空卷積和RNN-CTC架構,超越了限制語法數據集中的人類水平表現。?79 .?Google DeepMind于2018年推出了大規模的CNN-RNN-CTC架構,其性能比人類專家高出6倍。?80 .
基于CTC的模型的替代方法是基于注意力的模型。Chan等人同時引入了基于注意力的ASR模型。的卡耐基梅隆大學和谷歌大腦和Bahdanau等。所述的蒙特利爾大學在2016年?81 .?82 .名為“傾聽,參與和拼寫”(LAS)的模型,字面上“聽”聲信號,“注意”信號的不同部分,并且一次“拼寫”一個字符的抄本。與基于CTC的模型不同,基于注意力的模型不具有條件獨立性假設,并且可以直接學習語音識別器的所有組件,包括發音,聲學和語言模型。這意味著,在部署期間,不需要攜帶語言模型,這使得它在部署到具有有限存儲器的應用程序上非常實用。截至2016年底,基于注意力的模型取得了相當大的成功,包括超越CTC模型(有或沒有外部語言模型)。?83 .自原始LAS模型以來已經提出了各種擴展。潛在序列分解(LSD)由卡內基梅隆大學,麻省理工學院和谷歌大腦提出,直接發出比英文字符更自然的子詞單元;?84 .?牛津大學和Google DeepMind將LAS擴展到“觀看,收聽,參與和拼寫”(WLAS),以處理超越人類表現的唇讀。
2.優缺點:
A.目前的識別部分問題:
a.對自然語言的識別和理解;就目前而言,NLP的突破還有很多難點,因此也在很大的程度上制約了ASR的發展。
b.語音信息量大。語音模式不僅對不同的說話人不同,對同一說話人也是不同的,一個說話人在隨意說話和認真說話時的語音信息是不同的;
c.語音的模糊性。說話者在講話時,不同的詞可能聽起來是相似的;
d.單個字母或詞、字的語音特性受上下文的影響,以致改變了重音、音調、音量和發音速度等。
端到端的模型旨在一步直接實現語音的輸入與解碼識別,從而不需要繁雜的對齊工作與發音詞典制作工作,具有了可以節省大量的前期準備時間的優勢,真正的做到數據拿來就可用。
B.端到端模型的優點:
a.端到端的模型旨在一步直接實現語音的輸入與解碼識別,從而不需要繁雜的對齊工作與發音詞典制作工作,具有了可以節省大量的前期準備時間的優勢,真正的做到數據拿來就可用。
b.端到端的模型由于不引入傳統的音素或詞的概念,直接訓練音頻到文本的模型,可以有效地規避上述難點。
c.更換識別語言體系時可以利用相同的框架結構直接訓練。例如同樣的網絡結構可以訓練包含26個字符的英文模型,也可以訓練包含3000個常用漢字的中文模型,甚至可以將中英文的詞典直接合在一起,訓練一個混合模型。
d.端到端的模型在預測時的速度更快,對于一個10 秒左右的音頻文件,端到端的模型在一塊GPU的服務器上僅需0.2秒左右的時間便可給出預測結果。
2、字典:
字典是存放所有單詞的發音的詞典,它的作用是用來連接聲學模型和語言模型的。
識別出音素,利用字典,就可以查出單詞了。
例如,一個句子可以分成若干個單詞相連接,每個單詞通過查詢發音詞典得到該單詞發音的音素序列。相鄰單詞的轉移概率可以通過語言模型獲得,音素的概率模型可以通過聲學模型獲得。從而生成了這句話的一個概率模型。
5、語言模型(LM):
如何將識別出的單詞,組成有邏輯的句子,如何識別出正確的有歧義的單詞,這些就用到語言模型了。
由于語音信號的時變性、噪聲和其它一些不穩定因素,單純靠聲學模型無法達到較高的語音識別的準確率。在人類語言中,每一句話的單詞直接有密切的聯系,這些單詞層面的信息可以減少聲學模型上的搜索范圍,有效地提高識別的準確性,要完成這項任務語言模型是必不可少的,它提供了語言中詞之間的上下文信息以及語義信息。
隨著統計語言處理方法的發展,統計語言模型成為語音識別中語言處理的主流技術,其中統計語言模型有很多種,如N-Gram語言模型、馬爾可夫N元模型(Markov N-gram)、指數模型( Exponential Models)、決策樹模型(Decision Tree Models)等。而N元語言模型是最常被使用的統計語言模型,特別是二元語言模型(bigram)、三元語言模型(trigram)。
6、解碼:就是通過聲學模型,字典,語言模型對提取特征后的音頻數據進行文字輸出。
7、語音識別系統基本原理結構:
(1)語音識別系統基本原理結構如圖所示。語音識別原理有三點:
1)對語音信號中的語言信息編碼是按照幅度譜的時間變化來進行;
2)由于語音是可以閱讀的,也就是說聲學信號可以在不考慮說話人說話傳達的信息內容的前提下用多個具有區別性的、離散的符號來表示;
3)語音的交互是一個認知過程,所以絕對不能與語法、語義和用語規范等方面分裂開來。
精彩下文繼續
參考文章鏈接如下:
http://www.lxweimin.com/p/8041e1f4fdf3
http://www.lxweimin.com/p/a3e2915a3783
http://www.lxweimin.com/p/1cfa15eaadfe
http://www.lxweimin.com/p/2c99885b9a8f
http://www.lxweimin.com/p/60ef7117a612
http://www.lxweimin.com/p/350a4f447a5f
http://www.lxweimin.com/p/c088c89a7f09
http://www.lxweimin.com/p/45a764b53474
http://www.lxweimin.com/p/7c94467f58ff
http://www.woshipm.com/pd/894645.html
http://www.lxweimin.com/p/dc8954aebbef
http://www.lxweimin.com/p/3edca44c3e53
https://blog.csdn.net/zhinengxuexi/article/details/89355659
https://blog.csdn.net/baidu_31437863/article/details/82807224