王蓮子 李鐘曉 陳倩倩 莊曉東
摘要:針對語音中清音和濁音特性的不同,本文提出了一種新的清濁音判別方法,利用K奇異值分解(K singular value decomposition, KSVD),分別對數(shù)據(jù)樣本中的清音和濁音進行字典學習,訓練出符合樣本信號特性的濁音字典和清音字典,將多個單清音字典組合成組合清音字典,多個單濁音字典組合成組合濁音字典,并將待測信號在組合濁音字典和組合清音字典上進行稀疏表示,通過對比其系數(shù)的稀疏性來判別清濁音。研究結(jié)果表明,在相同條件下,與傳統(tǒng)的清濁音判別方法相比,基于組合字典的判別方法對于多音素的清濁音判決具有更加準確的判決結(jié)果。該研究對語音識別和語音編碼具有重要作用。
關(guān)鍵詞:語音判別; 字典學習; 稀疏表示; 組合字典
中圖分類號: TP391.42; TN912.34文獻標識碼: A
語音是由氣流激勵聲道從嘴唇或鼻孔輻射出來而產(chǎn)生的。根據(jù)聲帶是否振動,發(fā)音可分為濁音和清音[1]。濁音和清音有明顯的區(qū)別,濁音具有周期信號的特征,而清音則具有隨機噪聲的特征;濁音在頻域上具有共振峰結(jié)構(gòu),其能量主要集中在低頻帶,清音的振幅值相對較小,在時域和頻域沒有明顯的規(guī)律性。清音和濁音的正確判斷在語音識別、語音合成、語音編碼中具有重要作用[2]。傳統(tǒng)的清濁音區(qū)分方法有:短時能量法、短時自相關(guān)函數(shù)法和過零點法等。由于實際語音常有連讀以及單音素發(fā)音過短的情況,現(xiàn)有的清濁音判斷方法也會出現(xiàn)判斷不準確的情況。2006年,D. L. Donoho等人[34]提出了壓縮感知,進一步促進了稀疏表示理論的發(fā)展,使稀疏表示由最初的數(shù)據(jù)壓縮推廣到眾多領(lǐng)域中,并在各方面均取得了較好的應用效果。信號需要在字典上進行稀疏表示,合適的字典直接影響信號的稀疏表示效果。因此,本研究將字典學習和稀疏表示與清濁音判斷相結(jié)合,提出了一種基于組合字典上稀疏表示的清濁音判別方法,實驗數(shù)據(jù)表明,該方法在多音素的清濁音判決上具有較高的準確率。該研究為語音信號的判決提供了理論基礎(chǔ)。
1稀疏表示和字典學習方法
1.1信號的稀疏表示
稀疏表示是信號在一組特定的向量組上進行線性分解[21],其線性分解的系數(shù)必須盡可能的稀疏。稀疏表示的求解模型[57]為
式中,y表示信號分幀后的矩陣,為n行m列;D表示字典,為n行s列矩陣;di為D的一列原子;C為稀疏系數(shù),C的每一列為語音信號矩陣每一列在字典D上的稀疏系數(shù)向量。
正交匹配追蹤(orthogonal matching pursuit,OMP)是一種貪婪算法,它是匹配追蹤(matching pursuit,MP)的一種改進算法,OMP算法中的當前殘差與所有被選入的原子正交。OMP算法的具體模型[8]為
式中,e是每次迭代后的殘差;dr0是與索引集合中對應的原子數(shù);r0是下標索引集。OMP算法的具體流程[911]為
OMP算法整個稀疏求解過程的迭代次數(shù)減少,收斂速度比MP算法要快,且OMP算法結(jié)合了基追蹤(basis pursuit,BP)算法和MP算法的優(yōu)點[12],在保證信號精度的同時,也可以相應的提高運算效率。因此,本研究選擇OMP算法作為稀疏求解方法。
1.2K-SVD字典學習算法
字典的構(gòu)造一般分固定字典和學習字典。字典學習就是對于某一類特定的信號進行學習,訓練一組符合樣本信號結(jié)構(gòu)特性的過完備向量,并使該信號能夠在此字典進行稀疏表示。字典學習一般分為稀疏編碼階段和字典更新階段。常見的字典學習算法有K-SVD算法和最優(yōu)方向(method of optimal directions,MOD)算法。K-SVD算法是一種經(jīng)典的字典學習方法[1316]。K-SVD算法目標優(yōu)化函數(shù)為
K-SVD算法的具體流程[1720]如下:
設信號矩陣為y(n×m),初始字典為D0(n×s),t=1,誤差為ε,K為稀疏度。whileC0
利用稀疏表示算法,通過字典D得到稀疏系數(shù),對D進行逐列更新:找到dt,t=1,…,s對應的稀疏表示稀疏Ct中非零元的下標,并將下標放入索引集合w中。w=j|C(t,j)≠0,1 MOD算法構(gòu)造簡單,但計算復雜,并沒有得到廣泛地應用。K-SVD算法是對MOD算法的一種改進,其計算速度快于MOD算法[18]。因此,本研究選擇K-SVD算法作為字典學習算法。 2基于組合字典的清濁音判決的實現(xiàn) 2.1基于組合字典的單音素清濁音判決 本研究選擇OMP算法來實現(xiàn)稀疏求解,并利用K-SVD算法對清音樣本和濁音樣本進行字典學習。通過字典學習,訓練出單個清音字典和濁音字典,將多個清音字典組合起來構(gòu)成組合清音字典,多個濁音字典組合起來構(gòu)成組合濁音字典,將待測信號分別通過組合濁音字典和組合清音字典進行稀疏表示,得到兩組不同的稀疏系數(shù),比較兩個組合字典下稀疏系數(shù)的稀疏性,進而判別出清濁音。實驗主要分3個階段:即組合字典訓練階段、稀疏表示階段及清濁音判別階段。 實驗的運行環(huán)境為:Windows 7和matlab2014a,研究所采集的樣本數(shù)據(jù)以及測試數(shù)據(jù)是在安靜的環(huán)境下錄制,采樣頻率為16 kHz。語音幀長為128 ms,因為單音音素較短,為了獲取數(shù)量較多的幀數(shù),選取幀移為32 ms。 在組合字典訓練階段中,選取英文單詞中常見的單音素,清音音素有[s],[],[h]等,濁音音素有[a],[o],[u],[i:],[e]。先利用K-SVD算法對以上單音素進行字典訓練,以清音[s],[],[h]為樣本,訓練出相應的Ds清音字典、Dsh清音字典和Dh清音字典,并將上述幾個清音字典組合起來,構(gòu)成組合清音字典Dunvoiced=[Ds,…Dh]。同時,以濁音[a],[o],[u],[i:],[e]為樣本,訓練出相應的Da濁音字典、Do濁音字典和Du濁音字典等多個濁音字典,并將其組合起來,構(gòu)成組合濁音字典Dvoiced=[Da,Do,…Du]。在稀疏表示階段,將待測信號通過OMP算法分別在Dunvoiced和Dvoiced上稀疏表示,得到不同的稀疏表示系數(shù),即:組合清音字典系數(shù)Sunvoiced和組合濁音字典系數(shù)Svoiced。 在清濁音的判決階段,以幀為單位,比較每一幀Sunvoiced和Svoiced稀疏性的強弱來判決當前時刻的清濁音。在進行比較之前,需先計算每一幀Sunvoiced和Svoiced的稀疏性,稀疏性是指稀疏系數(shù)的l0范數(shù),因為l0范數(shù)計算繁瑣,本研究為了獲取比較準確的結(jié)果和較低的計算復雜度,選擇稀疏系數(shù)的l05范數(shù)作為稀疏性比較的依據(jù)。Sunvoiced和Svoiced稀疏性的強弱,則是由比較Sunvoiced和Svoiced的l05范數(shù)的大小來確定,l05范數(shù)較小的系數(shù)視為稀疏性較強。當Svoiced的稀疏性強于Sunvoiced的稀疏性時,此幀判決為濁音;當Sunvoiced的稀疏性強于Svoiced的稀疏性時,此幀判決為清音。由于實際語音發(fā)音的復雜性,一些幀的稀疏系數(shù)不足以準確區(qū)分濁音和清音,為了解決這一問題,在進行Sunvoiced和Svoiced的稀疏性比較之前,需對每一幀稀疏系數(shù)向量的l05范數(shù)進行中值濾波。為了驗證本方法的有效性,先對單音素語音進行判決測試,單音素濁音波形圖如圖1所示,單音素清音波形圖如圖2所示,單音素濁音判決結(jié)果如圖3所示,單音素清音判決結(jié)果如圖4所示。 圖4單音素清音判決結(jié)果由圖1和圖2可以看出,濁音與清音具有明顯不同的結(jié)構(gòu),其中濁音表現(xiàn)有周期信號的特性,振幅較大,而清音的特性與隨機噪聲相似,振幅值較小;由圖3和圖4可以看出,基于組合字典的稀疏表示方法,對單音素的清濁音識別是有效的。當Svoiced的l05范數(shù)小于Sunvoiced的l05范數(shù)時,此幀判決為濁音。由圖3還可以看出,[a],[o],[u]這3個濁音音素Svoiced的l05范數(shù)均小于Sunvoiced的l05范數(shù),即組合濁音字典上系數(shù)的稀疏性強于組合清音字典上系數(shù)的稀疏性。當Sunvoiced的l05范數(shù)小于Svoiced的l05范數(shù)時,此幀判決為清音;由圖4還可以看出,[sh],[s],[h]這3個清音音素的Sunvoiced的l05范數(shù)均小于Svoiced的l05范數(shù),即組合清音字典上系數(shù)的稀疏性比組合濁音字典上系數(shù)的稀疏性強。 為進一步證明基于組合字典清濁音判決的有效性,現(xiàn)將清濁音判決方法應用于多音素單詞中,并將判決結(jié)果與傳統(tǒng)的清濁音判決方法作比較。在判決過程中,為了更加直觀的觀察判決結(jié)果,每一幀的判決結(jié)果用0或者1表示,其中1代表此幀判決為清音,0代表此幀判決為濁音。分別對[statistics],[face],[show]這3個語音單詞進行分割實驗,其多音素的語音信號波形及其判決結(jié)果如圖5~圖7所示。 由圖5可以看出,開始時語音發(fā)音是清音[s]和[t],在判決結(jié)果圖中判決為1;當濁音[ˊ]發(fā)音時,Svoiced的稀疏性強于Sunvoiced,此時判決結(jié)果為0。清音[t]發(fā)音時,Svoiced的稀疏性弱于Sunvoiced,判決結(jié)果為1;當濁音[]發(fā)音時,判決結(jié)果又一次為0;由圖6可以看出,開始時語音發(fā)音為清音[f],在判決結(jié)果圖中判決為1;當濁音[e]發(fā)音時,此時判決結(jié)果為0;清音[s]判決結(jié)果為1。由圖7可以看出,開始時語音發(fā)音為清音[],判決結(jié)果為1,當濁音[]發(fā)音時,其判決結(jié)果為0。由圖5~圖7表明,[statistics],[face],[show]的判決結(jié)果與其發(fā)音一致,基于組合字典的清濁音判決方法對于多音素的清濁音判決具有顯著的效果。 圖6[face]基于組合字典的清濁音判斷圖7[show]基于組合字典的清濁音判斷本研究利用短時過零點法和短時能量法,分別對清音音素和濁音音素進行測試,經(jīng)過大量實驗數(shù)據(jù)得出,清音音素的短時過零點次數(shù)一般在一幀20次以上,因此短時平均過零點法的判決閾值為20,短時平均過零點次數(shù)大于20的幀判決為清音,小于20的幀判決為濁音。而清音的短時能量幅值一般在0.15以下,因此短時能量法的清濁音判決閾值為0.15,短時能量幅值小于0.15判決為清音,短時能量幅值大于0.15的判決為濁音。對[face],[statistics],[show]這3個單詞分別進行清濁音判決,現(xiàn)只展示部分判別情況,[face]基于短時能量法和短時平均過零點法的清濁音判決結(jié)果如圖8和圖9所示。 圖8[face]基于短時能量法的清濁音判決結(jié)果圖9[face]基于短時平均過零點法的清濁音判決結(jié)果由圖8和圖9可以看出,對于一些位于濁音和清音重疊區(qū)域的音素,短時平均過零點法和短時能量法的判決效果并不準確。短時能量法并沒有很好的區(qū)分出語音中存在的爆破音;而清音的特性與噪聲特性類似,噪聲的平均過零率也比較高,當待測語音中出現(xiàn)噪聲時,短時平均過零法較容易將噪聲誤判為清音。此外,短時過零點法和短時能量法的閾值是根據(jù)大量實驗測試得出,在判決過程中也會有個別點出現(xiàn),導致一些幀的判別結(jié)果并不準確。在判決過程中,閾值的選取極為重要,而閾值的選取依賴于大量的實驗數(shù)據(jù),這就要求對樣本實驗數(shù)據(jù)有著極高的準確率,才能達到比較準確的判決效果。因此,這兩種傳統(tǒng)的清濁音判別方法表1傳統(tǒng)方法與組合字典的清濁音判決正確率對比 判決音素準確率/%短時過零法短時能量法組合字典法face85.9887.2399.07statistics49.6693.10100.00show97.0699.73100.00在多音素的判決中并沒有得到理想的檢測效果。 傳統(tǒng)方法與組合字典的清濁音判決正確率對比如表1所示。由表1可以看出,在相同條件下,與傳統(tǒng)的判別方法相比,新提出的方法在多音素清濁音判決上具有更加準確的判別結(jié)果。這是因為基于組合字典的清濁音判決方法并不依賴于閾值,排除了個別點的干擾,只將組合清音字典上和組合濁音字典上系數(shù)的稀疏性做比較,比較方法具有相對性,而且清音和濁音具有很大的結(jié)構(gòu)差異,不同字典上系數(shù)的稀疏性差別較大,清濁音的區(qū)分程度更大,因此新方法對于清濁音的判決也更加明顯。 3結(jié)束語 本文將字典學習和稀疏表示與清濁音判決相結(jié)合,提出了一種新的清濁音判決方法。利用K-SVD算法對清音音素和濁音音素進行字典學習,分別訓練出符合清音特性的清音字典和符合濁音特性的濁音字典,并將多個單音素的清音字典組合成組合清音字典,多個單音素的濁音字典組合成組合濁音字典,將待測信號在組合清音字典和組合濁音字典上稀疏表示,得到相應的稀疏系數(shù),比較清濁音組合字典上系數(shù)的稀疏性強弱,進而實現(xiàn)清濁音判決。與傳統(tǒng)的清濁音判決方法相比,基于組合字典的清濁音判決方法并不依賴于閾值,受其他樣本數(shù)據(jù)測試結(jié)果的影響較小,排除了一些偶然性的干擾,在多音素的判決上具有較高的準確性。 參考文獻: [1]趙力. 語音信號處理[M]. 北京: 機械工業(yè)出版社, 2016. [2]閆潤強, 朱貽盛. 基于定量遞歸分析的清濁音判決[J]. 電子與信息學報, 2007, 29(7): 17031706. [3]Donoho D. L. Compressed sensing[J]. IEEE Transactions on Information Theory, 2006, 52(4): 12891306. [4]于俊鳳, 曹俊興. 基于組合參數(shù)的清濁音判決方法[J]. 太原理工大學學報, 2004, 35(4): 467469. [5]譚曉冰. 基于稀疏編碼的語音去噪技術(shù)研究[D]. 成都: 電子科技大學, 2015. [6]Barchiesi D, Plumbley M D. Dictionary learning of convolved signals[C]∥2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Prague, Czech Republic: IEEE, 2011, 58125814. [7]鄭思龍, 李元祥, 魏憲, 等. 基于字典學習的非線性降維方法[J]. 自動化學報, 2016(7): 10651076. [8]李彬. 基于稀疏表示的自適應語音增強方法研究[D]. 廈門: 廈門大學, 2015. [9]吳小龍, 伍松. 一種改進的變步長OMP圖像重建算法[J]. 廣西科技大學學報, 2019, 30(4): 6469. [10]莫長鑫, 畢寧. OMP算法對稀疏信號準確重構(gòu)的一個充分條件[J]. 復旦學報: 自然科學版, 2019, 58(1): 1924. [11]周思源, 趙錦航, 劉健均, 等. 基于優(yōu)化字典矩陣設計的OMP改進信道估計算法[J]. 電子技術(shù), 2018(10): 102106. [12]鮑光照. 基于稀疏表示與聯(lián)合字典學習的語音增強算法研究[D]. 合肥: 中國科學技術(shù)大學, 2015. [13]郭欣. 基于K-SVD稀疏表示的語音增強算法[D]. 太原: 太原理工大學, 2016. [14]金卯亨嘉. 壓縮感知中字典學習算法的研究及應用[D]. 天津: 天津大學, 2014. [15]Zhou Y, Zhao H, Shang L, et al. Immune K-SVD algorithm for dictionary learning in speech denoising[J]. Neurocomputing, 2014, 137(15): 223233. [16]Rosas-Romero R, Remote detection of forest fires from video signals with classifiers based on K-SVD learned dictionaries[J]. Engineering Applications of Artificial Intelligence, 2014, 33: 111. [17]許根鵬. 字典學習算法研究及其在語音增強中的應用[D]. 廣州: 廣東工業(yè)大學, 2017. [18]劉雅莉, 馬杰, 王曉云, 等. 一種改進的K-SVD字典學習算法[J]. 河北工業(yè)大學學報, 2016(2): 18. [19]牛彪, 李海洋. 低字典相干性K-SVD算法研究[J]. 計算機與數(shù)字工程, 2019, 47(1): 97103. [20]羅友. 基于聯(lián)合字典學習和稀疏表示的語音降噪算法研究[D]. 合肥: 中國科學技術(shù)大學, 2016. [21]Song L J, Peng J Y. Dictionary learning research based on sparse representation[C]∥2012 International Conference on Computer Science and Service System. Nanjing, China: IEEE, 2012, 1417.Judgement of Voiced and Unvoiced Sounds Based on K-SVD and Combined-Dictionary WANG Lianzi, LI Zhongxiao, CHEN Qianqian, ZHUANG Xiaodong (College of Electronic Information, Qingdao University, Qingdao 266071, China)Abstract:? According to the difference between voiced and unvoiced sounds, a new method has been proposed to judge them in this paper. The study selects enough voiced and unvoiced sounds as the object of dictionary learning and employs K-SVD algorithm to construct voiced dictionary and unvoiced dictionary respectively. And multiple single-voiced dictionaries are combined into a combined-voiced dictionary, while multiple single-unvoiced dictionaries are combined into a combined-unvoiced dictionary. Then the signals to be judged are sparse represented in combined-voiced dictionary and combined-unvoiced dictionary. The way to distinguish the voiced and unvoiced sounds is comparing the sparsity of coefficients in two dictionaries. The results have showed that comparing with the traditional methods by a large number of experimental results, the method based on combinatorial-dictionary is more accurate in the judgement of multiple phonemes under the same condition. This research is important for speech recognition and speech coding. Key words:? speech judgement; dictionary learning; sparse representation; combined-dictionary 收稿日期: 2019-12-18; 修回日期: 2020-02-13 基金項目:國家自然科學基金資助項目(41804110) 作者簡介:王蓮子(1995-),女,山東人,碩士研究生,主要研究方向為語音信號處理。 通信作者:莊曉東(1977-),男,博士、副教授,碩士生導師,主要研究方向為語音信號與圖像處理。 Email: xdzhuang@qdu.edu.cn