李亞文
(商洛學(xué)院 物理與電子信息工程系,陜西商洛 726000)
語(yǔ)音合成技術(shù)的發(fā)展起步較早,早在1791年由Wolfgang Von Kempelen等[1]發(fā)明的語(yǔ)音合成器,使得機(jī)器能用法語(yǔ)拼出完整的短語(yǔ),英語(yǔ)文語(yǔ)轉(zhuǎn)換系統(tǒng)發(fā)展比較早,代表性是DECTalk語(yǔ)音合成器[2],它可以發(fā)出7種不同音色的語(yǔ)音信號(hào),用戶可以任意選擇,德國(guó)Franunhofer學(xué)會(huì)開(kāi)發(fā)了DECTalk德語(yǔ)版本,它還被不同的國(guó)家轉(zhuǎn)化為烏克蘭語(yǔ)、俄語(yǔ)、匈牙利語(yǔ)等。從20世紀(jì)80年代我國(guó)自動(dòng)化研究所、聲學(xué)研究所、社科院,就開(kāi)始了語(yǔ)音合成方面的研究[3],目前漢語(yǔ)語(yǔ)音合成系統(tǒng)都是采用波形拼接合成技術(shù)[4],基于參數(shù)的語(yǔ)音合成算法,基于數(shù)據(jù)單元挑選語(yǔ)音合成算法和基于數(shù)據(jù)驅(qū)動(dòng)的語(yǔ)音合成方法,以及語(yǔ)音識(shí)別中的數(shù)據(jù)驅(qū)動(dòng)建模、最優(yōu)搜索等[1-2,4]優(yōu)秀的算法思想在語(yǔ)音合成中得到了廣泛的應(yīng)用,然而這些算法各有優(yōu)缺點(diǎn),主要問(wèn)題是占用的數(shù)據(jù)存儲(chǔ)空間較大,可懂度不高,從而影響了發(fā)音的質(zhì)量,合成的語(yǔ)音音色單一,韻律結(jié)構(gòu)預(yù)測(cè)誤差較大等。本文繼承基于參數(shù)的語(yǔ)音合成算法中線性預(yù)測(cè)的思想,提出了一種基于離散變換域的語(yǔ)音信號(hào)合成方法,對(duì)采樣的語(yǔ)音信號(hào)進(jìn)行濾波,送入預(yù)測(cè)器中并進(jìn)行語(yǔ)音預(yù)測(cè),采用線性預(yù)測(cè)的方法壓縮語(yǔ)音數(shù)據(jù)量,大大的降低了語(yǔ)音信號(hào)的帶寬,再對(duì)語(yǔ)音信號(hào)加窗、基音提取,最后在聲道模型中重構(gòu)合成語(yǔ)音信號(hào)。
離散信號(hào)相比模擬信號(hào)在傳輸中有明顯的優(yōu)勢(shì),因此大部分的信號(hào)傳輸都是要將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),其中語(yǔ)音信號(hào)的傳輸也是一樣。將時(shí)域的離散系統(tǒng)轉(zhuǎn)化為變換域(Z域)中,在變化域中的分析研究語(yǔ)音信號(hào)的重構(gòu)合成。
N階線性時(shí)不變(LTI)的離散系統(tǒng)的數(shù)學(xué)模型是常系數(shù)N階線性差分方程[5],它的一般形式為:
分析離散系統(tǒng)響應(yīng)的結(jié)果就是求解式(1)N階差分方程[5]的過(guò)程,其中差分方程中的系數(shù)aN,bm由系統(tǒng)的元件參數(shù)決定。
時(shí)域分析中,由系統(tǒng)的單位脈沖響應(yīng)h(n),可判斷離散時(shí)間系統(tǒng)的因果穩(wěn)定性。由于輸出變化發(fā)生在輸入變化之后,因此y(n)只取決于此時(shí)及以前的激勵(lì)x(n)、x(n+1)、離散LTI系統(tǒng)具有因果性的充分必要條件為:h(n)=0,n<0,離散LTI系統(tǒng)穩(wěn)定的充分必要條件為單位脈沖響應(yīng)滿足絕對(duì)可和,即
為了分析離散系統(tǒng)響應(yīng)和系統(tǒng)特性,引入了離散系統(tǒng)Z變換,方便了計(jì)算,可將時(shí)域的數(shù)學(xué)模型差分方程轉(zhuǎn)化為線性的代數(shù)方程;通過(guò)分析單位沖激響應(yīng)h(n)對(duì)應(yīng)的Z變換H(z)的零極點(diǎn)分布間接分析系統(tǒng)的因果穩(wěn)定性。
N階LTI離散系統(tǒng)的差分方程一般形式為:
對(duì)系統(tǒng)兩邊同時(shí)取Z變換得到:
其中式(4)中,y(l)是初始條件。 這樣離散系統(tǒng)的
時(shí)域響應(yīng)可表示為:
式(6)中,{ck}是 H(z)的零點(diǎn);{dk}是 H(z)的極點(diǎn)。由式(6)中H(z)的表示式中除了系數(shù)A外,H(z)可由其零、極點(diǎn)確定。
H(z)與h(n)是一對(duì)Z變換對(duì),所以只要知道H(z)在z平面上的零、極點(diǎn)分布情況,就可以知道系統(tǒng)的脈沖響應(yīng)h(n)變化規(guī)律[5],進(jìn)而可以判斷系統(tǒng)的因果穩(wěn)定性。
在語(yǔ)音信號(hào)分析研究的過(guò)程中,通過(guò)分析語(yǔ)音的發(fā)生機(jī)理,可將語(yǔ)音信號(hào)的形成過(guò)程簡(jiǎn)化為圖1的模型。假設(shè)激勵(lì)信號(hào)為e(n)表示,語(yǔ)音信號(hào)用s(n)表示,則濾波后得到的語(yǔ)音信號(hào)s(n)就可以表示為[6]式(7)的形式。
圖1 語(yǔ)音信號(hào)生成的簡(jiǎn)化模型
采集到的語(yǔ)音信號(hào)的得到是將脈沖序列和聲道模型的系統(tǒng)函數(shù)進(jìn)行卷積的過(guò)程,由于激勵(lì)信號(hào)e(n)和濾波器的模型V(z)中的系數(shù)ai(n)表示,因此這是一個(gè)復(fù)雜的解卷積的過(guò)程。通常激勵(lì)信號(hào)為周期脈沖序列,聲道模型中是高斯白噪聲序列,兩個(gè)信號(hào)的解卷積,可以使用自相關(guān)法或者自協(xié)方差法來(lái)求解系數(shù)ai(n),并且還Durbin遞推算法[7-8]和Schuir遞推算法[9]等。
經(jīng)過(guò)相應(yīng)的方法得到了系數(shù)ai(n),則將圖1中的輸入和輸出對(duì)換,就構(gòu)成了語(yǔ)音的預(yù)測(cè)模型,并將語(yǔ)音信號(hào)e(n)送入預(yù)測(cè)濾波器中,檢測(cè)預(yù)測(cè)語(yǔ)音信號(hào)和傳輸?shù)恼Z(yǔ)音信號(hào)的預(yù)測(cè)殘差e(n),因此e(n)可表示為
信號(hào)的發(fā)送和接受端都已知預(yù)測(cè)系數(shù)ai(n),在發(fā)送端只需將誤差e(n)發(fā)送到接收端,然后將e(n)作為差分方程的激勵(lì)得到重建的語(yǔ)音信號(hào)。在發(fā)送端語(yǔ)音信號(hào)s(n)是濾波器的輸入而誤差預(yù)測(cè)信號(hào)e(n)為濾波器的輸出,由于語(yǔ)音在短時(shí)間內(nèi)有平穩(wěn)特性,因此認(rèn)為預(yù)測(cè)系數(shù)ai(n)不發(fā)生變化,不用頻繁的傳輸,可采用線性預(yù)測(cè)的方法壓縮語(yǔ)音數(shù)據(jù)量,可以大幅度地降低語(yǔ)音信號(hào)的帶寬。
假設(shè)激勵(lì)信號(hào)為x{n},濾波器系數(shù)為ai(n),則可以利用激勵(lì)生成重建的語(yǔ)音信號(hào),設(shè)重建的語(yǔ)音信號(hào)為,可以表示為語(yǔ)音信號(hào)在長(zhǎng)時(shí)間內(nèi)是非平穩(wěn)導(dǎo)致預(yù)測(cè)系數(shù)ai(n)是時(shí)變的,一般是每10-20 ms就會(huì)發(fā)生變化,從而產(chǎn)生不同的音節(jié)。因此,濾波要根據(jù)不同的濾波系數(shù)分段進(jìn)行,相鄰兩次的濾波必須保持濾波器的狀態(tài)不發(fā)生變化。
分析一段10 ms的語(yǔ)音信號(hào),得到它的最佳系數(shù)ai(n),就可以用適當(dāng)?shù)妮斎雭?lái)合成語(yǔ)音,對(duì)于濁音信號(hào),以特定的基音頻率重復(fù)的單位沖激序列作為激勵(lì)模型;對(duì)于清音信號(hào),選擇隨機(jī)噪聲和白噪聲作為輸入,如果不區(qū)分清濁語(yǔ)音信號(hào),一般可使用周期激勵(lì)合成即可。
圖2是合成語(yǔ)音信號(hào)的系統(tǒng)模擬框圖。
圖2 分析合成語(yǔ)音的系統(tǒng)模擬框圖
抽樣的語(yǔ)音信號(hào)被分成10 ms的長(zhǎng)度,然后對(duì)每段數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,計(jì)算相鄰樣點(diǎn)的相關(guān)性從而得到最佳的預(yù)測(cè)系數(shù),語(yǔ)音合成的過(guò)程就是將這些預(yù)測(cè)系數(shù)和周期單位沖激系列作為輸入,依次得到每段的合成語(yǔ)音。
在matlab中編寫speechproc.m文件,實(shí)現(xiàn)對(duì)現(xiàn)有語(yǔ)音的分幀、加窗、線性預(yù)測(cè)和基音周期提取,在語(yǔ)音信號(hào)合成前,先要對(duì)系統(tǒng)進(jìn)行線性預(yù)測(cè)得到系統(tǒng)的最佳預(yù)測(cè)系數(shù)ai(n)。對(duì)每幀語(yǔ)音信號(hào)s(n)和預(yù)測(cè)模型系數(shù)ai(n),用filter計(jì)算激勵(lì)信號(hào)e(n),在系數(shù)變化的情況下連續(xù)濾波,利用filter的zi和zf參數(shù)去維持濾波器的狀態(tài)不變。如圖3所示為模擬聲道中的系統(tǒng)特性零極點(diǎn)分布圖;圖4的語(yǔ)音信號(hào)1和語(yǔ)音信號(hào)2為模擬原始的語(yǔ)音信號(hào)和在信道中傳輸疊加高斯白噪聲的信號(hào);根據(jù)計(jì)算得到的激勵(lì)語(yǔ)音信號(hào)s(n)和預(yù)測(cè)模型系數(shù)ai(n),計(jì)算重構(gòu)的合成的語(yǔ)音信號(hào)?(n),并將其與原始的語(yǔ)音信號(hào)比較,如圖5所示。
對(duì)比試聽(tīng)原始的語(yǔ)音信號(hào)1和聲道中傳輸?shù)恼Z(yǔ)音信號(hào)2以及合成的語(yǔ)音信號(hào),可以明顯清晰的聽(tīng)到聲道中傳輸?shù)恼Z(yǔ)音信號(hào)2十分模糊,噪聲干擾比較大,只能大概聽(tīng)見(jiàn)說(shuō)話的內(nèi)容,合成后的信號(hào)雖然語(yǔ)音效果不如原始的語(yǔ)音信號(hào)1,但是語(yǔ)音質(zhì)量在可以接受的范圍內(nèi),說(shuō)話的內(nèi)容清楚,偶爾有些“啪,啪”的聲音,可能是由于相位的不連續(xù)造成的,也可能是波形中的一些毛刺。實(shí)驗(yàn)中如果選取激勵(lì)信號(hào)較為簡(jiǎn)單,在聲道中就會(huì)丟失很多的信息,合成的語(yǔ)音信號(hào)也沒(méi)有原來(lái)的信號(hào)內(nèi)容豐富,經(jīng)過(guò)濾波后可以發(fā)現(xiàn)合成后的信號(hào)比原來(lái)的語(yǔ)音信號(hào)有一定的延遲,可能是相位發(fā)生了變化導(dǎo)致的,選取樣值n取1000-2000,觀察3個(gè)語(yǔ)音信號(hào),如圖6所示。
圖3 聲道的系統(tǒng)特性零極點(diǎn)分布
圖4 原始的語(yǔ)音信號(hào)和在聲道中傳輸?shù)恼Z(yǔ)音信
圖5 重構(gòu)合成的語(yǔ)音信號(hào)
圖6 n取1000-2000的3種語(yǔ)音的對(duì)
除了該實(shí)驗(yàn)基本合成外,還可以試著對(duì)原始的語(yǔ)音信號(hào)稍做變化,比如變速不變調(diào)(改變?cè)颊Z(yǔ)音信號(hào)的抽樣速率),其主要應(yīng)用于消費(fèi)類電子產(chǎn)品,如英語(yǔ)點(diǎn)讀機(jī)等;或者變調(diào)不變速,不是簡(jiǎn)單的快進(jìn)播放,需要通過(guò)改變共振頻率和基音周期的大小改變音調(diào)改變。這兩項(xiàng)技術(shù)都是以Z變換和線性預(yù)測(cè)模型為基礎(chǔ)的,是語(yǔ)音數(shù)字信號(hào)處理中的技術(shù)。
本文分析了語(yǔ)音信號(hào)的特點(diǎn),提出了一種在離散變換域中分析語(yǔ)音信號(hào)合成的方法。實(shí)驗(yàn)中使用離散系統(tǒng)去模擬聲道模型,借助離散系統(tǒng)變換域分析的特點(diǎn),對(duì)語(yǔ)音信號(hào)分幀、加窗,進(jìn)行線性預(yù)測(cè)和基音周期的提取,從而模擬重構(gòu)合成語(yǔ)音信號(hào)。實(shí)驗(yàn)結(jié)果表明,該種算法合成的語(yǔ)音信號(hào)與原始語(yǔ)音信號(hào)非常接近,系統(tǒng)的功能語(yǔ)調(diào),發(fā)音風(fēng)格易于控制,重構(gòu)精度較高,合成語(yǔ)音準(zhǔn)確、生動(dòng)的傳遞語(yǔ)音信息,為以后做語(yǔ)音信號(hào)處理和可視化的語(yǔ)音視頻處理提供一種新的方法。
[1]朱維彬,呂士楠.基于語(yǔ)義的語(yǔ)音合成技術(shù)的現(xiàn)狀及展望[J].北京理工大學(xué)學(xué)報(bào),2007,27(5):408-411.
[2]康廣玉,郭世澤.基于共振峰過(guò)度的協(xié)同發(fā)音語(yǔ)音合成算法[J].天津大學(xué)學(xué)報(bào),2010,43(9):810-814.
[3]Thierry Dutoit.High-quality text-to-speech synthesis[J].Journal of Electrical and Electronics Engineering,1997,17(1):25-37
[4]韓紀(jì)慶,張 磊,鄭鐵然.語(yǔ)音信號(hào)處理[M].北京:清華大學(xué)出版社,2004.
[5]李亞文.基于MATLAB的離散系統(tǒng)分析[J].商洛學(xué)院學(xué)報(bào),2013,27(4):34-36.
[6]于 馳,王宏偉,宮明龍.多輸入多輸出離散系統(tǒng)的輸出反饋滑??刂芠J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(2):187-190.
[7]WANG Y Z,ZHANG H G,YANG J.Robust adaptive control for interval time-delay systems[J].Journal of control Theroy and Application,2006,4:367-371.
[8]郭海燕,楊 震.基于近似KLT域的語(yǔ)音信號(hào)壓縮感知[J].電子與信息學(xué)報(bào),2009,31(12):2948-2952.
[9]Chou F C,Seng C Y,Lee L S.A set of corpusbased text-to-speech synthesis technologies for Mandarin Chinese[J].IEEE Transaction on Speech and Audio Processing,2002,10(7):481-494.
[10]張德豐.matlab在數(shù)字信號(hào)處理中的應(yīng)用[M].北京:清華大學(xué)出版社,2010.