php婚慶網(wǎng)站競價(jià)賬戶托管哪家好
一、說明
????????語音識(shí)別是指計(jì)算機(jī)通過處理人類語言的音頻信號(hào),將其轉(zhuǎn)換為可理解的文本形式的技術(shù)。也就是說,它可以將人類的口語語音轉(zhuǎn)換為文本,以便計(jì)算機(jī)能夠進(jìn)一步處理和理解。它是自然語言處理技術(shù)的一部分,被廣泛應(yīng)用于語音識(shí)別助手,語音交互系統(tǒng),語音搜索等領(lǐng)域。
二、語音識(shí)別的意圖和實(shí)現(xiàn)
????????語音識(shí)別可以被視為根據(jù)聲學(xué)、發(fā)音詞典和語言模型找到最佳單詞序列 (W)。
????????在上一篇文章中,我們學(xué)習(xí)了HMM和GMM的基礎(chǔ)知識(shí)。現(xiàn)在是時(shí)候?qū)⑺鼈兎旁谝黄饋順?gòu)建這些模型了。
詞匯
發(fā)音詞典對(duì)單詞的電話序列進(jìn)行建模。通過使用滑動(dòng)窗口分割音頻剪輯,我們生成一系列音頻幀。對(duì)于每一幀,我們提取了 39 個(gè)?MFCC 特征。即,我們生成一系列特征向量?X(x?,?x?, ...,?xi,?...),其中?xi?包含 39 個(gè)特征。似然?p(X|W) 可以根據(jù)詞典和聲學(xué)模型近似。
發(fā)音詞典是用馬爾可夫鏈建模的。
HMM 模型中的自循環(huán)將電話與觀察到的音頻幀對(duì)齊。
這為處理發(fā)音的時(shí)間變化提供了靈活性。
源
給定一個(gè)經(jīng)過訓(xùn)練的HMM模型,我們對(duì)觀察結(jié)果進(jìn)行解碼以找到內(nèi)部狀態(tài)序列。這可以通過下面的格子可視化。下面的箭頭演示了可能的狀態(tài)轉(zhuǎn)換。給定一系列觀察值X,我們可以使用維特比算法來解碼最佳電話序列(比如下面的紅線)。
從源代碼修改
在本文中,我們不會(huì)重復(fù)有關(guān)HMM和GMM的背景信息。如果您需要,這是關(guān)于這兩個(gè)主題的上一篇文章。它包括維特比算法,用于尋找最佳狀態(tài)序列。
但是,手機(jī)不是同質(zhì)的。頻率的幅度從開始到結(jié)束都在變化。為了反映這一點(diǎn),我們進(jìn)一步將手機(jī)細(xì)分為三種狀態(tài):手機(jī)的開頭、中間和結(jié)束部分。
從源代碼修改
這是我們從每部手機(jī)的一個(gè)狀態(tài)更改為三個(gè)狀態(tài)的HMM。
來源(“六”字)
????????每個(gè)內(nèi)部狀態(tài)的可觀察量將由GMM建模。
????????我們可以通過在弧中寫入輸出分布來簡化 HMM 拓?fù)涞睦L制方式。因此,弧上的標(biāo)簽表示輸出分布(觀測值),而不是將觀測值繪制為節(jié)點(diǎn)(狀態(tài))。以下是單詞“two”的 HMM 拓?fù)?#xff0c;其中包含 2 部電話,每部電話具有三種狀態(tài)?;〉臉?biāo)簽表示聲學(xué)模型 (GMM)。
????????給定電話 W 的觀測值 X 的可能性是根據(jù)所有可能路徑的總和計(jì)算得出的。
????????對(duì)于每個(gè)路徑,概率等于路徑的概率乘以給定內(nèi)部狀態(tài)的觀測值的概率。第二種概率將由 m 分量 GMM 建模。所以所有路徑的總概率相等
????????在實(shí)踐中,我們使用對(duì)數(shù)似然(log(P(x|w)))來避免下溢問題。這是HMM模型,每個(gè)電話使用三種狀態(tài)來識(shí)別數(shù)字。
????????為了處理演講中的沉默、噪音和填充的停頓,我們可以將它們建模為 SIL,并將其視為另一部手機(jī)。
????????然而,這些靜音聲音更難捕捉。我們可以用 5 個(gè)內(nèi)部狀態(tài)而不是 <> 個(gè)來建模它。對(duì)于某些 ASR,我們還可能使用不同的手機(jī)進(jìn)行不同類型的靜音和填充暫停。
????????我們還可以引入跳過弧,即具有空輸入 (ε) 的弧,以對(duì)話語中的跳過聲音進(jìn)行建模。
三、上下文相關(guān)電話
????????關(guān)節(jié)取決于之前和之后的電話(共關(guān)節(jié))。聲音根據(jù)單詞內(nèi)或單詞之間的周圍上下文而變化。例如,同位素(音素的聲學(xué)實(shí)現(xiàn))可能是跨詞邊界共發(fā)音的結(jié)果。相鄰電話對(duì)語音變化的影響很大。例如,如果我們把手放在嘴前,當(dāng)我們發(fā)音 /p/ 代表“旋轉(zhuǎn)”和 /p/ 代表“pin”時(shí),我們會(huì)感覺到氣流的差異。
????????在構(gòu)建復(fù)雜的聲學(xué)模型時(shí),我們不應(yīng)該獨(dú)立于其上下文來處理手機(jī)。音頻幀的標(biāo)簽應(yīng)包括電話及其上下文。如下圖所示,對(duì)于音素 /eh/,頻譜圖在不同的上下文下是不同的。
因此,給定下面的音頻幀,我們應(yīng)該將它們分別標(biāo)記為 /eh/,上下文 (/w/, /d/)、(/y/, /l/) 和 (/eh/, /n/)。
????????這稱為三音器。
? ? ? ? 從源代碼修改
????????三音 s-iy+l 表示電話 /iy/ 前面是 /s/,后跟 /l/。如果忽略上下文,則前面的所有三個(gè)音頻幀都引用 /iy/。但在上下文相關(guān)的方案中,這三個(gè)幀將被歸類為三個(gè)不同的 CD 電話。但請(qǐng)注意,三音符有很多符號(hào)。即使對(duì)于這個(gè)系列,也使用了幾種不同的符號(hào)。
????????以下是分別使用電話和三音器表示“杯子”一詞的示例。手機(jī)或三部電話都將由三種內(nèi)部狀態(tài)建模。我們不會(huì)增加表示“電話”的狀態(tài)數(shù)量。我們只是擴(kuò)展標(biāo)簽,以便我們可以以更高的粒度對(duì)它們進(jìn)行分類。
從源代碼修改
然而,這有一個(gè)主要缺點(diǎn)。比如說,我們最初有 50 部手機(jī)。HMM 模型將有 50 × 3 個(gè)內(nèi)部狀態(tài)(每部手機(jī)的開始、中間和結(jié)束狀態(tài))。對(duì)于三音器,我們有 503 × 3 個(gè)三音器狀態(tài),即每部電話 502 個(gè)三音器。狀態(tài)的分解數(shù)變得無法管理。
國家捆綁
幸運(yùn)的是,三音器的某些組合很難與頻譜圖區(qū)分開來。實(shí)際上,可能的三音位數(shù)大于觀察到的三音位數(shù)。
因此,某些州可以共享相同的GMM模型。這稱為狀態(tài)綁定。
源
要找到這樣的聚類,我們可以參考電話的表達(dá)方式:停止、鼻音、咝咝聲、元音、側(cè)音等......我們創(chuàng)建了一個(gè)決策樹來探索對(duì)可以共享相同GMM模型的三音器進(jìn)行聚類的可能方法。
源
通常,我們使用訓(xùn)練數(shù)據(jù)構(gòu)建此語音決策樹。讓我們探索構(gòu)建樹的另一種可能性。以下是在不同語境下說 /p/ 的不同方式。
源
對(duì)于每部手機(jī),我們創(chuàng)建一個(gè)決策樹,其中包含基于左右上下文的決策樹樁。樹的葉子聚集了可以用相同的GMM模型建模的三音器。
源
我們可以應(yīng)用決策樹技術(shù)來避免過度擬合。例如,我們可以限制葉節(jié)點(diǎn)的數(shù)量和/或樹的深度。我們的訓(xùn)練目標(biāo)是最大限度地提高最終GMM模型訓(xùn)練數(shù)據(jù)的可能性。以下是我們?nèi)绾问褂脿顟B(tài)綁定從手機(jī)演變?yōu)槿魴C(jī)。對(duì)于每部手機(jī),我們現(xiàn)在有更多的子類別(三音器)。我們使用GMM而不是簡單的高斯來建模它們。
源
四、連續(xù)語音識(shí)別
????????單字語音識(shí)別的概念可以通過HMM模型擴(kuò)展到連續(xù)語音。我們在HMM中添加弧線以將單詞連接在一起。
源
五、語言模型
????????即使音頻剪輯在語法上可能不完美或跳過了單詞,我們?nèi)匀患僭O(shè)我們的音頻剪輯在語法和語義上是合理的。因此,如果我們在解碼中包含語言模型,我們可以提高 ASR 的準(zhǔn)確性。
雙格拉姆模型
語言模型計(jì)算單詞序列的可能性。
在雙語(又名 2 克)語言模型中,當(dāng)前單詞僅取決于最后一個(gè)單詞。
例如
讓我們看一下馬爾可夫鏈,如果我們將雙字母語言模型與發(fā)音詞典集成在一起。下面的三個(gè)詞典分別用于單詞一、二和零。然后我們用雙元語言模型將它們連接在一起,轉(zhuǎn)移概率像p(one|two)。
源
計(jì)算?P(“零”|”二“),我們抓取語料庫(例如來自包含 23M 字的《華爾街日?qǐng)?bào)》語料庫)并計(jì)算
如果語言模型依賴于最后 2 個(gè)單詞,則稱為三元組。
從源代碼修改
n-gram 取決于最后的 n-1 個(gè)單詞。這是雙元組和三元組的狀態(tài)圖。對(duì)于三元組模型,每個(gè)節(jié)點(diǎn)表示具有最后兩個(gè)單詞的狀態(tài),而不僅僅是一個(gè)單詞。
這是使用三元組語言模型的可視化。
六、平滑
即使23M個(gè)單詞聽起來也很多,但語料庫仍然可能包含合法的單詞組合。對(duì)于三元組或其他 n-gram,這種情況變得更糟。通常,三元組或 n 元語法模型的數(shù)據(jù)很少。如果我們將《華爾街日?qǐng)?bào)》的尸體分成兩半,一組數(shù)據(jù)中36.6%的三卦(4.32M / 11.8M)將不會(huì)在另一半中看到。這很糟糕,因?yàn)槲覀冇?xùn)練模型說這些合法序列的概率為零。
加一平滑
讓我們先從 unigram 看問題。我們問題的一個(gè)解決方案是在所有計(jì)數(shù)中添加一個(gè)偏移量 k(比如 1)以調(diào)整?P(W) 的概率,這樣即使我們沒有在語料庫中看到它們,P(W) 也會(huì)都是正數(shù)。以下是平滑計(jì)數(shù)和人為噴射計(jì)數(shù)后的平滑概率。
從源代碼修改
但是很難確定k的正確值。但是讓我們考慮一下平滑的原理是什么。如果我們沒有足夠的數(shù)據(jù)來做出估計(jì),我們會(huì)回退到與原始統(tǒng)計(jì)數(shù)據(jù)密切相關(guān)的其他統(tǒng)計(jì)數(shù)據(jù),并顯示出更準(zhǔn)確。然后,我們根據(jù)這些統(tǒng)計(jì)數(shù)據(jù)插值我們的最終答案。例如,如果在語料庫中沒有觀察到雙元詞,我們可以從出現(xiàn)一次的雙元詞中借用統(tǒng)計(jì)數(shù)據(jù)。
良好的圖靈平滑
讓我們回到 n-gram 模型進(jìn)行討論。平滑的一般思想是重新插值訓(xùn)練數(shù)據(jù)中看到的計(jì)數(shù),以伴隨測試數(shù)據(jù)中看不見的單詞組合。在這個(gè)過程中,我們重新洗牌計(jì)數(shù)并壓縮看到的單詞的概率,以適應(yīng)看不見的n元語法。
一種可能性是將平滑計(jì)數(shù)?r* 和概率?p?計(jì)算為:
從源代碼修改
直觀地說,我們用具有“r?+ 1”計(jì)數(shù)的上層n元語法來平滑概率質(zhì)量
對(duì)于看不見的 n 元語法,我們通過使用具有單次出現(xiàn)的 n 元語法數(shù) (n?) 來計(jì)算其概率。
但在某些情況下,上層 (r+1) 的 n 元語法為零。我們將首先應(yīng)用插值?S?來平滑計(jì)數(shù)。
目前,我們不需要進(jìn)一步詳細(xì)說明。我們將繼續(xù)介紹另一種更有趣的平滑方法。但是,如果您對(duì)此方法感興趣,可以閱讀本文以獲取更多信息。
卡茨平滑
Katz 平滑是在數(shù)據(jù)稀疏時(shí)平滑統(tǒng)計(jì)信息的常用方法之一。對(duì)于雙元模型,平滑計(jì)數(shù)和概率的計(jì)算公式為:
此方法基于折扣概念,我們降低某些類別的計(jì)數(shù),以將計(jì)數(shù)重新分配給訓(xùn)練數(shù)據(jù)集中計(jì)數(shù)為零的單詞。
如果計(jì)數(shù)高于閾值(例如 5),則折扣?d?等于 1,即我們將使用實(shí)際計(jì)數(shù)。他們有足夠的數(shù)據(jù),因此相應(yīng)的概率是可靠的。對(duì)于計(jì)數(shù)較低的單詞組合,我們希望折扣?d?與好圖靈平滑成正比。
此外,我們希望從折扣中保存的計(jì)數(shù)等于?n?,Good-Tuuring 將其分配給零計(jì)數(shù)。
為了滿足這兩個(gè)限制,折扣變?yōu)?/p>
在良圖靈平滑中,每個(gè)具有零計(jì)數(shù)的 n 元語法都具有相同的平滑計(jì)數(shù)。對(duì)于 Katz 平滑,我們會(huì)做得更好。α的選擇是這樣
因此,在重新洗牌計(jì)數(shù)后,雙字母中第一個(gè)單詞給出的總體統(tǒng)計(jì)數(shù)據(jù)將與統(tǒng)計(jì)數(shù)據(jù)相匹配。我們將平滑計(jì)數(shù)計(jì)算為:
因此,即使訓(xùn)練數(shù)據(jù)集中不存在單詞對(duì),如果第二個(gè)單詞?wi?很受歡迎,我們將平滑計(jì)數(shù)調(diào)整得更高。
α等于
直觀地說,如果有許多低計(jì)數(shù)的單詞對(duì)以相同的第一個(gè)單詞開頭,則平滑計(jì)數(shù)會(huì)增加。
在這種情況下,我們預(yù)計(jì)(或預(yù)測)具有相同第一個(gè)單詞的許多其他對(duì)將出現(xiàn)在測試中,而不是訓(xùn)練中。實(shí)證結(jié)果表明,Katz 平滑能夠很好地平滑稀疏數(shù)據(jù)概率。同樣,如果您想更好地了解平滑,請(qǐng)參閱本文。
退避模型
Katz 平滑是一個(gè)退避模型,當(dāng)我們找不到任何 n 元語法的出現(xiàn)時(shí),我們回退,即如果我們找不到 n-gram 的任何出現(xiàn),我們用 n-1 克估計(jì)它。但是在 n-1 克中也沒有出現(xiàn),我們不斷回落,直到找到非零出現(xiàn)計(jì)數(shù)。退避概率的計(jì)算公式為:
其中 α 和?P?定義為:
每當(dāng)我們回退到較低跨度的語言模型時(shí),我們都需要用α來縮放概率,以確保所有概率的總和為 1。
讓我們舉一個(gè)例子來闡明這個(gè)概念。假設(shè)我們從未在我們的訓(xùn)練語料庫中找到 5 克的“第 10 個(gè)符號(hào)是 obelus”。因此,我們必須回退到 4 克模型來計(jì)算概率。
P(Obelus | 符號(hào)為 an) 通過計(jì)算以下相應(yīng)的出現(xiàn)次數(shù)來計(jì)算:
最后,我們計(jì)算α來重新規(guī)范概率。
這是最終的平滑計(jì)數(shù)和概率。
七、接下去的內(nèi)容
????????現(xiàn)在,我們知道如何對(duì) ASR 進(jìn)行建模。但是,我們?nèi)绾问褂眠@些模型來解碼話語呢?