www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 21ic電子網(wǎng)
[導(dǎo)讀]簡要給大家介紹一下語音怎么變文字的吧。需要說明的是,這篇文章為了易讀性而犧牲了嚴(yán)謹(jǐn)性,因此文中的很多表述實際上是不準(zhǔn)確的。對于有興趣深入了解的同學(xué),本文的末尾推薦了幾份進(jìn)階閱讀材料。下面我們開始。 首先,我們知道聲音實際上是一種波。常見的mp3


簡要給大家介紹一下語音怎么變文字的吧。需要說明的是,這篇文章為了易讀性而犧牲了嚴(yán)謹(jǐn)性,因此文中的很多表述實際上是不準(zhǔn)確的。對于有興趣深入了解的同學(xué),本文的末尾推薦了幾份進(jìn)階閱讀材料。下面我們開始。

首先,我們知道聲音實際上是一種波。常見的mp3等格式都是壓縮格式,必須轉(zhuǎn)成非壓縮的純波形文件來處理,比如Windows PCM文件,也就是俗稱的wav文件。wav文件里存儲的除了一個文件頭以外,就是聲音波形的一個個點了。下圖是一個波形的示例。

語音是如何變?yōu)槲淖值??詳解語音識別技術(shù)原理

在開始語音識別之前,有時需要把首尾端的靜音切除,降低對后續(xù)步驟造成的干擾。這個靜音切除的操作一般稱為VAD,需要用到信號處理的一些技術(shù)。

要對聲音進(jìn)行分析,需要對聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀。分幀操作一般不是簡單的切開,而是使用移動窗函數(shù)來實現(xiàn),這里不詳述。幀與幀之間一般是有交疊的,就像下圖這樣:

語音是如何變?yōu)槲淖值??詳解語音識別技術(shù)原理

圖中,每幀的長度為25毫秒,每兩幀之間有25-10=15毫秒的交疊。我們稱為以幀長25ms、幀移10ms分幀。

分幀后,語音就變成了很多小段。但波形在時域上幾乎沒有描述能力,因此必須將波形作變換。常見的一種變換方法是提取MFCC特征,根據(jù)人耳的生理特性,把每一幀波形變成一個多維向量,可以簡單地理解為這個向量包含了這幀語音的內(nèi)容信息。這個過程叫做聲學(xué)特征提取。實際應(yīng)用中,這一步有很多細(xì)節(jié),聲學(xué)特征也不止有MFCC這一種,具體這里不講。

至此,聲音就成了一個12行(假設(shè)聲學(xué)特征是12維)、N列的一個矩陣,稱之為觀察序列,這里N為總幀數(shù)。觀察序列如下圖所示,圖中,每一幀都用一個12維的向量表示,色塊的顏色深淺表示向量值的大小。

語音是如何變?yōu)槲淖值模吭斀庹Z音識別技術(shù)原理

接下來就要介紹怎樣把這個矩陣變成文本了。首先要介紹兩個概念:

  1. 音素:單詞的發(fā)音由音素構(gòu)成。對英語,一種常用的音素集是卡內(nèi)基梅隆大學(xué)的一套由39個音素構(gòu)成的音素集,參見The CMU Pronouncing Dictionary?。漢語一般直接用全部聲母和韻母作為音素集,另外漢語識別還分有調(diào)無調(diào),不詳述。

  2. 狀態(tài):這里理解成比音素更細(xì)致的語音單位就行啦。通常把一個音素劃分成3個狀態(tài)。

語音識別是怎么工作的呢?實際上一點都不神秘,無非是:

把幀識別成狀態(tài)(難點)。

把狀態(tài)組合成音素。

把音素組合成單詞。

如下圖所示:

語音是如何變?yōu)槲淖值??詳解語音識別技術(shù)原理

圖中,每個小豎條代表一幀,若干幀語音對應(yīng)一個狀態(tài),每三個狀態(tài)組合成一個音素,若干個音素組合成一個單詞。也就是說,只要知道每幀語音對應(yīng)哪個狀態(tài)了,語音識別的結(jié)果也就出來了。

那每幀音素對應(yīng)哪個狀態(tài)呢?有個容易想到的辦法,看某幀對應(yīng)哪個狀態(tài)的概率最大,那這幀就屬于哪個狀態(tài)。比如下面的示意圖,這幀在狀態(tài)S3上的條件概率最大,因此就猜這幀屬于狀態(tài)S3。

語音是如何變?yōu)槲淖值??詳解語音識別技術(shù)原理

那這些用到的概率從哪里讀取呢?有個叫“聲學(xué)模型”的東西,里面存了一大堆參數(shù),通過這些參數(shù),就可以知道幀和狀態(tài)對應(yīng)的概率。獲取這一大堆參數(shù)的方法叫做“訓(xùn)練”,需要使用巨大數(shù)量的語音數(shù)據(jù),訓(xùn)練的方法比較繁瑣,這里不講。

但這樣做有一個問題:每一幀都會得到一個狀態(tài)號,最后整個語音就會得到一堆亂七八糟的狀態(tài)號。假設(shè)語音有1000幀,每幀對應(yīng)1個狀態(tài),每3個狀態(tài)組合成一個音素,那么大概會組合成300個音素,但這段語音其實根本沒有這么多音素。如果真這么做,得到的狀態(tài)號可能根本無法組合成音素。實際上,相鄰幀的狀態(tài)應(yīng)該大多數(shù)都是相同的才合理,因為每幀很短。

