語音識別原理 五分鐘就能弄懂


首先,我們知道聲音實際上是一種波 。常見的mp3、wmv等格式都是壓縮格式,必須轉成非壓縮的純波形文件來處理,比如Windows PCM文件,也就是俗稱的wav文件 。wav文件里存儲的除了一個文件頭以外,就是聲音波形的一個個點了 。
在開始語音識別之前,有時需要把首尾端的靜音切除,降低對后續步驟造成的干擾 。這個靜音切除的操作一般稱為VAD,需要用到信號處理的一些技術 。要對聲音進行分析,需要對聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀 。分幀操作一般不是簡單的切開,而是使用移動窗函數來實現,這里不詳述 。幀與幀之間一般是有交疊的 。
每幀的長度為25毫秒,每兩幀之間有25-10=15毫秒的交疊 。我們稱為以幀長25ms、幀移10ms分幀 。每幀的長度為25毫秒,每兩幀之間有25-10=15毫秒的交疊 。我們稱為以幀長25ms、幀移10ms分幀 。
分幀后,語音就變成了很多小段 。但波形在時域上幾乎沒有描述能力,因此必須將波形作變換 。常見的一種變換方法是提取MFCC特征,根據人耳的生理特性,把每一幀波形變成一個多維向量,可以簡單地理解為這個向量包含了這幀語音的內容信息 。這個過程叫做聲學特征提取 。實際應用中,這一步有很多細節,聲學特征也不止有MFCC這一種,具體這里不講 。
至此,聲音就成了一個12行(假設聲學特征是12維)、N列的一個矩陣,稱之為觀察序列,這里N為總幀數 。觀察序列如下圖所示,圖中,每一幀都用一個12維的向量表示,色塊的顏色深淺表示向量值的大小 。
接下來就要介紹怎樣把這個矩陣變成文本了 。首先要介紹兩個概念:音素:單詞的發音由音素構成 。對英語,一種常用的音素集是卡內基梅隆大學的一套由39個音素構成的音素集,參見The CMU Pronouncing Dictionary 。漢語一般直接用全部聲母和韻母作為音素集,另外漢語識別還分有調無調,不詳述 。狀態:這里理解成比音素更細致的語音單位就行啦 。通常把一個音素劃分成3個狀態 。
【語音識別原理 五分鐘就能弄懂】語音識別是怎么工作的呢?實際上一點都不神秘,無非是:第一步,把幀識別成狀態(難點);第二步,把狀態組合成音素;第三步,把音素組合成單詞 。

    推薦閱讀