簡(jiǎn)要給大家介紹一下語(yǔ)音怎么變文字的吧。需要說(shuō)明的是,這篇文章為了易讀性而犧牲了嚴(yán)謹(jǐn)性,因此文中的很多表述實(shí)際上是不準(zhǔn)確的。
首先,我們知道聲音實(shí)際上是一種波。常見(jiàn)的mp3等格式都是壓縮格式,必須轉(zhuǎn)成非壓縮的純波形文件來(lái)處理,比如Windows PCM文件,也就是俗稱的wav文件。wav文件里存儲(chǔ)的除了一個(gè)文件頭以外,就是聲音波形的一個(gè)個(gè)點(diǎn)了。下圖是一個(gè)波形的示例。
在開(kāi)始語(yǔ)音識(shí)別之前,有時(shí)需要把首尾端的靜音切除,降低對(duì)后續(xù)步驟造成的干擾。這個(gè)靜音切除的操作一般稱為VAD,需要用到信號(hào)處理的一些技術(shù)。
要對(duì)聲音進(jìn)行分析,需要對(duì)聲音分幀,也就是把聲音切開(kāi)成一小段一小段,每小段稱為一幀。分幀操作一般不是簡(jiǎn)單的切開(kāi),而是使用移動(dòng)窗函數(shù)來(lái)實(shí)現(xiàn),這里不詳述。幀與幀之間一般是有交疊的,就像下圖這樣:
圖中,每幀的長(zhǎng)度為25毫秒,每?jī)蓭g有25-10=15毫秒的交疊。我們稱為以幀長(zhǎng)25ms、幀移10ms分幀。
分幀后,語(yǔ)音就變成了很多小段。但波形在時(shí)域上幾乎沒(méi)有描述能力,因此必須將波形作變換。常見(jiàn)的一種變換方法是提取MFCC特征,根據(jù)人耳的生理特性,把每一幀波形變成一個(gè)多維向量,可以簡(jiǎn)單地理解為這個(gè)向量包含了這幀語(yǔ)音的內(nèi)容信息。這個(gè)過(guò)程叫做聲學(xué)特征提取。實(shí)際應(yīng)用中,這一步有很多細(xì)節(jié),聲學(xué)特征也不止有MFCC這一種,具體這里不講。
至此,聲音就成了一個(gè)12行(假設(shè)聲學(xué)特征是12維)、N列的一個(gè)矩陣,稱之為觀察序列,這里N為總幀數(shù)。觀察序列如下圖所示,圖中,每一幀都用一個(gè)12維的向量表示,色塊的顏色深淺表示向量值的大小。
接下來(lái)就要介紹怎樣把這個(gè)矩陣變成文本了。首先要介紹兩個(gè)概念:
音素:?jiǎn)卧~的發(fā)音由音素構(gòu)成。對(duì)英語(yǔ),一種常用的音素集是卡內(nèi)基梅隆大學(xué)的一套由39個(gè)音素構(gòu)成的音素集,參見(jiàn)The CMU Pronouncing Dictionary?。漢語(yǔ)一般直接用全部聲母和韻母作為音素集,另外漢語(yǔ)識(shí)別還分有調(diào)無(wú)調(diào),不詳述。
狀態(tài):這里理解成比音素更細(xì)致的語(yǔ)音單位就行啦。通常把一個(gè)音素劃分成3個(gè)狀態(tài)。
語(yǔ)音識(shí)別是怎么工作的呢?實(shí)際上一點(diǎn)都不神秘,無(wú)非是:
把幀識(shí)別成狀態(tài)(難點(diǎn))。
把狀態(tài)組合成音素。
把音素組合成單詞。
如下圖所示:
圖中,每個(gè)小豎條代表一幀,若干幀語(yǔ)音對(duì)應(yīng)一個(gè)態(tài),每三個(gè)狀態(tài)組合成一個(gè)音素,若干個(gè)音素組合成一個(gè)單詞。也就是說(shuō),只要知道每幀語(yǔ)音對(duì)應(yīng)哪個(gè)狀態(tài)了,語(yǔ)音識(shí)別的結(jié)果也就出來(lái)了。
那每幀音素對(duì)應(yīng)哪個(gè)狀態(tài)呢?有個(gè)容易想到的辦法,看某幀對(duì)應(yīng)哪個(gè)狀態(tài)的概率最大,那這幀就屬于哪個(gè)狀態(tài)。比如下面的示意圖,這幀在狀態(tài)S3上的條件概率最大,因此就猜這幀屬于狀態(tài)S3。
那這些用到的概率從哪里讀取呢?有個(gè)叫“聲學(xué)模型”的東西,里面存了一大堆參數(shù),通過(guò)這些參數(shù),就可以知道幀和狀態(tài)對(duì)應(yīng)的概率。獲取這一大堆參數(shù)的方法叫做“訓(xùn)練”,需要使用巨大數(shù)量的語(yǔ)音數(shù)據(jù),訓(xùn)練的方法比較繁瑣,這里不講。
但這樣做有一個(gè)問(wèn)題:每一幀都會(huì)得到一個(gè)狀態(tài)號(hào),最后整個(gè)語(yǔ)音就會(huì)得到一堆亂七八糟的狀態(tài)號(hào)。假設(shè)語(yǔ)音有1000幀,每幀對(duì)應(yīng)1個(gè)狀態(tài),每3個(gè)狀態(tài)組合成一個(gè)音素,那么大概會(huì)組合成300個(gè)音素,但這段語(yǔ)音其實(shí)根本沒(méi)有這么多音素。如果真這么做,得到的狀態(tài)號(hào)可能根本無(wú)法組合成音素。實(shí)際上,相鄰幀的狀態(tài)應(yīng)該大多數(shù)都是相同的才合理,因?yàn)槊繋芏獭?/p>
解決這個(gè)問(wèn)題的常用方法就是使用隱馬爾可夫模型(Hidden Markov Model,HMM)。這東西聽(tīng)起來(lái)好像很高深的樣子,實(shí)際上用起來(lái)很簡(jiǎn)單:
第一步,構(gòu)建一個(gè)狀態(tài)網(wǎng)絡(luò)。
第二步,從狀態(tài)網(wǎng)絡(luò)中尋找與聲音最匹配的路徑。
這樣就把結(jié)果限制在預(yù)先設(shè)定的網(wǎng)絡(luò)中,避免了剛才說(shuō)到的問(wèn)題,當(dāng)然也帶來(lái)一個(gè)局限,比如你設(shè)定的網(wǎng)絡(luò)里只包含了“今天晴天”和“今天下雨”兩個(gè)句子的狀態(tài)路徑,那么不管說(shuō)些什么,識(shí)別出的結(jié)果必然是這兩個(gè)句子中的一句。
那如果想識(shí)別任意文本呢?把這個(gè)網(wǎng)絡(luò)搭得足夠大,包含任意文本的路徑就可以了。但這個(gè)網(wǎng)絡(luò)越大,想要達(dá)到比較好的識(shí)別準(zhǔn)確率就越難。所以要根據(jù)實(shí)際任務(wù)的需求,合理選擇網(wǎng)絡(luò)大小和結(jié)構(gòu)。
搭建狀態(tài)網(wǎng)絡(luò),是由單詞級(jí)網(wǎng)絡(luò)展開(kāi)成音素網(wǎng)絡(luò),再展開(kāi)成狀態(tài)網(wǎng)絡(luò)。語(yǔ)音識(shí)別過(guò)程其實(shí)就是在狀態(tài)網(wǎng)絡(luò)中搜索一條最佳路徑,語(yǔ)音對(duì)應(yīng)這條路徑的概率最大,這稱之為“解碼”。路徑搜索的算法是一種動(dòng)態(tài)規(guī)劃剪枝的算法,稱之為Viterbi算法,用于尋找全局最優(yōu)路徑。
這里所說(shuō)的累積概率,由三部分構(gòu)成,分別是:
觀察概率:每幀和每個(gè)狀態(tài)對(duì)應(yīng)的概率
轉(zhuǎn)移概率:每個(gè)狀態(tài)轉(zhuǎn)移到自身或轉(zhuǎn)移到下個(gè)狀態(tài)的概率
語(yǔ)言概率:根據(jù)語(yǔ)言統(tǒng)計(jì)規(guī)律得到的概率
其中,前兩種概率從聲學(xué)模型中獲取,最后一種概率從語(yǔ)言模型中獲取。語(yǔ)言模型是使用大量的文本訓(xùn)練出來(lái)的,可以利用某門語(yǔ)言本身的統(tǒng)計(jì)規(guī)律來(lái)幫助提升識(shí)別正確率。語(yǔ)言模型很重要,如果不使用語(yǔ)言模型,當(dāng)狀態(tài)網(wǎng)絡(luò)較大時(shí),識(shí)別出的結(jié)果基本是一團(tuán)亂麻。這樣基本上語(yǔ)音識(shí)別過(guò)程就完成了。
以上的文字只是想讓大家容易理解,并不追求嚴(yán)謹(jǐn)。
-
信號(hào)處理
+關(guān)注
關(guān)注
48文章
1056瀏覽量
104105 -
語(yǔ)音識(shí)別
+關(guān)注
關(guān)注
39文章
1782瀏覽量
114232
原文標(biāo)題:詳解語(yǔ)音識(shí)別的技術(shù)原理:語(yǔ)音如何變?yōu)槲淖郑?/p>
文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
從“聽(tīng)得見(jiàn)”到“聽(tīng)得懂”:語(yǔ)音識(shí)別芯片的AI進(jìn)化

廠家芯資訊|WTK6900系列語(yǔ)音識(shí)別芯片:精準(zhǔn)交互,智創(chuàng)未來(lái)

語(yǔ)音識(shí)別技術(shù)在通信領(lǐng)域中的應(yīng)用實(shí)例
詳解語(yǔ)音識(shí)別技術(shù)在通信領(lǐng)域中的應(yīng)用

【「嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)」閱讀體驗(yàn)】+ 基于語(yǔ)音識(shí)別的智能杯墊
基于語(yǔ)音識(shí)別的智能會(huì)議系統(tǒng)具備哪些交互功能
語(yǔ)音識(shí)別技術(shù)在醫(yī)療領(lǐng)域的應(yīng)用
語(yǔ)音識(shí)別與自然語(yǔ)言處理的關(guān)系
語(yǔ)音識(shí)別技術(shù)的應(yīng)用與發(fā)展
基于語(yǔ)音識(shí)別技術(shù)的智能家居控制系統(tǒng)

ASR與傳統(tǒng)語(yǔ)音識(shí)別的區(qū)別
ASR語(yǔ)音識(shí)別技術(shù)應(yīng)用


評(píng)論