一種語音識別解碼效率優化方法
2023-07-22 03:34:31
專利名稱:一種語音識別解碼效率優化方法
技術領域:
本發明涉及一種在連續語音識別系統中進行語音識別解碼效率優化方法,用於提升基於雲計算的語音識別系統的並發路數以及識別速度。
背景技術:
隨著手機等智能終端上語音輸入功能和應用的普及,用戶在手機等智能終端上使用語音輸入的場景越來越多。而這些應用場景多是基於雲計算進行,智能終端負責錄音及音頻數據壓縮,然後將數據發送到雲端的識別伺服器上進行識別,識別結果再返回給智能終端。對於基於雲計算的語音識別系統,如果能夠提升單臺識別伺服器的並發路數和識別速度,相同數量的識別伺服器可以同時支持更多用戶的使用,從而可以為整個雲計算平臺節省大量硬體成本。然而,為了提升語音識別效果,往往會訓練出規模龐大的語言模型和聲學模型,由這些模型構建的解碼網絡加載起來常常需要幾十G的內存。語音識別過程需要頻繁地在幾十G的內存中做查詢,特別是在多路並發的情況下,內存讀取的帶寬會成為制約系統效率(並發路數和識別速度)的瓶頸。目前的連續語音識別系統如圖1所示,包括如下幾個部分端點檢測、特徵提取、解碼以及結果輸出。在連續語音識別系統的幾個模塊中,解碼模塊計算量佔比最大(佔80%以上),內存讀取也最頻繁,是影響整個系統效率(並發路數和識別速度)的最關鍵模塊,也是最需要進行效率優化的核心模塊。目前的解碼方案,是基於幀同步的Viterbi解碼。系統首先將語言模型的語義網絡通過聲學模型擴展成基於模型狀態層的搜索網絡,其示意圖如圖2所示。在這種基於狀態節點的搜索網絡中所有聲學模型狀態按時間順序重複排列,使得每一時間點的狀態列都對應於一幀語音特徵矢量。搜索時,分別計算每一列狀態節點相對於輸入語音幀的累積路徑概率。在搜索到最後一幀語音時,具有最大累積概率的狀態節點即為最優節點,通過從該節點執行狀態回溯就可以得到最優解碼狀態序列,從而得到對應的單詞序列。一個實際的解碼網絡如圖3所示其中,每一個紅點代表解碼網絡中的一個節點,每一個矩形代表解碼網絡中的一條弧,而每一條弧上又包含3個狀態,該狀態對應圖2中的狀態。具體的算法流程如下(1)對於每一幀語音特徵矢量,先在弧內進行動態規劃,每一條弧上最多可以輸出一個得分和對應的路徑;(2)根據Viterbi算法,該得分和路徑傳遞到該弧後續節點上進行競爭,保留優勝者;(3)保留到節點上的優勝者,在下一幀到來時繼續擴展到該節點的後續出弧上去;(4)對於最後一幀語音特徵矢量,傳遞到解碼網絡最後一個節點(Final)並勝出的路徑即為最優路徑;(5)回溯最優路徑,可以得到對應的詞序列,即為識別結果。對於現有的解碼技術,每一幀特徵矢量到來的時候,解碼網絡上的節點都要訪問其所有出弧,並將該節點上競爭勝出的得分和對應的Viterbi路徑傳遞到後續的弧上去。對於特別是基於語音雲的連續語音識別系統,其解碼網絡會佔用幾十G的內存,訪問節點的出弧即代表著要訪問其出弧對應的所有內存,在多路並發的情況下(即多個用戶同時使用同一臺識別伺服器使用識別服務),同時訪問不同位置的內存的節點會有幾十萬甚至是上百萬個,這樣巨大的內存訪問對於目前主流配置的伺服器的內存帶寬是一種挑戰。由於內存帶寬不足,造成了內存訪問時的等待,從而影響了整個識別系統的識別速度。
發明內容
本發明技術解決問題克服現有技術的不足,提供一種語音識別解碼效率優化方法,在大內存的解碼網絡上進行解碼的時候,能夠減少內存訪問次數,避開內存帶寬不足的瓶頸,從而優化連續語音識別系統的識別效率。本發明技術解決方案一種語音識別解碼效率優化方法,其特點在於與傳統的幀同步解碼算法相比,最大不同之處在於不是每一幀語音特徵矢量都要進行Viterbi,而是每三幀進行一次Viterbi,稱作幀半同步的解碼算法,其實現流程如下(I)對於每三幀語音特徵矢量,先在弧內進行Viterbi動態規劃,每一條弧上最多能夠輸出三個得分和對應的路徑,三個得分和路徑分別對應三個連續不同幀的輸出;(2)根據Viterbi算法,該三個得分和對應的路徑傳遞到該弧的後續節點上進行競爭(和對應幀的得分和路徑競爭);(3)保留到節點上的優勝者,在下三幀到來時繼續擴展到該節點的後續出弧上去;(4)對於最後一幀語音特徵矢量,傳遞到解碼網絡最後一個節點(Final)並勝出的路徑即為最優路徑;(5)回溯最優路徑,得到對應的詞序列,即為識別結果。所述步驟(2)中競爭過程實現步驟如下對於每一個節點,會有一條或者多條弧與之連接;在某一時刻t,會有一條或者多條弧向該節點傳遞路徑(每條路徑帶有一個得分,該得分刻畫該路徑的可能性),每一個弧上會傳遞三個路逕到該節點,分別對應t-2,t-1和t時刻的路徑;所有弧上所傳遞過來的同一時刻的路徑根據得分進行競爭,得分最高的路徑得以保留,其餘路徑被刪除。本發明與現有技術相比的優點在於本發明在語音識別解碼過程中,採用了幀半同步方法,對於大內存的解碼網絡,能夠有效地降低內存訪問次數,從而在內存訪問帶寬受限的情況下,能夠大幅度的提升語音識別解碼的效率,提升並發路數和識別速度,為基於雲計算的語音識別節約硬體成本,優化用戶體驗。
圖1為連續語音識別系統示意圖;圖2為每一條弧上包含3個狀態的示意圖;圖3為一個實際的簡單解碼網絡;圖4為本發明的實現流程圖。
具體實施例方式本發明採用了一種針對大內存的語音識別中(特別是基於雲計算的語音識別)進行效率優化的幀半同步方法,以節省識別過程中的內存訪問量,從而提升整個系統的效率。
和傳統的幀同步算法相比,幀半同步算法的最大不同就是每三幀進行一次Viterbi動態規划算法,其實現流程如圖4所示1.先進行t+1時刻的規劃,每一個狀態的更新如下
權利要求
1.一種語音識別解碼效率優化方法,其特徵在於實現步驟如下 (1)對於每三幀語音特徵矢量,先在弧內進行Viterbi動態規劃,每一條弧上最多能夠輸出三個得分和對應的路徑,三個得分和路徑分別對應三個連續不同幀的輸出; (2)根據Viterbi算法,該三個得分和對應的路徑傳遞到該弧的後續節點上進行競爭,產生新的三個最優路逕往下傳遞,直到傳遞到解碼網絡的最後一個節點,產生最優識別結果;所述部分是指和對應幀的得分和路徑競爭; (3)保留到節點上的優勝者,在下三幀到來時繼續擴展到該節點的後續出弧上去; (4)對於最後一幀語音特徵矢量,傳遞到解碼網絡最後一個節點(Final)並勝出的路徑即為最優路徑; (5)回溯最優路徑,得到對應的詞序列,即為識別結果。
2.根據權利要求1所述語音識別解碼效率優化方法,其特徵在於所述步驟(2)中競爭過程實現步驟如下對於每一個節點,會有一條或者多條弧與之連接;在某一時刻t,會有一條或者多條弧向該節點傳遞路徑,每條路徑帶有一個得分,該得分刻畫該路徑的可能性,每一個弧上會傳遞三個路逕到該節點,分別對應t-2,t-1和t時刻的路徑;所有弧上所傳遞過來的同一時刻的路徑根據得分進行競爭,得分最高的路徑得以保留,其餘路徑被刪除。
全文摘要
本發明涉及一種語音識別解碼效率優化方法,實現為對於每三幀語音特徵矢量,先在弧內進行Viterbi動態規劃,每一條弧上最多能夠輸出三個得分和對應的路徑,三個得分和路徑分別對應三個連續不同幀的輸出;根據Viterbi算法,該三個得分和對應的路徑傳遞到該弧的後續節點上進行競爭;保留到節點上的優勝者,在下三幀到來時繼續擴展到該節點的後續出弧上去;對於最後一幀語音特徵矢量,傳遞到解碼網絡最後一個節點並勝出的路徑即為最優路徑;回溯最優路徑,得到對應的詞序列,即為識別結果。本發明通過[採用效率優化的幀半同步方法,節省了識別過程中的內存訪問量,提升了整個系統的效率。
文檔編號G10L15/34GK103065633SQ201210580290
公開日2013年4月24日 申請日期2012年12月27日 優先權日2012年12月27日
發明者鹿曉亮, 趙志偉, 陳旭, 尚麗, 吳曉如, 于振華, 潘青華 申請人:安徽科大訊飛信息科技股份有限公司