梅鐵民,吳麗君,張 景
(1.沈陽理工大學 信息科學與工程學院, 沈陽 110159;2.河海大學 水利水電學院, 南京 210098)
?
一種有效的語音變調(diào)算法研究
梅鐵民1,吳麗君1,張 景2
(1.沈陽理工大學 信息科學與工程學院, 沈陽 110159;2.河海大學 水利水電學院, 南京 210098)
在語音信號處理中,語音變調(diào)技術是一項非常重要的內(nèi)容。目前采用較多的算法為同步疊加固定合成算法(Synchronized Overlap-Add Fixed Synthesis,SOLA-FS)。該算法簡單,但存在著變調(diào)范圍小、音質(zhì)差等弊端。為了改善變調(diào)語音的音質(zhì),提高語音清晰度,在SOLA-FS算法的基礎上,提出了一種不改變原語音的采樣率,而在播放時采用設定的采樣率播放的方法實現(xiàn)語音變調(diào)。實驗結(jié)果表明,相對于SOLA-FS算法,新方法明顯地改善了語音在連接點處相位不連續(xù)的問題,具有更好的變調(diào)效果。
語音變調(diào);SOLA-FS算法;采樣率;語音信號
語音變調(diào)技術是在不改變語音可懂度并保持語速不發(fā)生變化的前提下,按照某種算法對給定語音的音調(diào)高低進行調(diào)整。隨著信息技術和多媒體技術的迅速發(fā)展,音視頻信息越來越多,正常的音頻素材己經(jīng)遠遠滿足不了人們對語音的特殊需求,例如在動漫影視中,需要給一些奇人怪物配上表現(xiàn)其特點的奇聲怪調(diào);又如廣播電臺熱線節(jié)目,為了保護被采訪人的隱私,必要時需要對他們的聲音加以修飾,這些都要用到語音變調(diào)技術[1]。因此,通過語音變調(diào)可以達到保護說話人隱私的目的,或者給人們提供某種娛樂效果,具有很實際的研究價值。
目前主要有兩類比較成熟的語音變調(diào)方法:一類是時域插值拼接方法,例如同步疊加固定合成法(SOLA-FS);另一類是頻域算法,例如相位聲碼器法(phase-vocoder)[2]。時域處理算法的優(yōu)點是算法簡單,在變調(diào)范圍較小時效果較好,變調(diào)語音自然度高,但是要想進行較大尺度的變調(diào),由于誤差累加效應的存在,變調(diào)后語音質(zhì)量很差,所以要想進行較大尺度的變調(diào)就只能運用頻域算法。但頻域算法要進行時頻變換和估計相位,還要計算語音變調(diào)前后的真實頻率變化,較大的計算量導致變調(diào)效率不高,而且變調(diào)后語音不自然,有類似于敲打金屬的聲音。目前普遍采用的變調(diào)方法為SOLA-FS算法[3],該變調(diào)方法在功能上能實現(xiàn)語音變調(diào),但在該方法的時長規(guī)整階段往往存在數(shù)據(jù)段間銜接點處相位不連續(xù)的問題,使得聲音有明顯的金屬聲和較大噪音。
本文在SOLA-FS的基礎上提出了一種不改變采樣率而改變其播放速率來實現(xiàn)語音變調(diào)的方法,它既能較好地實現(xiàn)語音變調(diào)的功能,又改善了銜接點處不連續(xù)的問題。仿真結(jié)果表明,相對于SOLA-FS算法,新的算法具有較好的變調(diào)效果。
首先,簡單介紹SOLA-FS算法。該變調(diào)方法包括采樣率變換和時長規(guī)整兩步。通過在語音信號數(shù)據(jù)點之間線性插入新的數(shù)據(jù)點,或者在原語音信號上等間隔抽取一些數(shù)據(jù)點來達到增加或減少采樣點的目的。若將插值和抽取相結(jié)合,則可以實現(xiàn)任意倍頻率的變調(diào)。降調(diào)時,進行A倍插值,B倍抽取(A>B),使得原始數(shù)據(jù)變長,如果仍然以原始采樣率播放,則語速變慢,若想保持語速不變,必須對變調(diào)后的信號進行時長規(guī)整;同理,升調(diào)時(A
圖1 語音變調(diào)時的時長規(guī)整
圖中:W為幀長度;S為幀位移;h為合成幀位移;Kmax為尋找相關性的最大允許位移;L為交叉漸變區(qū)域長度。
在進行時長規(guī)整時,首先將語音段中的前W個數(shù)值作為第一幀取出來,直接存入目標地址中,組成輸出序列。然后根據(jù)幀位移S的值,從第S+1個點開始取出下一幀語音(W個點),然后將這幀語音最前面的L(=W-h)個點與輸出序列最后的L個點進行比較,得出它們之間的相關性,并記錄下來。將整個分析窗口向右平移一個點,再對新序列中的前L個點與輸出序列中的后L個點進行比較,同時記錄下他們的相關性。這樣重復做Kmax次,取出相關性最大的那種情況,將這種情況下,所截取的語音序列的前L個點與輸出序列的最后L個點按既定的方式進行疊加,再將W個點的窗口中剩余的h個點存入到輸出序列中,至此完成了一輪語音幀的疊加操作[5]。按照同樣的方法再對下一輪語音幀進行處理,直至完成全部語音,實現(xiàn)變調(diào)。
在SOLA-FS語音變調(diào)方法中,幀與幀之間存在重疊,并通過左右平移,尋找對應段間的相關性最大值,找出最佳移位點,從而盡量使幀間過渡自然、平滑。但由于該方法的局限性,即使在語音幀為準周期的濁音段時,有時也不能找準最佳移位點,使變調(diào)后的輸出語音在幀與幀之間的銜接點處仍然存在相位不連續(xù)的問題,所以聽起來會有很明顯的噪音[6],直接影響語音變調(diào)的質(zhì)量。針對SOLA-FS算法存在的問題,提出一種改進算法。
在SOLA-FS算法中,是按照采樣率變換、時間規(guī)整的順序進行的[7]。在新算法中,將把這個順序顛倒過來,即先進行時間規(guī)整,然后進行采樣率變換。事實上,采樣率變換這一步完全可以省略掉,并不需要進行采樣率變換,而是在播放時用設定的變調(diào)采樣率來播放就可以達到變調(diào)目的。此外,這樣做不僅可以減少語音變調(diào)的計算量,還有另外的好處,即當用原始采樣率播放變調(diào)語音時,相當于保持音調(diào)不變的情況下對原始語音進行語速變換,即升調(diào)語音在原始采樣率下播放相當于降低語速(音調(diào)不變);降調(diào)語音在原始采樣率下播放相當于提升語速(音調(diào)不變)。當把語音變調(diào)(語速不變)過程看成是語音變速(音調(diào)不變)過程時,語音變調(diào)算法設計更為直觀:即通過改變語音中每個音素的持續(xù)時間來實現(xiàn)語音變調(diào)。
由于對音頻進行處理時,采用分段處理方法,在各個分段的銜接處處理不好的話,會出現(xiàn)一些不連續(xù)點,產(chǎn)生一些高頻噪音,這是導致變調(diào)語音質(zhì)量下降的主要原因。為此,在變調(diào)過程中,盡量解決由銜接點處不連續(xù)帶來的噪音是提高變調(diào)語音質(zhì)量所要解決的關鍵問題。
下面將分別就語音升調(diào)、降調(diào)過程進行詳細描述,原理如圖2所示。
語音升調(diào)與語音降調(diào)的波形變換過程本質(zhì)上是一致的,可看做是在原始采樣率下拉長語音中每個音素的持續(xù)時間。在不改變語音采樣率的情況下,首先對語音信號進行分幀,把每一幀語音看成是一個音素。復制每幀語音末尾的一段來達到拉長音素持續(xù)時間的目的。在濁音段,為了保證復制段語音與原語音幀銜接時相位的連續(xù)性,復制段語音的長度應是該濁音段語音基音周期的整數(shù)倍。這涉及到兩個問題,其一是如何確定對原語音的分幀長度;其二是如何確定復制段語音的最優(yōu)長度[8]。
圖2 變調(diào)時各參數(shù)示意圖
圖中:L為段長度;n為每段抻出來的長度或每段去掉的長度;h為尋找相關性的最大允許位移;L′為變調(diào)后的長度。
其次,在確定出原始語音的分幀長度后,為了保證語音變調(diào)處理時相位的連續(xù)性,需要確定復制段語音的最優(yōu)長度,即一個基音周期。本文采用相關函數(shù)法尋找每幀語音(濁音段)最后一段k點語音與它緊鄰的前一段k點語音的最大相關性,由此確定出復制段語音的最優(yōu)長度(當k取不同值時,只有當k等于基音周期時,這兩段的相關性才達到最大)。k的取值范圍以長度n為中心,前后移動h個點(通??扇=30),則尋找相關性的最大允許位移為(n-h)~(n+h)。相鄰兩個基因周期的互相關函數(shù)值如圖3所示,最大互相關系數(shù)max(r)=0.53692。設置一個移動區(qū)間h,而不是直接選擇設定好的長度,這是因為同一個人在不同情態(tài)下發(fā)聲的基音周期不同,加之基音周期還受到單詞發(fā)音音調(diào)的影響,因此每段語音基音周期并不完全一樣,會有所不同。在清音段非準周期的情況下,則直接將設定好的長度n確定為復制段語音的最優(yōu)長度[8]。
尋找復制語音段最優(yōu)長度的過程如下:
用xm(n)表示第m幀語音信號,用x(n)表示原始信號的序列。那么兩者的關系可以用下面的等式表示:
式中,xk=[xm(L-k),xm(L-k+1),…,xm(L-1)]Τ,
yk=[xm(L-2k),xm(L-2k+1),…,
xm(L-k-1)]Τ。
語音降調(diào)過程與升調(diào)過程相反,是刪除原語音幀中的一段語音,使新語音幀變短。當對原語音降m個半音時,變調(diào)系數(shù)為γ=2-m/12。
通過以上處理,變調(diào)語音長度是原語音長度的γ倍。播放時,若原播放頻率為f0,則變調(diào)后播放頻率為fs=γ·f0。
圖3 相鄰兩個基音周期的互相關函數(shù)圖
實驗中,所用的音頻為一英文女聲錄音,采樣頻率為16000Hz,變調(diào)系數(shù)為1.3,即相當于音調(diào)升高約5個半音。設定幀長L=191,仿真結(jié)果見圖4~圖6。
圖4中的波形由上至下依次為語音升調(diào)、原語音、語音降調(diào)的時域波形,從圖4可以看出,變調(diào)前后的時域波形,能量的整體包絡基本不變,因此,變調(diào)只是對語音信號的音高特征做了調(diào)整,并不改變語音信號的內(nèi)容。
圖4 新算法變調(diào)后語音與原語音時域?qū)Ρ葓D
圖5、圖6分別為相同內(nèi)容的語音幀用不同的方法變調(diào)后仿真出的結(jié)果。圖5為SOLA-FS算法升調(diào)后的語音波形(已經(jīng)過采樣率變換)與原信號時域波形對比圖,從圖5可以看出,SOLA-FS變調(diào)后的語音在波形上有明顯的相位不連續(xù)處(如圖5中1和2所示),所以導致變調(diào)語音產(chǎn)生高頻噪音,聽上去會有“咔嚓咔嚓”的噪音。
圖5 SOLA-FS算法變調(diào)后的語音與原信號時域?qū)Ρ葓D
圖6為新算法變調(diào)后的語音波形(未經(jīng)采樣率變換)與原信號時域波形對比圖,圖6變調(diào)后的語音波形沒有明顯相位不連續(xù)處,所以在播放時沒有刺耳的高頻噪音,相對SOLA-FS算法,新的算法較好地實現(xiàn)了語音變調(diào)功能,大大改善了銜接點處相位不連續(xù)的問題,使得變調(diào)語音在音質(zhì)上得到了較大提高。
圖6 新算法變調(diào)后的語音與原信號時域?qū)Ρ葓D
綜上所述,新的算法比SOLA-FS算法更具優(yōu)勢,因為SOLA-FS算法比較的是重疊段的相似度,而新算法比較的是緊鄰部分即語音幀中相鄰兩個基音周期的相似度。相對而言,相鄰兩個基音周期的相關性更大。
為進一步評估兩種變調(diào)方法的效果,進行變調(diào)結(jié)果的主觀測聽實驗。選擇10個不同內(nèi)容的男聲句子和10個不同內(nèi)容的女聲句子,采樣率均為16kHz,采用SOLA-FS算法和新算法,分別對這20句男女聲句子進行變調(diào)系數(shù)γ為0.8、1.2、1.5的變調(diào)處理,然后請10位沒有任何語音變調(diào)背景知識的學生來對兩種方法的變調(diào)結(jié)果進行測聽,并對變調(diào)效果作出主觀評價。測聽時將同一變調(diào)系數(shù)下,同一句子對應不同變調(diào)方法的音頻文件隨機傳輸給測聽者,測聽者選擇其中自然度較好的一個,每個變調(diào)系數(shù)下的男聲女聲句子共需要做10×10=100次選擇。測聽完成后,計算出在3個變調(diào)系數(shù)下,不同變調(diào)方法自然度評價的一個百分數(shù):
男女聲變調(diào)效果主觀測聽結(jié)果如圖7和圖8所示。
圖7 男聲變調(diào)效果主觀評估統(tǒng)計圖
圖8 女聲變調(diào)效果主觀評估統(tǒng)計圖
從圖7、圖8可以看出,對于男聲和女聲的變調(diào)效果,新的變調(diào)方法比SOLA-FS算法有明顯的優(yōu)勢。另外,還可以看出男聲升調(diào)時的效果要好于降調(diào),分析其原因,可能是因為男聲在音調(diào)上要比女聲低,再進一步對其進行降調(diào),會有失真。因此由圖7可以看出,男聲的變調(diào)系數(shù)為γ=0.8時,新的變調(diào)方法所體現(xiàn)出的優(yōu)勢不如升調(diào)明顯。同理,女聲音頻在變調(diào)系數(shù)為1.5時優(yōu)勢不如前兩個變調(diào)系數(shù)明顯??傮w上來講,新的變調(diào)方法是一種效果更好的變調(diào)方法,在改變音調(diào)的同時,也獲得了較好的自然度。
在SOLA-FS算法的基礎上,提出了一種不改變原信號采樣率,而是在播放時采用設定的變調(diào)采樣率播放的方法,實現(xiàn)語音音調(diào)的升高或降低。新算法把語音變調(diào)過程看成是語音變速過程,通過改變語音中每個音素的持續(xù)時間,實現(xiàn)語音變調(diào)。同時,針對由分段處理帶來的相位不連續(xù)問題,新算法通過相關函數(shù)法,使得復制段或刪除段語音的最優(yōu)長度為一個基音周期,明顯改善了上述問題,具有更好的變調(diào)效果。但是,改進的算法也存在一定缺陷,需要做進一步研究。
[1]賴振興,樊曉龍,秦榮林.具有語音變調(diào)功能的通話裝置及其語音變調(diào)方法:中國,200510023519[P].2005-01-24.
[2]F A R Nascimento,F J Fraga.New methods for improvement of sinusoidal transform vocoders[C]//IEEE International Conference on Multimedia and Expo.Taipei,2004:1159-1162.
[3]蔡杰,葉梧,馮穗力.一種基于SOLA的數(shù)字音頻變調(diào)算法及其在TMS320C6713上的實現(xiàn)[J].電子技術應用,2006(12):28-31.
[4]張曉蕊,田嵐.語音變調(diào)方法分析及音效評估[J].山東大學學報:工學版,2011,41(1):1-6.
[5]張曉蕊.語音變調(diào)算法研究及其在語音合成中的應用[D].濟南:山東大學,2011.
[6]LI Ke,LIU Jia.SOLA based on zero-crossing Point[C]//The Proceedings of the Multi-conference on Computational Engineering in Systems Applications.Beijing,2006:110-112.
[7]JEAN Laroche.Improved Phase Vocoder Time-Scale Modification of Audio[J].IEEE Transactions on Speech and Audio Processing,1997,7(3):323-332.
[8]許雪瓊,于小清.改進波形相似疊加算法的音頻時長調(diào)整[J].應用科學學報,2009,27(5):514-519.
[9]王曉影.一種有效的語音信號變調(diào)算法及其實時實現(xiàn)[J].數(shù)據(jù)采集與處理,1998,3(1):42-45.
(責任編輯:馬金發(fā))
An Efficient Algorithm for Pitch-scale Modification
MEI Tiemin1,WU Lijun1,ZHANG Jing2
(1.Shenyang Ligong University,Shenyang 110159,China;2.Hohai University,Nanjing 210098,China)
Pitch-scale modification technology is an important researching topic in speech signal processing.As all of the algorithms concerned,SOLA-FS is widely used for its simplicity.But there are also some disadvantages,for example,small pitch-scale modification range,poor quality,and so on.In order to improve the pitch-scale modification range and quality,a new algorithm is proposed,on the basis of SOLA-FS,which does not change the original speech sampling rate during speech wave transform.But the modified speech will be played with a new sampling rate.Experimental results show that the new method improves the phase discontinuity at connection point obviously and gives a better tone effect compared with the SOLA-FS algorithm.
pitch-scale modification;SOLA-FS algorithm;sample rate;speech signal
2015-09-09
梅鐵民(1964—),男,教授,博士,研究方向:自適應信號處理。
1003-1251(2016)04-0016-05
TN911
A