Speech recognition lesson 1: Overview
自動(dòng)語(yǔ)音識(shí)別(Auto ** tic Speech Recognition,ASR),簡(jiǎn)稱為語(yǔ)音識(shí)別。
參考:語(yǔ)音識(shí)別綜述-從概念到技術(shù)
1. 概述聲音從本質(zhì)是一種波,這種波可以作為一種信號(hào)來(lái)處理,所以語(yǔ)音識(shí)別的輸入實(shí)際上就是一段隨時(shí)間播放的信號(hào)序列,而輸出則是一段文本序列。將語(yǔ)音片段輸入轉(zhuǎn)化為文本輸出的過(guò)程就是語(yǔ)音識(shí)別。
一個(gè)完整的語(yǔ)音識(shí)別系統(tǒng)通常包括信號(hào)處理和特征提取、聲學(xué)模型、語(yǔ)音模型和解碼搜索這四個(gè)模塊。
信號(hào)處理和特征提取可以視作音頻數(shù)據(jù)的預(yù)處理部分,一般來(lái)熟,一段高保真、無(wú)噪聲的語(yǔ)音是非常難得的,實(shí)際研究中用到的語(yǔ)音片段都有噪聲的存在,所以正式進(jìn)入聲學(xué)模型之前,我們需要通過(guò)消除噪聲和信道增強(qiáng)等預(yù)處理技術(shù),將信號(hào)從時(shí)間域轉(zhuǎn)化到頻率域,然后為之后的聲學(xué)模型提供有效的特征向量。接下來(lái)聲學(xué)模型會(huì)將預(yù)處理部分得到的特征向量轉(zhuǎn)化為聲學(xué)模型得分,與此同時(shí),語(yǔ)言模型(自然語(yǔ)言處理中類(lèi)似n-gram和RNN等模型)會(huì)得到一個(gè)語(yǔ)言模型得分,最后解碼搜索階段會(huì)針對(duì)聲學(xué)模型得分和語(yǔ)言模型得分進(jìn)行綜合,將得分最高的詞序列作為最后的識(shí)別結(jié)構(gòu)。以上便是語(yǔ)音識(shí)別的一般原理。
因?yàn)檎Z(yǔ)音識(shí)別相較于一般的自然語(yǔ)言處理任務(wù)的特殊之處就在于聲學(xué)模型,所以語(yǔ)音識(shí)別的關(guān)鍵也就是信號(hào)與處理技術(shù)和聲學(xué)模型部分。在深度學(xué)習(xí)興起應(yīng)用到語(yǔ)音識(shí)別領(lǐng)域之前,聲學(xué)模型就已經(jīng)有了非常成熟的模型體系,并且也有了被成功應(yīng)用到實(shí)際系統(tǒng)中的案例。比如說(shuō)經(jīng)典的高斯混合模型(GMM)和隱馬爾可夫模型(HMM)等。神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)興起之后,循環(huán)神經(jīng)網(wǎng)絡(luò)、LSTM、編碼-解碼框架、注意力機(jī)制等基于深度學(xué)習(xí)的聲學(xué)模型將此前各項(xiàng)基于傳統(tǒng)聲學(xué)模型的識(shí)別案例錯(cuò)誤率降低了一個(gè)level,所以基于深度學(xué)習(xí)的語(yǔ)言識(shí)別技術(shù)也正在逐漸成為語(yǔ)音識(shí)別領(lǐng)域的核心技術(shù)。
語(yǔ)言識(shí)別發(fā)展至今,無(wú)論是基于傳統(tǒng)聲學(xué)模型的語(yǔ)音識(shí)別系統(tǒng)還是基于深度學(xué)習(xí)的識(shí)別系統(tǒng),語(yǔ)音識(shí)別的各個(gè)模塊都是分別優(yōu)化的。但是語(yǔ)音本質(zhì)上是一個(gè)序列識(shí)別問(wèn)題,如果模型中的所有組件能夠聯(lián)合優(yōu)化,很可能會(huì)獲取更好的識(shí)別準(zhǔn)確度,因而端到端的自動(dòng)語(yǔ)音識(shí)別是未來(lái)語(yǔ)音識(shí)別的一個(gè)最重要的發(fā)展方向。
2. 信號(hào)處理與特征提取因?yàn)槁暡ㄊ且环N信號(hào),具體我們可以稱之為音頻信號(hào)。原始的音頻信號(hào)通常會(huì)由于人類(lèi)發(fā)聲器官或者語(yǔ)音采集設(shè)備所帶來(lái)的靜音片段、混疊、噪聲、高次諧波失真等因素,一定程度上會(huì)對(duì)語(yǔ)音信號(hào)質(zhì)量產(chǎn)生影響。所以在正式使用聲學(xué)模型進(jìn)行語(yǔ)音識(shí)別之前,我們必須對(duì)音頻信號(hào)進(jìn)行預(yù)處理和特征提取。
最初始的預(yù)處理工作就是靜音切除,也叫做語(yǔ)音激活檢測(cè)(Voice Activity Detection,VAD)或者語(yǔ)音邊界檢測(cè)。目的是從音頻信號(hào)流里識(shí)別和消除長(zhǎng)時(shí)間的靜音片段,在截取出來(lái)的有效片段上進(jìn)行后續(xù)處理會(huì)很大程度上降低靜音片段帶來(lái)的干擾。除此之外,還有許多其他的音頻處理技術(shù),大家可以找來(lái)信號(hào)處理相關(guān)的資料進(jìn)行閱讀。
然后就是特征提取工作。音頻信號(hào)中通常包含非常豐富的特征參數(shù),不同的特征向量表征著不同的聲學(xué)意義,從音頻信號(hào)中選擇有效的音頻表征的過(guò)程就是語(yǔ)音特征提取。常用的語(yǔ)音特征包括線性預(yù)測(cè)倒譜系數(shù)(LPCC)和梅爾頻率倒譜系數(shù)(MFCC);其中LPCC特征是根據(jù)聲管模型建立的特征參數(shù),是對(duì)聲道響應(yīng)的特征表征;而MFCC特征是基于人的聽(tīng)覺(jué)特征提取出來(lái)的特征參數(shù),是人耳聽(tīng)覺(jué)的特征表征。所以,在對(duì)音頻信號(hào)進(jìn)行特征提取時(shí)通常使用MFCC特征。
MFCC特征主要由于預(yù)加重、分幀、加窗、快速傅立葉變換(FFT)、梅爾濾波器組、離散余弦變換這幾部分組成,其中FFT和梅爾濾波器組是MFCC最重要的部分。一個(gè)完整的MFCC算法包括以下幾個(gè)步驟:
(1)快速傅立葉變換(FFT) (2)梅爾頻率尺度轉(zhuǎn)換 (3)配置三角形濾波器組并計(jì)算每一個(gè)三角濾波器對(duì)信號(hào)幅度譜濾波后的輸出 (4)對(duì)所有濾波器輸出作對(duì)數(shù)運(yùn)算,再進(jìn)一步做離散余弦變換(DTC),即可得到MFCC實(shí)際的語(yǔ)音研究中,也不需要我們?cè)購(gòu)念^構(gòu)造一個(gè)MFCC特征提取方法,Python為我們提供了一個(gè) pyaudio 和 librosa 等語(yǔ)音處理工作庫(kù),可以直接調(diào)用MFCC算法的相關(guān)模塊快速實(shí)現(xiàn)音頻預(yù)處理工作。
過(guò)去在語(yǔ)音識(shí)別上所取得的成果證明MFCC是一種行之有效的特征提取方法。但隨著深度學(xué)習(xí)的發(fā)展,受限的玻爾茲曼機(jī)(RBM)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、CNN-LSTM-DNN(CLDNN)等深度神經(jīng)網(wǎng)絡(luò)模型作為一個(gè)直接學(xué)習(xí)濾波器代替梅爾濾波器組被用于自動(dòng)學(xué)習(xí)的語(yǔ)音特征提取中,并且取得很好的效果。
3. 傳統(tǒng)聲學(xué)模型--GMM在經(jīng)過(guò)語(yǔ)音特征提取之后,我們就可以將這些音頻特征進(jìn)行進(jìn)一步的處理,這是為了找到語(yǔ)音來(lái)自某個(gè)聲學(xué)符號(hào)(音素)的概率。這種通過(guò)音頻特征找概率的模型就稱為聲學(xué)模型。在深度學(xué)習(xí)興起之前,混合高斯模型(GMM)和隱馬爾可夫模型(HMM)一直作為非常有效的聲學(xué)模型而被廣泛使用,當(dāng)然即使在深度學(xué)習(xí)告訴發(fā)展的今天,這些傳統(tǒng)的聲學(xué)模型在語(yǔ)音識(shí)別領(lǐng)域仍然有著一席之地。
3.1 混合高斯模型
所謂混合高斯模型(Gaussian Mixture Model,GMM),就是用混合的高斯隨機(jī)變量的分布來(lái)擬合訓(xùn)練數(shù)據(jù)(音頻特征)時(shí)形成的模型。原始的音頻數(shù)據(jù)經(jīng)過(guò)短時(shí)傅里葉變換或者取倒譜后會(huì)變成特征序列,在忽略時(shí)序信息的條件下,這種序列非常適用于使用GMM進(jìn)行建模。
如果一個(gè)連續(xù)隨機(jī)變量服從高斯混合分布(上圖),其概率密度函數(shù)形式為:
在實(shí)際的GMM訓(xùn)練中,通常采用EM算法來(lái)進(jìn)行迭代優(yōu)化,以取GMM中的加權(quán)系數(shù)及各個(gè)高斯函數(shù)的均值與方差等參數(shù)。
(2)隱馬爾可夫模型--HMM
GMM作為一種基于傅里葉頻譜語(yǔ)音特征的統(tǒng)計(jì)模型,在傳統(tǒng)語(yǔ)音識(shí)別系統(tǒng)的聲學(xué)模型中發(fā)揮了重要的作用。其劣勢(shì)在于不能考慮語(yǔ)音順序信息,高斯混合分布也難以擬合非線性或近似非線性的數(shù)據(jù)特征。所以,當(dāng)狀態(tài)這個(gè)概念引入到聲學(xué)模型的時(shí)候,就有了一種新的聲學(xué)模型--隱馬爾可夫模型(Hidden Markov Model,HMM)。
在隨機(jī)過(guò)程領(lǐng)域,馬爾可夫過(guò)程和馬爾可夫鏈向來(lái)有著一席之地。當(dāng)一個(gè)馬爾可夫過(guò)程含有隱含未知參數(shù)時(shí),這樣的模型就稱之為隱馬爾可夫模型。HMM的核心概念就是狀態(tài),狀態(tài)本身作為一個(gè)離散隨機(jī)變量,馬爾可夫鏈的每一個(gè)狀態(tài)上都增加了不確定性或者統(tǒng)計(jì)分布使得HMM成為了一種雙隨機(jī)過(guò)程。
HMM的主要內(nèi)容包括參數(shù)特征、仿真方法、參數(shù)的極大似然估計(jì)、EM估計(jì)算法以及維特比狀態(tài)解碼算法等細(xì)節(jié)知識(shí)(筆者在手動(dòng)實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法系列中詳細(xì)介紹,本篇作為綜述這里不做詳細(xì)的展開(kāi))。
4. 基于深度學(xué)習(xí)的聲學(xué)模型一提到神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)在語(yǔ)音識(shí)別領(lǐng)域的應(yīng)用,可能我們的第一反應(yīng)就是循環(huán)神經(jīng)網(wǎng)絡(luò)RNN模型以及長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM等等。實(shí)際上,在語(yǔ)音識(shí)別發(fā)展的前期,就有很多將神經(jīng)網(wǎng)絡(luò)應(yīng)用于語(yǔ)音識(shí)別和聲學(xué)模型的應(yīng)用了。
最早用于聲學(xué)建模的神經(jīng)網(wǎng)絡(luò)就是最普通的深度神經(jīng)網(wǎng)絡(luò)(DNN),GMM 等傳統(tǒng)的聲學(xué)模型存在音頻信號(hào)表征的低效問(wèn)題,但 DNN 可以在一定程度上解決這種低效表征。但在實(shí)際建模時(shí),由于音頻信號(hào)是時(shí)序連續(xù)信號(hào),DNN 則是需要固定大小的輸入,所以早起使用DNN來(lái)搭建聲學(xué)模型時(shí)需要一種能夠處理語(yǔ)音信號(hào)長(zhǎng)度變化的方法。一種將 HMM 模型與 DNN 模型結(jié)合起來(lái)的 DNN-HMM 混合系統(tǒng)頗具有效性。
在上圖這個(gè)框架中,HMM 用來(lái)描述語(yǔ)音信號(hào)的動(dòng)態(tài)變化,DNN 則是用來(lái)估計(jì)觀察特征的概率。在給定聲學(xué)觀察特征的條件下,我們可以用 DNN 的每個(gè)輸出節(jié)點(diǎn)來(lái)估計(jì) HMM 某個(gè)狀態(tài)的后驗(yàn)概率。由于 DNN-HMM 訓(xùn)練成本不高而且相對(duì)較高的識(shí)別概率,所以即使是到現(xiàn)在在語(yǔ)音識(shí)別領(lǐng)域仍然是較為常用的聲學(xué)模型。
除了 DNN 之外,經(jīng)常用于計(jì)算機(jī)視覺(jué)的 CNN 也可以拿來(lái)構(gòu)建語(yǔ)音聲學(xué)模型。當(dāng)然,CNN 也是經(jīng)常會(huì)與其他模型結(jié)構(gòu)使用。CNN 用于聲學(xué)模型方面主要包括 TDNN、CNN-DNN框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐層語(yǔ)境擴(kuò)展和注意 CNN 框架(LACE)等等。這么多基于CNN的混合模型框架都在聲學(xué)模型上取得了很多成果,這里筆者僅挑兩個(gè)進(jìn)行簡(jiǎn)單闡述。
(1)TDNN 是最早基于 CNN 的語(yǔ)音識(shí)別方法,TDNN 會(huì)沿頻率軸和時(shí)間軸同時(shí)進(jìn)行卷積,因此能夠利用可變長(zhǎng)度的語(yǔ)境信息。TDNN 用于語(yǔ)音識(shí)別分為兩種情況,第一種情況下:只有TDNN,很難用于大詞匯量連續(xù)性語(yǔ)音識(shí)別(LVCSR),原因在于可變長(zhǎng)度的表述(utterance)與可變長(zhǎng)度的語(yǔ)境信息是兩回事,在 LVCSR 中需要處理可變長(zhǎng)度表述問(wèn)題,而 TDNN 只能處理可變長(zhǎng)度語(yǔ)境信息;第二種情況:TDNN-HMM 混合模型,由于HMM能夠處理可變長(zhǎng)度表述問(wèn)題,因而該模型能夠有效地處理 LVCSR 問(wèn)題。
(2)DFCNN 的全稱叫做全序列卷積神經(jīng)網(wǎng)絡(luò)(deep fully convolutional neural network),是由國(guó)內(nèi)語(yǔ)音識(shí)別領(lǐng)域的翹楚科大訊飛于2016年提出的一種語(yǔ)音識(shí)別框架。DFCNN 先對(duì)時(shí)域的語(yǔ)音信號(hào)進(jìn)行傅里葉變換得到語(yǔ)音的語(yǔ)譜圖,DFCNN 直接將一句語(yǔ)音轉(zhuǎn)化成一張圖像作為輸入,輸出單元?jiǎng)t直接與最終的識(shí)別結(jié)果(比如音節(jié)或者漢字)相對(duì)應(yīng)。DFCNN 的結(jié)構(gòu)中把時(shí)間和頻率作為圖像的兩個(gè)維度,通過(guò)較多的卷積層和池化(pooling)層的組合,實(shí)現(xiàn)對(duì)整句語(yǔ)音的建模。DFCNN 的原理是把語(yǔ)譜圖看作帶有特定模式的圖像,而有經(jīng)驗(yàn)的語(yǔ)音學(xué)專家能夠從中看出里面說(shuō)的內(nèi)容。
(3)最后就是循環(huán)神經(jīng)網(wǎng)絡(luò) RNN,其中更多是 LSTM 網(wǎng)絡(luò)。音頻信號(hào)具有明顯的協(xié)同發(fā)音現(xiàn)象,因此必須考慮長(zhǎng)時(shí)相關(guān)性。由于循環(huán)神經(jīng)網(wǎng)絡(luò)RNN具有更強(qiáng)的長(zhǎng)時(shí)建模能力,使得 RNN 也逐漸替代 DNN 和 CNN 成為語(yǔ)音識(shí)別主流的建模方案。比如說(shuō)常見(jiàn)的基于 seq2seq 的編碼-解碼框架就是一種基于 RNN 的模型。關(guān)于 RNN 在語(yǔ)音識(shí)別和聲學(xué)模型中的應(yīng)用筆者不做過(guò)多解釋,后續(xù)有應(yīng)用性的推文再做詳細(xì)介紹。
長(zhǎng)期的研究和實(shí)踐證明:基于深度學(xué)習(xí)的聲學(xué)模型要比傳統(tǒng)的基于淺層模型的聲學(xué)模型更適合語(yǔ)音處理任務(wù)。語(yǔ)音識(shí)別的應(yīng)用環(huán)境常常比較復(fù)雜,選擇能夠應(yīng)對(duì)各種情況的模型建模聲學(xué)模型是工業(yè)界及學(xué)術(shù)界常用的建模方式。但單一模型都有局限性。HMM能夠處理可變長(zhǎng)度的表述,CNN能夠處理可變聲道,RNN/CNN能夠處理可變語(yǔ)境信息。聲學(xué)模型建模中,混合模型由于能夠結(jié)合各個(gè)模型的優(yōu)勢(shì),是目前乃至今后一段時(shí)間內(nèi)聲學(xué)建模的主流方式。
5. 端到端的語(yǔ)音識(shí)別系統(tǒng)無(wú)論是 GMM 和 HMM 這樣的傳統(tǒng)聲學(xué)模型,還是基于深度學(xué)習(xí)的聲學(xué)模型,它們對(duì)于整個(gè)語(yǔ)音識(shí)別系統(tǒng)都是分開(kāi)優(yōu)化的,但是語(yǔ)音識(shí)別本質(zhì)上是一個(gè)序列識(shí)別問(wèn)題,如果模型中的所有組件都能夠聯(lián)合優(yōu)化,很可能會(huì)獲取更好的識(shí)別準(zhǔn)確度,所以我們需要一種端到端(End2End)的語(yǔ)音識(shí)別處理系統(tǒng)。
傳統(tǒng)的語(yǔ)音識(shí)別系統(tǒng)中的聲學(xué)模型訓(xùn)練:
傳統(tǒng)的語(yǔ)音識(shí)別系統(tǒng)中的語(yǔ)言模型訓(xùn)練:
谷歌的 Listen-Attend-Spell (LAS) 端到端語(yǔ)音識(shí)別系統(tǒng):
關(guān)于端到端的語(yǔ)音識(shí)別系統(tǒng),筆者做的調(diào)研程度有限,更多的內(nèi)容需要后續(xù)不斷的學(xué)習(xí)和實(shí)踐,關(guān)于這篇語(yǔ)音識(shí)別的綜述暫時(shí)寫(xiě)到這里。
免責(zé)聲明: 本文章轉(zhuǎn)自其它平臺(tái),并不代表本站觀點(diǎn)及立場(chǎng)。若有侵權(quán)或異議,請(qǐng)聯(lián)系我們刪除。謝謝! |