解決這個問題的常用方法就是使用隱馬爾可夫模型(Hidden Markov Model,HMM)。這東西聽起來好像很高深的樣子,實際上用起來很簡單:

第一步,構(gòu)建一個狀態(tài)網(wǎng)絡(luò)。

第二步,從狀態(tài)網(wǎng)絡(luò)中尋找與聲音最匹配的路徑。

這樣就把結(jié)果限制在預(yù)先設(shè)定的網(wǎng)絡(luò)中,避免了剛才說到的問題,當(dāng)然也帶來一個局限,比如你設(shè)定的網(wǎng)絡(luò)里只包含了“今天晴天”和“今天下雨”兩個句子的狀態(tài)路徑,那么不管說些什么,識別出的結(jié)果必然是這兩個句子中的一句。

那如果想識別任意文本呢?把這個網(wǎng)絡(luò)搭得足夠大,包含任意文本的路徑就可以了。但這個網(wǎng)絡(luò)越大,想要達(dá)到比較好的識別準(zhǔn)確率就越難。所以要根據(jù)實際任務(wù)的需求,合理選擇網(wǎng)絡(luò)大小和結(jié)構(gòu)。

搭建狀態(tài)網(wǎng)絡(luò),是由單詞級網(wǎng)絡(luò)展開成音素網(wǎng)絡(luò),再展開成狀態(tài)網(wǎng)絡(luò)。語音識別過程其實就是在狀態(tài)網(wǎng)絡(luò)中搜索一條最佳路徑,語音對應(yīng)這條路徑的概率最大,這稱之為“解碼”。路徑搜索的算法是一種動態(tài)規(guī)劃剪枝的算法,稱之為Viterbi算法,用于尋找全局最優(yōu)路徑。

語音是如何變?yōu)槲淖值模吭斀庹Z音識別技術(shù)原理

這里所說的累積概率,由三部分構(gòu)成,分別是:

  1. 觀察概率:每幀和每個狀態(tài)對應(yīng)的概率

  2. 轉(zhuǎn)移概率:每個狀態(tài)轉(zhuǎn)移到自身或轉(zhuǎn)移到下個狀態(tài)的概率

  3. 語言概率:根據(jù)語言統(tǒng)計規(guī)律得到的概率

其中,前兩種概率從聲學(xué)模型中獲取,最后一種概率從語言模型中獲取。語言模型是使用大量的文本訓(xùn)練出來的,可以利用某門語言本身的統(tǒng)計規(guī)律來幫助提升識別正確率。語言模型很重要,如果不使用語言模型,當(dāng)狀態(tài)網(wǎng)絡(luò)較大時,識別出的結(jié)果基本是一團亂麻。

這樣基本上語音識別過程就完成了。

以上的文字只是想讓大家容易理解,并不追求嚴(yán)謹(jǐn)。事實上,HMM的內(nèi)涵絕不是上面所說的“無非是個狀態(tài)網(wǎng)絡(luò)”,如果希望深入了解,下面給出了幾篇閱讀材料:

1. Rabiner L R. A tutorial on hidden Markov models and selected applications in speech recognition. Proceedings of the IEEE, 1989, 77(2): 257-286.
入門必讀。深入淺出地介紹了基于HMM的語音識別的原理,不注重公式的細(xì)節(jié)推導(dǎo)而是著重闡述公式背后的物理意義。

2. Bilmes J A. A gentle tutorial of the EM algorithm and its application to parameter estimation for Gaussian mixture and hidden Markov models. International Computer Science Institute, 1998, 4(510): 126.
詳細(xì)介紹了用E-M算法訓(xùn)練HMM參數(shù)的推導(dǎo)過程,首先講E-M的基本原理,然后講解如何應(yīng)用到GMM的訓(xùn)練,最后講解如何應(yīng)用到HMM的訓(xùn)練。

3. Young S, Evermann G, Gales M, et al. The HTK book (v3.4). Cambridge University, 2006.
HTK Book,開源工具包HTK的文檔。雖然現(xiàn)在HTK已經(jīng)不是最流行的了,但仍然強烈推薦按照書里的第二章流程做一遍,你可以搭建出一個簡單的數(shù)字串識別系統(tǒng)。

4. Graves A. Supervised Sequence Labelling with Recurrent Neural Networks. Springer Berlin Heidelberg, 2012: 15-35.
基于神經(jīng)網(wǎng)絡(luò)的語音識別的入門必讀。從神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)、BP算法等介紹到 LSTM、CTC。

5. 俞棟, 鄧力. 解析深度學(xué)習(xí)——語音識別實踐, 電子工業(yè)出版社, 2016.
高質(zhì)量的中文資料非常稀有,推薦買一本。最早把深度學(xué)習(xí)技術(shù)應(yīng)用于語音識別就是這本書的作者。

(本文轉(zhuǎn)載自《知乎》:語音識別的技術(shù)原理是什么?——張俊博

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

21ic電子網(wǎng)

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