官术网_书友最值得收藏!

1.2 語音識別系統(tǒng)架構(gòu)

1.2.1 經(jīng)典方法的直觀理解

為了讓沒有接觸過語音識別的讀者可以對語音識別原理有一個快速的認識,本節(jié)將盡可能使用通俗的語言,簡短直觀地介紹經(jīng)典語音識別方法。

首先,我們知道聲音實際上是一種波。語音識別任務所面對的,就是經(jīng)過若干信號處理之后的樣點序列,也稱為波形(Waveform)。圖1-1是一個波形的示例。

圖1-1 用波形表示的語音信號

語音識別的第一步是特征提取。特征提取是將輸入的樣點序列轉(zhuǎn)換成特征向量序列,一個特征向量用于表示一個音頻片段,稱為一幀(Frame)。一幀包含若干樣點,在語音識別中,常用25ms作為幀長(Frame length)。為了捕捉語音信號的連續(xù)變化,避免幀之間的特征突變,每隔10ms取一幀,即幀移(Frame shift)為10ms,如圖1-2所示。

圖1-2 語音信號的分幀

采樣是聲波數(shù)字化的方法,而分幀是信號特征化的前提,分幀遵循的前提是,語音信號是一個緩慢變化的過程,這是由人類發(fā)聲器官決定的,因此在25ms內(nèi),認為信號的特性是平穩(wěn)的,這個前提稱為短時平穩(wěn)假設。正是有了這個假設,可以將語音信號轉(zhuǎn)換為緩慢變化的特征向量序列,進而可以通過時序建模的方法來描述。

在現(xiàn)代語音識別系統(tǒng)中,以隱馬爾可夫模型(HMM)為基礎的概率模型占據(jù)了絕對的主導地位。語音識別開源軟件Kaldi也是圍繞著以隱馬爾可夫模型為基礎的概率模型來設計的。為了進行語音識別,所有常見的發(fā)音組合可以表示成一個巨大的有向圖,這可以用HMM進行建模。語音的每一幀都對應一個HMM狀態(tài)。如果讀者熟悉經(jīng)典HMM理論,則知道可以從HMM中搜索累計概率最大的路徑,其搜索算法為維特比(Viterbi)算法。HMM中累計概率最大的路徑所代表的發(fā)音內(nèi)容就是語音識別的結(jié)果。這個搜索過程在語音識別中也叫作解碼(Decode)。路徑的累計概率通過概率模型獲取。下一節(jié)將介紹概率模型,包括聲學模型和語言模型。

1.2.2 概率模型

雖然本書會盡量避免公式的使用,但是對于經(jīng)典的語音識別概率模型,公式描述會勝過很多文字描述。因此,在本書中會使用一些公式。讀者不必擔心,這些公式都非常簡單易懂。

假設Y是輸入的音頻信號,w是單詞序列,在概率模型下,語音識別的任務其實是在給定音頻信號Y的前提下,找出最后可能的單詞序列,這個任務可以由以下公式來簡單概括:

這個公式所得到的便是語音識別系統(tǒng)基于概率模型所給出的解碼結(jié)果。上述公式描述起來非常簡單易懂,但是執(zhí)行起來卻相當困難,主要原因是概率分布P(w|Y)比較難以用可解的模型來表達。幸運的是,我們可以利用貝葉斯定理對上述公式進行變換,公式變換如下:

在上述變換中,我們用到了一個事實:因為Y已知,因此概率P(Y)是一個常量,在求極值的過程中可以被忽略。

從上述公式可見,語音識別系統(tǒng)的概率模型可以被拆分為兩部分:p(Y|w)和P(w),我們需要分別對它們進行建模。概率p(Y|w)的含義是,給定單詞序列w,得到特定音頻信號Y的概率,在語音識別系統(tǒng)中一般被稱作聲學模型。概率P(w)的含義是,給定單詞序列w的概率,在語音識別系統(tǒng)中一般被稱作語言模型。

至此,語音識別的概率模型被拆分為聲學模型和語言模型兩部分,接下來分別對兩部分建模進行介紹。

在介紹聲學模型之前,首先簡單介紹一下特征提取。在前面提到了音頻信號為Y。在實際操作中,由于原始音頻信號往往包含一些不必要的冗余信息,因此需要對原始音頻信號做特征提取,使得提取出來的特征向量更容易描述語音特性,從而提升建模效率。一般來說,會每隔10ms從一個25ms的語音信號窗口中提取一個特征向量,因此實際應用中我們輸入概率模型的Y是一系列特征向量的序列。常用的語音識別特征有梅爾頻率倒譜系數(shù)(Mel-Frequency Cepstral Coefficient,MFCC)、感知線性預測(Perceptual Linear Prediction,PLP)等。

對于聲學特性來說,單詞是一個比較大的建模單元,因此聲學模型p(Y|w)中的單詞序列w會被進一步拆分成一個音素序列。假設Q是單詞序列w對應的發(fā)音單元序列,這里簡化為音素序列,那么聲學模型p(Y|w)可以被進一步轉(zhuǎn)寫為:

其中,公式中的求和是對和單詞序列w所對應的所有可能的音素序列Q集合計算邊緣分布概率。這樣,聲學模型就被拆分成了兩部分:p(Y|Q)和p(Q|w)。

