馬一男 李沛東 陳群 嚴秋 萬永菁
【摘 要】基于矢量量化的碼本映射方法是語音轉(zhuǎn)換的常用算法,其優(yōu)勢是轉(zhuǎn)換算法實現(xiàn)快捷、效率高。在語音轉(zhuǎn)換過程中,矢量碼本映射的關(guān)鍵參數(shù)選擇決定了轉(zhuǎn)換算法的運行速度和目標(biāo)語音的實現(xiàn)效果。本文研究矢量量化碼本映射方法的關(guān)鍵參數(shù)的選擇問題,研究了矢量量化中碼書大小及LPC系數(shù)個數(shù)的選擇方法,并通過仿真結(jié)果驗明參數(shù)選擇的有效性。
【關(guān)鍵詞】語音轉(zhuǎn)換 矢量量化 碼本映射 參數(shù)選擇
1 引言
語音轉(zhuǎn)換屬語音信號處理新興研究方向。語音轉(zhuǎn)換在提取源說話人和目標(biāo)說話人的語音特征的基礎(chǔ)上,通過語音轉(zhuǎn)換技術(shù)使目標(biāo)說話人的語音酷似源說話人語音。語音轉(zhuǎn)換在電影配音、保密通信、文語轉(zhuǎn)換系統(tǒng)應(yīng)用乃至醫(yī)學(xué)等方面都具有廣泛的應(yīng)用。
語音轉(zhuǎn)換常用算法有矢量量化算法(VQ)[1-3]、線性多變量回歸算法(LMR)、動態(tài)頻率調(diào)整算法(DFW)[4],統(tǒng)計映射法[5],人工神經(jīng)網(wǎng)絡(luò)(ANN)[6],以及基于高斯混合模型(GMM)的語音轉(zhuǎn)換算法。其中,矢量碼本映射方法(VQ)是語音轉(zhuǎn)換常用的一種方法,該算法對源說話人和目標(biāo)說話人的特征參數(shù)進行劃分,分別產(chǎn)生源碼本和目標(biāo)碼本,采用動態(tài)時間規(guī)整(DTW)技術(shù)對齊源說話人和目標(biāo)說話人的碼本,并得到矢量碼本的映射矩陣,利用碼本映射矩陣實現(xiàn)語音轉(zhuǎn)換。
本文研究基于矢量量化算法的語音轉(zhuǎn)換技術(shù)的關(guān)鍵參數(shù)的選擇方法,在綜合考慮轉(zhuǎn)換效果及轉(zhuǎn)換效率的基礎(chǔ)上研究算法參數(shù)的選擇方法,并通過ABX及MOS測試方法對語音轉(zhuǎn)換結(jié)果進行評測分析。仿真實驗結(jié)果表明了參數(shù)選擇的有效性及正確性。
2 基于矢量量化的語音轉(zhuǎn)換算法
2.1 語音信號特征參數(shù)的提取方法
語音信號在短時間范圍內(nèi)可以認為是穩(wěn)態(tài)信號,通常對語音信號的處理是先經(jīng)過交疊分幀處理后,再對短時語音信號進行分析,獲取源說話人及目標(biāo)說話人的語音特征。設(shè)語音信號的時間序列為x(n),加窗分幀處理后得到的語音信號為xi(m),其中i表示第i幀信號,設(shè)每幀信號長度為N,則0≤m≤N-1。
正常語音都含有有話幀和無話幀,語音特征提取只針對有話幀,本文采用譜熵法實現(xiàn)語音端點檢測,分離語音信號中的有話幀和無話幀。對第i幀語音信號做快速傅里葉變換,并求出其頻率分量的能量譜,設(shè)為Ei(k),定義歸一化譜概率密度函數(shù),如式(1)所示。
2.2 矢量碼本映射及動態(tài)時間規(guī)整[7]方法
基于VQ的語音轉(zhuǎn)換技術(shù)將源語音的LPC系數(shù)和目標(biāo)語音的LPC系數(shù)進行矢量量化,然后利用動態(tài)時間規(guī)整技術(shù)將特征向量對齊,尋找碼本映射矩陣,完成源語音到目標(biāo)語音的特征參數(shù)轉(zhuǎn)換。
本文采用LBG算法[8]進行碼書提取。LBG算法是一種遞推算法,從一個事先選定的初始碼本開始迭代。首先,把訓(xùn)練序列按照碼本中的元素根據(jù)最鄰近準(zhǔn)則分組,然后,對每一分組找質(zhì)心,得到新的碼本并作為初始碼本,接著,再進行分組,重復(fù)上述過程,直到描述系統(tǒng)性能的總失真度滿足要求或者不再有明顯的改進為止。
為防止拖音或呼吸音造成單詞的端點檢測不準(zhǔn),識別率的降低,在語音轉(zhuǎn)換時,要對語音信號進行時間規(guī)整,將時間規(guī)整和距離測度計算結(jié)合起來。假設(shè)源語音特征矢量有I 幀矢量,而目標(biāo)特征有J幀矢量,且I≠J,則需要尋找一個時間規(guī)整函數(shù),其中、,該時間規(guī)整函數(shù)將源語音特征矢量的時間軸非線性地映射到目標(biāo)特征的時間軸上。第幀測試矢量和第幀模板矢量之間的距離測度用表示,這里,采用矢量歐式距離即2范數(shù)形式計算得到,距離測度如式(6)所示。
2.3 語音合成方法
對于測試的源語音信號,提取其基音信息和LPC特征參數(shù),利用相應(yīng)的基音轉(zhuǎn)換方法和特征參數(shù)映射矩陣獲得目標(biāo)語音的基音參數(shù)及LPC特征參數(shù),并通過語音合成方法生成轉(zhuǎn)換后的語音信號。
語音合成過程利用白噪聲在無話段通過對應(yīng)的線性預(yù)測得到的濾波器合成清音幀,在有話段利用連續(xù)脈沖串通過時變?yōu)V波器合成人的濁音幀,并采用采用線性比例重疊相加法,把分幀時產(chǎn)生的重疊部分用一個線性比例加權(quán)后再相加,實現(xiàn)語音信號的平滑操作。
3 矢量量化語音轉(zhuǎn)換算法關(guān)鍵參數(shù)的選擇
3.1 參數(shù)選擇的實驗方法
矢量量化關(guān)鍵參數(shù)的選擇包括碼書參數(shù)的選擇和LPC系數(shù)個數(shù)的選擇。本文通過實驗分析得到合理的參數(shù)選擇方法。一般的口語漢句的平均漢字數(shù)是12個。本文利用SAPI5 TTSAPP語音合成軟件生成頻率為8KHz的2男2女的語音,挑選兼具元輔音成分的漢語詞匯組成平均長度為12個漢字的漢句。
3.2 碼書參數(shù)及LPC系數(shù)個數(shù)的選擇
輸入100個具有代表性的漢句進行仿真實驗,通過比較不同碼書及LPC系數(shù)個數(shù)值下平均D值的大小以及運算時間的長短得到碼書參數(shù)的選擇方法。表1所示為不同碼書下的100個語音轉(zhuǎn)換結(jié)果的平均D值的比較,表2所示為不同LPC系數(shù)個數(shù)下的100個語音轉(zhuǎn)換結(jié)果的運行時間的比較。
矢量量化碼書選擇范圍與語音的幀數(shù)有關(guān),本文采用的語音信號為8KHz采樣頻率,分幀幀長為200,對于一個12個漢字組成的詞語,分幀后的平均幀數(shù)在400左右。考慮到碼書大小在小于幀長時才有意義,本文選取測試分析的碼書范圍在16~256之間。LPC系數(shù)個數(shù)通常的選擇范圍在7~16之間,本文選取測試的LPC系數(shù)個數(shù)也在此7~16之間。實驗環(huán)境的PC機主要配置為IntelCore-i7-4700MQCPU,主頻2.40GHz,算法仿真平臺為MATLAB。
從表中數(shù)據(jù)可知,碼書越小,執(zhí)行時間越短;但平均D值在LPC系數(shù)為13處達到最佳,即此處的平均D值較小。實驗表明,當(dāng)轉(zhuǎn)換長度約12個漢字時,選擇碼書大小為64、LPC系數(shù)為13最佳。
語音的幀長與碼書的選取有很大關(guān)系,通過不同幀長下的語音轉(zhuǎn)換實驗得到,碼書的選擇應(yīng)為幀長的1/6~1/7。而LPC系數(shù)個數(shù)則不論碼書的選取是多少,均在13左右達到最小的平均D值,故LPC系數(shù)的個數(shù)選取13為最佳值。
4 語音轉(zhuǎn)換效果評價
本文采用語音轉(zhuǎn)換常用的ABX和MOS測試對語音轉(zhuǎn)換結(jié)果進行評價。ABX測試用于評價目標(biāo)語音與轉(zhuǎn)換語音的近似程度,讓聽眾從轉(zhuǎn)換后的語音中選擇更接近源語音還是目標(biāo)語音,并將接近度以正確率以百分比的形式展現(xiàn);MOS測試則讓聽眾采用5分制依次為轉(zhuǎn)換后的語音質(zhì)量進行打分:1分表示非常差,2分表示較差,3分表示一般,4分表示較好,5分表示非常好。利用本文選取的碼書大小及LPC系數(shù)個數(shù),邀請20位聽眾對100個漢句的2位男聲及2位女聲的相互轉(zhuǎn)換結(jié)果進行測評,平均測試結(jié)果如表3所示。
表中結(jié)果顯示,當(dāng)語音轉(zhuǎn)換參數(shù)取最佳碼書大小及LPC系數(shù)個數(shù)下,進行男聲與女聲的相互轉(zhuǎn)換時,都能取得較好的轉(zhuǎn)換評測結(jié)果,但男聲到男聲和女聲到女聲的轉(zhuǎn)換結(jié)果還有待提高。其主要原因是基于VQ的語音轉(zhuǎn)換算法每一類數(shù)據(jù)都是用該類類心的特征參數(shù)來代替,轉(zhuǎn)換規(guī)則數(shù)量上的限制影響了轉(zhuǎn)換效果。盡管如此,基于VQ的語音轉(zhuǎn)換算法在程序效率上相對其他的語音轉(zhuǎn)換算法還是有很大的優(yōu)勢的,且在合適的碼書大小及LPC系數(shù)個數(shù)下仍可以取得男聲與女聲語音轉(zhuǎn)換的較滿意的結(jié)果,特別是在實時應(yīng)用場合以及便攜式設(shè)備中有其實用價值。
5 結(jié)語
本文針對矢量量化語音轉(zhuǎn)換算法的參數(shù)選擇問題進行研究,通過實驗分析得出最佳碼書與語音幀長的關(guān)系以及LPC系數(shù)個數(shù)的選取方法。通過語音轉(zhuǎn)換實驗驗明了所選參數(shù)的有效性。本文研究的基于VQ的語音轉(zhuǎn)換算法關(guān)鍵參數(shù)的選取方法對實時語音轉(zhuǎn)換應(yīng)用具有實際意義。
參考文獻:
[1]ABE M,NAKAMURA S,SHIKANO K.Voice conversion through vector quantization[M].New York 1988.
[2]Gersho A,Gray R M.Vector quantization and signal compression[M].Boston MA:Kluwer 1990.
[3]侯建愛.基于矢量量化的說話人識別系統(tǒng)研究及實現(xiàn)[D].湖南師范大學(xué),2014.
[4]Toda,H.Saruwatari,K..Shikano.Voice Conversion Algorithm based on Gaussian Mixture Model with Dynamic Frequency Warping of STRAIGHT spectrum[A].Salt Lake City,USA 2001.
[5]KUN Liu.High quality voice conversion through combining modified GMM and formant mapping for Mandarin[A].New York:IEEE Press 2007.
[6]Desai S,Raghavendra E V,Yegnanarayana B.Voice conversion using artificial neural networks[A].2009.
[7]宋知用.MATALAB在語音信號分析與合成中的應(yīng)用[M].北京:背景航空航天大學(xué)出版社.
[8]Stephen So,Kuldip K Paliwal.Switched Split Vector Quanfisation of Line Spectral Frequencies for Wideband Speech Coding[A].Lisbon 2005.