第五章 應用於分散式語音辨識系統
5.2 系統前端實作
分散式語音辨識系統的困難點在於如何平均分散運算量在兩端的設備上,並 在有限的網路傳輸頻寬內,達到快速反應辨識結果給使用者的目的。本系統是依 照AURORA提出的分散式語音辨識系統的架構標準[17]進行設計的,以PDA作為 系統的前端(front-end),而伺服器是為系統的後端(back-end)。首先利用PDA上有 限的硬體資源,抽取語音的特徵參數,並透過無線網路將這些參數傳輸到遠端伺 服器上,進行辨識、構詞,再把辨識詞串傳回到終端設備上。系統處理流程如圖 5-2 所示:
圖 5-2: 系統處理流程圖
圖中的實線箭頭代表系統的處理流程,而虛線箭頭代表網路傳輸的方向,其箭頭 上的文字即為傳輸的資訊。
(1) 首先,使用者端與伺服器端的程式先進行系統初始化,建立兩端的網路 連線,並由使用者端傳送使用者代號到伺服器端。
(2) 使用者從 PDA 輸入語音,由使用者端程式消除雜訊並抽取語音特徵,
再把語音特徵傳送到伺服器端。
(3) 伺服器端接收到語音特徵參數後將之送入語音模型進行辨識,並透過語 言模型依辨識結果產生可能的候選詞串,再將此候選詞串傳送到使用者端。
(4) 使用者端接將接收到的可能候選詞串顯示在螢幕上,由使用者點選正確 詞串傳送給伺服器端。
成了一次語音辨識的運作。
爲了在網路頻寬以及運算複雜度之間取得平衡,AURORA 將抽取語音特徵 參數的運算分開由使用者端與伺服器端各負責一部分。系統所使用的語音特徵參 數為 12 維梅爾刻度倒頻譜係數加上 1 維對數能量及其衍生出來的一階差量參數 和二階差量參數,總共 39 維。我們將語音強化模組整合在語音參數的抽取過程 中,故本系統的語音參數流程可由圖 2-2 改為下圖 5-3。
圖 5-3: 整合語音強化於分散式語音辨識系統之語音參數抽取流程
其中先由使用者端對含雜訊語音進行強化,然後抽取 12 維的 MFCC 和 1 維 的對數能量,再傳送到伺服器端,由伺服器端產生後續的一階和二階差量參數。
能夠將語音強化模組整合在語音參數的抽取過程中是因為語音強化以及特 徵參數抽取都是以音框為基本單位,且都需要轉換到頻域進行處理。因此在音框 進行傅利葉轉換之後,進行語音強化,再將強化後的語音頻譜送進梅爾濾波器,
完成抽取梅爾刻度倒頻譜參數的步驟。而使用者端就將 12 維的 MFCC 和 1 維的 對數能量傳送到伺服器端。
分散式架構的語音辨識系統與一般的語音辨識系統的另一個差別是,在分散 式架構中,使用者輸入的語音還需經過手持式設備的錄音通道(channel),而此通
道亦會對語音產生失真,而造成辨識結果不佳。爲了補償此效應,我們採用了倒 頻譜係數正規化(Cepstrum Mean Normalization, CMN)的技術[23]。因此伺服器端 將前 13 維的特徵向量經過CMN處理後,先計算其一階差量,產生語音特徵的第 14 到 26 維,再計算二階差量,產生語音特徵的第 27 到 39 維。這樣就完成了語 音參數的抽取流程。
由於iPAQ 5550 內的處理器Intel PXA255 是以 400Hz速度在執行定點 (fixed-point)運算,但是抽取語音特徵參數需要用到大量的浮點(floating-point)運 算,因此會造成系統執行速度上很大的負擔。爲了克服這個速度的瓶頸,在使用 者端抽取語音特徵參數的實作上,我們使用定點運算去模擬浮點運算[24]。雖然 這樣的做法會損失一些精準度,但是卻能明顯地提升系統速度,且在經過實驗 後,這樣的做法仍能保有不錯的辨識率。