第二部分p(Q|w)是一個相對容易計算的概率分布。假設單詞序列w=w1,...,wL,也即單詞序列w由單詞w1w2,...,wL共L個單詞組成,再假設每個單詞wl所對應的可能發(fā)音是qwl,那么第二部分p(Q|w)可以進行如下拆分:

其中,概率分布P(qwl|wl)的含義是單詞wl的發(fā)音為qwl的概率。詞典中同一個單詞可能有多個發(fā)音,但是在人類語言中,多音詞的不同發(fā)音往往不會有很多,因此第二部分P(Q|w)可以非常容易地從發(fā)音詞典中計算出來。

第一部分p(Y|Q)是聲學模型的核心所在,一般會用隱馬爾可夫模型來進行建模。簡單來理解,對于音素序列Q中的每一個音素,都會構(gòu)建一個音素級隱馬爾可夫模型單元,根據(jù)音素序列Q,會把這些隱馬爾可夫模型單元拼接成一個句子級別的隱馬爾可夫模型,而特征序列Y便是隱馬爾可夫模型的可觀察輸出。在實際的語音識別系統(tǒng)中,隱馬爾可夫模型的應用會比這個簡單描述復雜得多,比如,實際系統(tǒng)中我們會以上下文相關的三音子單元作為最小的隱馬爾可夫模型單元。關于聲學模型的訓練,將在本書第4章詳細介紹。

類似地,可以將語言模型P(w)進行拆分和建模。假設單詞序列w=w1,...,wL由L個單詞組成,語言模型P(w)可以進行如下概率轉(zhuǎn)換:

其中,概率分布Pwl|wl?1,...,w1)的具體含義是,已知單詞序列w1,...,wl?1,下一個單詞為wl的概率。在實踐中會發(fā)現(xiàn),一個已經(jīng)出現(xiàn)的單詞,對于后續(xù)出現(xiàn)的單詞的影響會隨著距離的增大而越來越小,因此,我們一般會把單詞序列的歷史限制在N?1,對應的語言模型也叫作N元語法模型,用概率表示如下:

在實踐中,一般使用N=3或N=4。概率分布Pwl|wl?1wl?2,...,wl?N+1)的含義是,已知單詞序列wl?N+1,...,wl?1,下一個單詞為wl的概率。為了統(tǒng)計這個概率分布,需要收集大量的文本作為訓練語料,在這些文本中統(tǒng)計一元詞組、二元詞組直到N元詞組的個數(shù),然后根據(jù)出現(xiàn)的個數(shù)統(tǒng)計每個N元詞組的概率。由于訓練語料往往是有限的,為了避免稀疏概率或零概率的問題,在實際操作中往往需要采用平滑(Smoothing)、回退(Back off)等技巧。語言模型的訓練和使用將在本書第5章詳細介紹。

1.2.3 端到端語音識別

2014年左右,谷歌的研究人員發(fā)現(xiàn),在大量數(shù)據(jù)的支撐下,直接用神經(jīng)網(wǎng)絡可以從輸入的音頻或音頻對應的特征直接預測出與之對應的單詞,而不需要像我們上面描述的那樣,拆分成聲學模型和語言模型。研究人員使用雙向長短期記憶神經(jīng)網(wǎng)絡(Bidirectional long short-term memory network),附之以一個叫作Connectionist Temporal Classification(CTC)的目標函數(shù),可以直接將音頻信號轉(zhuǎn)換成文字,而不需要經(jīng)過傳統(tǒng)的基于隱馬爾可夫模型的語音識別系統(tǒng)中的中間建模單元(比如基于上下文的三音子建模單元)。由于這種系統(tǒng)直接將音頻轉(zhuǎn)換成文字,所以也被稱作“端到端”系統(tǒng)。2016年左右,基于注意力(Attention)機制的端到端語音識別系統(tǒng)被提出,并迅速成為熱門的研究方向。從2014年到現(xiàn)在,基于不同神經(jīng)網(wǎng)絡結(jié)構(gòu)的端到端語音識別系統(tǒng)不斷地被提出來,在特定場景中的效果也逐漸接近并超越傳統(tǒng)的基于隱馬爾可夫模型的語音識別系統(tǒng)的效果。同為概率模型,端到端語音識別系統(tǒng)極大地簡化了語音識別系統(tǒng)的建模過程,是未來語音識別系統(tǒng)非常有潛力的一個方向。本書對于端到端語音識別系統(tǒng)的具體細節(jié)不做詳細描述,建議讀者關注語音識別技術(shù)在這個方向上的發(fā)展。

主站蜘蛛池模板: 镇安县| 邢台市| 措勤县| 望都县| 昌图县| 乌鲁木齐市| 阿拉善左旗| 太原市| 尉犁县| 灵武市| 偃师市| 保亭| 建水县| 抚州市| 嫩江县| 赤城县| 于都县| 雷山县| 靖宇县| 夏邑县| 特克斯县| 利津县| 芦山县| 扶风县| 新巴尔虎右旗| 武功县| 湘西| 奉化市| 南康市| 泸定县| 大关县| 青海省| 鲜城| 石台县| 临泉县| 永嘉县| 阿城市| 永新县| 武威市| 隆尧县| 西充县|