圖1爲通用的語音識別解碼器框架,聲學模型我們採取的是隱馬爾可夫模型模型,其發射概率爲混合高斯矩陣。 語言模型我們採用的是n-gram的方式。這裏聲學模型和語言模型都爲單一的一個模型。
圖1 通用的語音識別系統框架
這種方式爲目前通用的識別框架,爲了解決不同用戶不同的需求。我們將解碼器展開爲並行解碼空間。在這裏我們假設用戶的口音區別不大,主要區別在於具體說什麼內容, 基於這個假設,我們保持聲學模型不變,生成不同垂直領域的語言模型。每個語言模型掛載到一個在線的解碼器上。通過競爭打分來實現最終的結果輸出。其框架如圖2 所示。
圖2 並行解碼空間的系框框架
相對通用的解碼系統,並行解碼空間系統主要增加了三個模塊: 多路解碼空間&多路語言模型;競爭打分模塊,用戶主題預測。
多路解碼空間&多路語言模型。語言模型訓練一共分爲三個模塊,其中包括分類語料訓練模塊,模板語料訓練模塊,詞表語料訓練模塊三個模塊。具體步驟如下:
步驟一,根據分類的類別構建一組基礎分類詞典進,通過最大後向匹配算法挖掘以及中心詞計算的方法挖掘文本。對文本進行統計頻率排序。將高頻的文本作爲分類訓練樣本
步驟二,將挖到的文本構建文本分類器,用文本分類器在語料中挖掘高召回分值的句子。通過對句子進行詞頻統計,選擇tf-idf高的詞來擴充詞表。迭代第一步驟,當分類詞表不再擴充時,停止迭代,進入步驟三。
步驟三,根據步驟一,步驟二得到的分類詞表和分類語料。通過分類詞表在在分類語料中挖掘出模板,取高頻模板訓練模板分類模板語言模型,取分類語料訓練分類語言模型。根據詞表訓練詞表語言模型。
解碼器空間採用的是wfst(加權有限狀態機),將聲學模型,語言模型和詞典構建wfst網絡圖,並將其compose到一張wfst圖上, 具體做法如圖三所示:
圖三 wfst 網絡構建框架圖
語言模型wfst中,通過將模板語言模型,詞表語言模型,分類語言模型的融合生成一張帶label的wfst圖。
表1
對錶1 左邊,我們按正常的語言模型訓練方式,輸入輸出都爲詞或者label,
表1 右邊,在每個詞的前面增加一個輸入變 label: eps 。通過這種方式將兩個語言模型組合在一起。如圖4所示
圖4
通過這種方法,降低了語言模型對語料的大小的需求,保證了一些不常出現的詞在wfst網格路徑中的出現頻度。
競爭打分模塊,我們採用聲學模型競爭、語言模型競爭、語義模型競爭三種方法
1) 聲學模型分數競爭,對N條備選路徑,進行最終置信度打分,其具體流程如下:
首先,用每一條備選路徑的識別結果進行強制對齊,之後可以計算得出相應的聲學模型置信度,基於聲學模型的置信度算法分爲兩個階段,音素級別的置信度計算如下式
和關鍵詞級別的置信度計算如下式:
2) 語言模型分數
競爭
通過大語料的訓練獲取一個50G的大語言模型,通過該語言模型計算各路語音解碼器識別結果的ppl(困惑度)分數值。 其公式如下
3) 語義層面分數競爭,通過對語音識別結果的語音層面分析來計算打分結果
3.1 提取識別結果中心詞。這裏採用LSA訓練大規模語料計算語義距離矩陣。通過對識別結果進行分詞,計算每個詞之間的語義距離,選取和其他詞語語音距離最近的詞作爲中心詞。
3.2文本分類概率, 通過計算識別文本在文本分類器中的概率來計算最終語音識別結果應該屬於某一路的概率。
用戶主題判定,根據用戶的歷史語音輸入記錄,我們通過主題建模,選擇相應的幾路語音識別解碼器來進行語音識別,並且根據用戶輸入習慣,對不同類別的解碼器給予不同的權重。
結論
經過測試,並行空間解碼器在垂直領域的測試集上有了較大提升。
前景
利用並行解碼空間,語音識別可以更好地支持多個垂直領域,涵蓋範圍包括地圖、音樂、遊戲等多個領域。同時也可以通過模板設計和特定領域語料訓練來針對特定的用戶和商家給予定製服務。