王文嬌
(渭南師范學院,陜西 渭南 714099)
語音識別與眾多合成技術的高速發展,促使計算機實現了高度智能的人機交互,能夠完成所有語言的識別與轉換。其中,俄語是聯合國官方語言之一,也是多個國家的通用語言,在語音轉換中占據重要地位。在俄語語音識別領域中,發音字典作為單詞的主要儲存場所,其質量直接影響語音識別結果。字音轉換是發音字典中必要模塊,該技術指通過計算機完成單詞音標自動標注,并將單詞文本轉換為方便人和機器處理的單詞發音,不但能夠提高發音字典建設質量,還可以解決自動注音問題。為此,俄語的字音轉換成為該領域研究的熱點問題。
文獻[1]提出從規則或數據驅動角度研究字音轉換方法。該方法按照輔音變化等規則,通過重音詞典,在海量數據支持下,將概率統計與機器學習相結合,構建發音模型,再利用解碼方式為單詞注音,完成字音轉換。此種方法轉換過程復雜,必須經歷多次循環操作。文獻[2]提出基于規則和N-Gram 算法的新詞字音識別轉換研究。該方法針對分詞工具轉換字音數據后存在的轉換誤差,在該工具基礎上,結合目標詞語的結構,設計字音轉換的數據庫,并借助Bi-gram 和Tri-gram 模式提取數據庫中的數據,最優采用熵值計算方法將字音轉換中存在的噪聲過濾掉,完成字音的轉換。該方法可有效提升字音轉換精度,但設計的數據庫數據有限,覆蓋范圍存在一定局限。
為解決上述方法中存在的不足,本文利用貪婪算法實現俄語字音快速轉化。通過構建最大熵轉換模型,利用該模型消除歧義詞語,便于進一步字音快速轉換,再使用貪婪算法規整語音時長,確保語音時長在適當范圍內,提高快速轉換效果。
最大熵模型已廣泛應用在語言處理領域,該模型在對概率分布估計時,只需使其符合約束條件,即確定熵最大時概率分布情況,建模過程較為簡便。此模型在分詞和詞性標注[3]等方面取得較好研究成果,本文將展開新的嘗試,將其應用在俄語多音詞消歧過程中。
(1) 特征與約束
在俄語字音轉換中,可將一些問題當作統計分類問題。針對俄語多音詞消歧問題,y即為多音詞讀音,x代表文本環境[4],包含詞性、詞語長度等信息,則最大熵模型特征f 可表示事件(x,y)能否出現的二值函數,表達式如下:
在俄語字音樣本中,事件(x,y)的理想值可表示為:
將事件(x,y)引入到最大熵模型中,獲得理想值為:
事件(x,y)的理想值與最大熵模型的理想值需保持相同,則有:
將公式(4)當作特征f 的約束條件,其能夠約束概率模型p(y|x)與訓練樣本分布情況更加接近。
(2) 最大熵準則
如果共存在k個特征,則符合所有特征的約束條件存在概率分布可以組成集合:
其中,E表示理想值,i屬于常數。
則最大熵模型符合下述要求:
式中,H(p)表示條件熵,其計算公式為:
在符合全部約束條件的概率分布中,將條件熵最大的分布當作最大熵模型。
(3) 指數形式
利用拉格朗日算法對公式(6)計算,構建最大熵模型為:
式中,ω表示特征f 的權值,可通過迭代方法[6]在訓練樣本中計算得出,Z(x)表示歸一化因子[7],表達式如下:
利用上述最大熵模型即可實現文本中多音詞消歧,提高轉換速度,降低轉換錯誤率。
在上述俄語多音詞消歧后,完成俄語字音的快速轉換。俄語字音轉換系統中包括詞語的音節與音調等信息,根據俄語詞長短構建兩級索引[8]。
已知俄語字符串S=s1,s2,…,sn(n≥1),且以字符si作為結尾,將具有的俄語詞匯集合表示為φi與φj,其中元素記作(1≤j≤ni),ni代表集合φi中元素數量,針對兩個集合φi和φj隨機選取的元素與,滿足1≤k'≤n、1≤p'≤n。若存在i≤j,則兩個元素之間具有的偏序關系表示為≤,將此種關系對應的節點組成詞網格,其中每條路徑都可作為詞句候選。字音轉換是根據語言模型評判候選詞句,確定最佳候選路徑,實現快速轉換。
本文研究中將俄語當作離散馬爾可夫模型,描述為M',某字詞僅和前n-1 個詞存在關聯時,可將其稱作文法模型,寫作。
式中,p'與N'均為常數。
俄語詞典用V描述,在構建時,統計參數可記為,若N'的值足夠大,其參數空間規模也隨之增大。俄語字音轉換中,如果訓練樣本數量較少,訓練集合無法覆蓋合法語言。此時,一些參數等于0,此種現象被稱作數據稀疏。為解決該問題,本文通過規則和統計相結合的語言模型路徑評價方法處理該問題。常用語法分析均為語法完整性判斷,必須構建完整分析樹,如果語法樹無法生成,則導致分析失敗。但此時分析器已給出很多局部精準分析,全局分析不成功的主要因素通常為知識庫中缺乏相關規則。若能使用有關統計關聯信息,則能獲得最優分析結果。為便于研究,本文給出下述假設:
(1) 在規則庫中描述為A1+A2+…,At的規則,均稱其為t元規則;
(2) 某元素屬于五元組〈begin,end,R'(t),sublist,attr〉,且R'(t)是t元規則A1+A2+…,At→B,sublist表示形成此元素的列表{e1,e2,…,ei},ei(i=1,…,t)的屬性為Ai,begin與end分別達標元素的起始與終止時間,attr 代表元素屬性。
每個元素均與某顆樹對應,根節點代表其本身,葉節點即為其子孫。葉節點是由詞典中的俄語詞匯構成,其列表表示為。其中元素表示分析樹的子樹;
“按行消元,逐行規格化”的計算過程決定了其不適合應用對角元以右元素與對角元以下元素的對稱性進行計算,因為在這種計算方式下,對第i行元素進行消元,要通過賦值分別或者一次性地得到其對角元以左的第1~i-1個元素就顯得極為不便。因此這種計算方式對A陣元素的前代過程有大量的多余計算,從而導致計算效率不高。如果僅計算包括對角元素的上三角元素或包括對角元素的下三角元素,而通過對稱性來獲得另一半元素,則由于上下三角元素的不等,在對A陣或F陣元素的前代過程中會出現大量乘或除對角元素的重復計算,同樣影響計算效率。
(3) 將包括元素節點的詞網格當作元素網絡。
在元素網格內,某語句候選表示為從開始到結束的一段時間內,首尾相互連接的元素節點序列s=<e1,e2,…,en>。如果,則確定語句候選的評價函數:
如果語言模型為二元文法,則俄語詞句候選評價過程表示為:
如果語言模型為三元文法,此時俄語詞句候選評價過程利用下述公式描述:
利用上述規則統計語言模型即可處理俄語中的音節搭配關系,完成詞句候選評價。將最優候選路徑作為最佳轉換關系。在明確轉換關系后,需確定語音時長,進一步提高轉換效果
語音時長調整是將語音信號長度擴展或壓縮,按照任意速度播放,同時確保發音語調不變。在面對大規模文本時,通過規整因子,將語音時長調整為適當長度,可提高字音轉換效果和效率。
若將輸入信號分割為M幀,任意一幀中存在N個采樣點,且每幀之間的間隔表示為Sa,理想規整因子描述為α0。利用La(m)代表合并m幀前語音信號長度,Ls(m)為合并后m幀的輸出信號長度,表達式分別如下:
式中,Ss(z)代表第z幀和前一幀之間的合成距離,且Ss(1)=0。
因此獲得m幀規整因子α(m)的表達式:
將自適應法則引入到貪婪算法中。假設完整語音信號分割成X1與X2,隨幀m不斷改變,被分割部分的理想規整因子表示為α1(m)與α2(m),同時滿足α1(m)=γα2(m)。其中,γ屬于能夠靈活調控兩部分之間相關性的參數。如果第m幀和之后的所有幀中,X1與X2的長度符合X1=w(m)X2的要求,w(m)代表m幀時長。在m幀時,X1與X2同時生成存在規整因子α(m)的結果,表示為:
利用動態實時估計方法計算w(m)的值,不斷記錄語音幀類型,獲取當前類型語音與其他類型語音比值,用其代替未處理語音信號中不同類型語音時長比,實現自適應貪婪語音時長調整,完成俄語字音的轉換。
為證明本文字音快速轉換算法性能,將Matlab R2007b當作仿真軟件。在TIMIT數據庫中任意抽取700條俄語語句進行轉換測試。假設采樣頻率為20kHz,設置規整因子α=0.4。
圖1為隨機選擇的某條俄語語句完成字音轉換后輸出的波形,其中圖1(a)是初始波形,圖1(b)為經過貪婪算法規整后的波形。
由圖1能夠看出,經過貪婪算法規整后語音長度比初始語音長度縮減了一半,且信號波形幅度變得更加穩定。語音時長的縮短能夠提高轉換速度,同時平穩的信號能夠體現轉化過程更加穩定,不會出現詞語丟失等現象。
為進一步驗證所提方法有效性,利用字音轉換錯誤率作為評價指標,多音詞的累計錯誤率包括語境約束和高頻默認累計錯誤率兩種,計算公式分別如下:
式中,freq(w')表示詞語w'的頻率,α'與β'分別代表語境約束和高頻默認的累計平均錯誤率。當詞語w'不斷增加時,本文方法轉換錯誤率實驗結果如表1所示:
表1 本文方法字音快速轉換錯誤率表
如表1所示,利用本文方法得到的轉換結果顯示,單音詞轉換的錯誤率非常低;隨著俄語詞匯量的不斷增加,多音詞轉換錯誤率隨之提高。其中,高頻默認累計方面的錯誤率較高,但低于1%,均在可控范圍內,這是因為本文構建了最大熵模型,利用該模型實現了多音詞消歧,降低轉換錯誤率。
在語音合成系統支持下,本文將自適應貪婪算法與最大熵算法相結合,通過對快速轉換模型求解,獲得全局最優解,縮短轉換時間,再對語音時長進行適當調整,提高轉換效果。實驗表明,該方法不但能實現字音的快速轉換,還可以降低失真出現概率,提高轉換精度。