孫曉杰
(伊犁師范學院電子與信息工程分院 新疆 伊寧 835000)
哈薩克語作為一種黏著性較強的語言,這也使該語言的語音識別較為困難,依據其語言特征,哈薩克語的形態及構詞都是由詞綴與詞根組成的,不同詞綴的連接都有著不同的結構及語法意義,這也使許多學者致力于對哈薩克語的語音識別與處理技術研究。在以往的語音識別技術中,主要是基于機器學習的方法來實現的,但對于大詞匯量連續語音的識別則存在明顯不足,而哈薩克語的連續性非常強,這也使傳統的機器學習方法難以適用于哈薩克語的語音識別。而N-gram模型的出現,則為哈薩克語的語音識別與處理提供了可靠的技術保障。為此,以下便對N-gram模型在哈薩克語語中的語音識別與處理技術進行深入的研究。
N-gram模型在對哈薩克語進行語音識別之前,需要構建相應的文本數據庫,通過對語音文件中的相關信息進行提取,并將其與文本數據庫進行匹配,進而達到語音識別的目的。在本文中,N-gram模型構建的文本數據庫在數據來源上主要包括四個方面,分別是平面媒體、新聞媒體、教材媒體與在線電子資源。在上述數據來源中按照類型將其分別存儲到磁盤的不同目錄中,以便于后續進行管理與加工處理,對相關信息進行提取,然后將其存儲到相應的關系數據表中。關系數據表具備如下屬性,其一,原文件信息,其是指原始文件的存儲路徑以及文件名等信息;其二,原文件類型;其三,文本文件,對原始文件中的文本進行提取,并進行句子切分、符號轉換、錯誤修正等處理后,使其處理為純文本,并存儲到特定的文件中。本文所采用的URI串能夠為不同的文件匹配不同的名字串。其四,文檔處理狀態是指該字段所處的當前狀態,其狀態類型主要包括正在處理狀態、完成狀態、錯誤狀態、副本狀態及瑕疵文本狀態;其五,關鍵詞能夠對文本屬性中包含的關鍵詞字符串進行描述。在構建文件數據庫時,需要控制其數據冗余,也就是在數據庫中進行文本添加時預防不同文件URI中出現相同的文檔內容。對數據冗余的控制主要有兩種方法,分別是基于URI的冗余控制與基于文件內容的數據冗余控制。第一種控制方法需要在每次添加文件時對URI進行檢查,第二種控制方法利用哈希算法對文本的哈希值進行計算,然后與已添加文件的哈希值進行對比,以此達到數據冗余控制的目的。
在對原始文件中的文本提取后是不能直接使用的,它還需要對文本進行進一步的處理才能使用。其在文本處理中共分為以下步驟,其一是對字符編碼進行處理,在哈薩克字符中經常出現UNICODE編碼問題,因此在進行處理時,應對哈薩克字符的編碼格式進行統一,通常情況下可以采用UKK編碼;其二,對句子進行切分,在對字符的編碼格式進行統一后,需要依據文本中的句號、感嘆號、問號等符號來對句子進行切分,然后將切分后的句子作為一行存儲到相應的文本文件中。其三,對縮略詞進行替換,在哈薩克語的新聞類文本中包含有許多縮略詞,在進行處理時需要將這些縮略詞替換為相應的擴展形式。N-gram模型利用正則表達式來搜索文本,進而找出所有與縮略詞相匹配的字串,并通過人工挑選的方式對哈薩克語縮略詞進行選出,然后對這些縮略詞的擴展形式進行添加。其四,數字擴展,在哈薩克語的原始文本中包含著許多阿拉伯數字符號,這些阿拉伯數字符號主要包括序數詞與基數詞,由于在哈薩克語的句子中各個單詞都是由空格進行分隔的,因此在對待處理文本進行讀取時,可以先對句子進行切分,然后再對詞進行切分,這樣較為容易實現。在切分完畢后按照詞串的順序來對單詞進行提取,對單詞是否是由純數字字符組成進行判斷,當判斷其是由純數字字符組成時,可將其當作一個基數詞,并調用基數詞轉換過程使其成為相應的文字形式,如果判斷其不是由純數字字符組成的,則需要對數字符號后的“-”進行檢查,如果檢查出存在該符號,則將其當作序數詞來進行文字轉換。如不存在,可以判斷該句子出現拼寫錯誤,需要將其從文本中刪除。
在數據庫中對文本進行添加時,會生成大量的重復語句,這些重復語句有許多都是廣告詞語或標題,因此需要對這些重復句子進行篩選與刪除。可通過句子計數過濾器來實現重復句子的刪除,在該過濾器中主要是依據各個句子的哈希值來對其在語料中的出現次數進行計算當,當哈希值超出規定閾值時,便對后面同樣的句子進行刪除。如果句子的出現次數較少,但其中包含有較多復雜數字符號、集外詞及外文字符時,可以通過錯誤句子過濾模塊來對其進行處理。
在連續語音識別中構建語言模型具有十分重要的意義。哈薩克語的聲學信號具備很強的隨機性與動態時變性,僅利用聲學模型來對其進行匹配與判斷,是很難對其進行準確識別的,對于一個高效的語言模型來說,其不僅能壓縮搜索空間,還應具備較高的識別準確率。現階段,N-gram統計語言模型的使用范圍非常廣泛,可以利用N-gram統計語言模型為哈薩克語提供上下文的關聯信息,進而有效彌傳統聲學模型中的不足。N-gram語言模型主要是對單詞序列的概率進行計算,此外還可以通過更小單位的使用來構造詞典,進而使詞匯變得更大。本文便對哈薩克語語音識別N-gram模型進行了構建,利用N-gram模型分別對哈薩克語的單詞及音節進行識別,并進行效果對比。在單詞N-gram語言模型中,將哈薩克語詞典中的各個符號作為單詞,在音節N-gram語言模型中,通過設置單詞分割令牌來進行處理。利用SRI語言模型訓練工具來對上述兩個N-gram語言模型進行訓練,并利用Kats模型對哈薩克語中的低頻詞與未登錄詞進行平滑處理。
利用文本來對語言模型進行訓練,在該文本中包含有10754245個單詞,不重復單詞為652538個。本文所采用的語音識別方式為朗讀式語音,利用貪婪算法來選出4000條句子,將這些句子劃分為10組,每組中包含有400個句子,由100名發音人構建語音語料庫,利用智能手機對語音進行錄制,設定采樣單位為16bit,采樣頻率為16kHz,總語音時長為100h,其中訓練集時長為90h,測試集為10h。
利用困惑度來衡量語言模型,根據各個音節中的困惑度來替代單詞數,為了使單詞N-gram模型與音節N-gram模型能夠進行比較,需要對音節困惑度進行計算。在實驗中將4000句朗讀文本當作測試集,在該測試集中共包括46244個單詞,并對上述兩種N-gram語言模型的覆蓋值進行計算,其實驗結果為單詞N-gram語言模型的單位數量為60000個,單節N-gram語言模型的單位數量為32782個,集外詞所占比例分別為19.8%與0.03%,命中率分別為19.4%與98.4%,困惑值分別為4600與64600。從上述實驗結果了解到,音節N-gram語言模型能夠對測試數據集進行更好的覆蓋,不過其困惑度和英語150之間的結果相比較也是比較高的,這是因為哈薩克語所具備的黏著性特性所產生的。比如,對于一個哈薩克語單詞來說,其連接構詞與構型附加成分能夠產生幾種甚至幾十種不同的變體,依據實驗數據表明,單詞N-gram模型在困惑值上則明顯較低,這是因為該語言模型并沒有對集外詞進行考慮,而且在該模型中的集外詞所占比例將近20%,如果該模型對集外詞問題進行考慮,則其困惑度必然會大幅增漲。
將上文中所構建的單詞N-gram語言模型與音節N-gram語言模型在連續語音識別效果方面進行驗證,利用上述兩種N-gram語言模型對哈薩克語中的34個音素進行建模,在聲學模型構建中則采用上下文結構的隱馬爾科夫模型,模型中的特征向量則采用維數為39的梅爾頻率倒譜系數,該系數共包括12階倒譜系數,依據哈薩克語的發音特點,將各個音素設置為5個輸出狀態,而靜音模型中則設置3個輸出狀態,在各個狀態中包含了16個高斯混合模型,同時利用HTK工具對聲學模型進行訓練,訓練結果表明,單詞N-gram語言模型的連續語音錯誤識別率為29.45%,而音節N-gram語言模型的連續語音錯誤識別率則為32.78%,由此說明,音節N-gram語言模型在連續語音識別方面有著更好的表現,而音節N-gram語言模型雖然能夠構造很大的詞匯表,但在詞與詞間的相關性及語義方面則較為缺失。
本文通過對N-gram模型在哈薩克語語音識別與處理技術進行深入的研究,以此構建了相應的單詞與音節N-gram模型,通過對這兩個模型在困惑度與連續語音識別中的應用效果進行驗證分析,以此探討,N-gram模型在哈薩克語語音識別與處理中的應用。雖然實驗結果并不是太理想,但這也說明N-gram模型在哈薩克語連續語音識別中有著一定的輔助作用,能夠為后續相關語音識別軟件的開發帶來一定的啟發。