專利名稱:用于語(yǔ)音合成的運(yùn)行時(shí)聲頻單元選擇方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及一種語(yǔ)音合成系統(tǒng),且更具體地說(shuō),是涉及用于進(jìn)行語(yǔ)音合成系統(tǒng)中的聲頻單元選擇的方法和系統(tǒng)。
連結(jié)語(yǔ)音合成是一種形式的語(yǔ)音合成,它依賴于與語(yǔ)音波形對(duì)應(yīng)的聲頻單元的連結(jié)以從寫入的文本產(chǎn)生語(yǔ)音。該領(lǐng)域中未解決的一個(gè)問(wèn)題,是為了實(shí)現(xiàn)流利、可辨和自然的語(yǔ)音而適于聲頻單元進(jìn)行優(yōu)化的選擇和連結(jié)。
在很多傳統(tǒng)的語(yǔ)音合成系統(tǒng)中,聲頻單元是語(yǔ)音的語(yǔ)音單元,諸如雙音素、音素或短語(yǔ)。語(yǔ)音波形的暫態(tài)或瞬時(shí)與各個(gè)聲頻單元相聯(lián)系,以代表語(yǔ)音音素單元。一系列實(shí)例的單純的連結(jié)以合成語(yǔ)音,經(jīng)常導(dǎo)致不自然或“機(jī)器聲”的語(yǔ)音,因?yàn)樵谙噜彽膶?shí)例的邊界處存在有頻譜的不連續(xù)。為了獲得最好的自然發(fā)聲語(yǔ)音,連結(jié)的實(shí)例必須以適合于所要的文本的時(shí)序、強(qiáng)度和音調(diào)特性(即韻律)產(chǎn)生。
在傳統(tǒng)的系統(tǒng)中采用了兩種通常的技術(shù),以從聲頻單元的實(shí)例的連結(jié)產(chǎn)生自然發(fā)聲的語(yǔ)音采用平滑技術(shù)和采用較長(zhǎng)聲頻單元的技術(shù)。平滑試圖通過(guò)調(diào)節(jié)實(shí)例以在實(shí)例之間的邊界處進(jìn)行匹配,來(lái)消除相鄰實(shí)例之間的頻譜不匹配。受調(diào)節(jié)的實(shí)例產(chǎn)生了更為平滑的發(fā)聲語(yǔ)音,但由于實(shí)現(xiàn)平滑而對(duì)實(shí)例進(jìn)行的操作,該語(yǔ)音通常是不自然的。
選擇較長(zhǎng)的聲頻單元通常要采用雙音素,因?yàn)樗鼈儷@得了音素之間的共聯(lián)結(jié)效果。該共聯(lián)結(jié)效果是由于在給定音素之前和之后的音素而對(duì)給定的音素所產(chǎn)生的效果。采用每單元有三個(gè)或更多個(gè)音素的較長(zhǎng)單元,有利于減小出現(xiàn)的邊界的數(shù)目,并得到了較長(zhǎng)單元上的共聯(lián)結(jié)效果。較長(zhǎng)單元的采用導(dǎo)致了較高的發(fā)聲語(yǔ)音質(zhì)量,但需要更大的存儲(chǔ)量。另外,在不限制輸入文本的情況下采用較長(zhǎng)單元可能是有問(wèn)題的,因?yàn)椴荒鼙WC對(duì)模型的覆蓋。
本發(fā)明的最佳實(shí)施例涉及一種語(yǔ)音合成系統(tǒng)和產(chǎn)生自然發(fā)聲語(yǔ)音的方法。從以前所講的語(yǔ)音的訓(xùn)練數(shù)據(jù),產(chǎn)生出多個(gè)聲頻單元實(shí)例,諸如雙音素、三音素等等。該實(shí)例與語(yǔ)音信號(hào)的頻譜表示或用于產(chǎn)生有關(guān)的聲音的波形相對(duì)應(yīng)。從訓(xùn)練數(shù)據(jù)產(chǎn)生的實(shí)例隨后剪切下來(lái)以形成實(shí)例的健壯子集(robust subset)。
該合成系統(tǒng)對(duì)出現(xiàn)在輸入語(yǔ)言表達(dá)中的每一個(gè)聲頻單元中的一個(gè)實(shí)例進(jìn)行連結(jié)。實(shí)例的選擇是根據(jù)相鄰實(shí)例的邊界之間的頻譜失真來(lái)進(jìn)行的。這可以通過(guò)多種可能的實(shí)例序列來(lái)進(jìn)行,這些實(shí)例序列代表輸入語(yǔ)言表達(dá),從這種表達(dá)選擇出一種,它使在序列中的相鄰實(shí)例的所有邊界之間的頻譜失真達(dá)到最小。最好的實(shí)例序列隨后被用來(lái)產(chǎn)生一種語(yǔ)音波形—它產(chǎn)生出與輸入語(yǔ)言表達(dá)對(duì)應(yīng)的談話語(yǔ)音。
從以下結(jié)合附圖對(duì)本發(fā)明的最佳實(shí)施例所進(jìn)行的詳細(xì)描述,本發(fā)明的上述特征和優(yōu)點(diǎn)將變得顯而易見;在附圖中,相同的標(biāo)號(hào)表示相同的部分。這些附圖不一定是成比例的,而是強(qiáng)調(diào)對(duì)本發(fā)明的描述。
圖1是用于進(jìn)行最佳實(shí)施例的語(yǔ)音合成方法的語(yǔ)音合成系統(tǒng)。
圖2是最佳實(shí)施例中采用的分析方法的流程圖。
圖3A是把語(yǔ)音波形排列成與文本“This is great”相對(duì)應(yīng)的幀的例子。
圖3B顯示了與圖3A的例子的語(yǔ)音波形對(duì)應(yīng)的HMM和句音(senone)串。
圖3C是雙音素DH IH的實(shí)例的例子。
圖3D是一個(gè)例子,它進(jìn)一步顯示了雙音素DH IH的實(shí)例。
圖4是用于構(gòu)成每一個(gè)雙音素的實(shí)例子集的步驟的流程圖。
圖5是最佳實(shí)施例的合成方法的流程圖。
圖6A描述了如何根據(jù)本發(fā)明的最佳實(shí)施例的語(yǔ)音合成方法為文本“This is great”合成語(yǔ)音的例子。
圖6B是一個(gè)例子,它顯示了用于文本“This is great”的單元選擇方法。
圖6C是一個(gè)例子,它進(jìn)一步顯示了用于文本“This is great”的實(shí)例串的單元選擇方法。
圖7是本實(shí)施例的單元選擇方法的流程圖。
最佳實(shí)施例通過(guò)從多個(gè)實(shí)例的選擇中選擇合成輸入文本所需的每一個(gè)聲頻單元的一個(gè)實(shí)例并將選定的實(shí)例連結(jié)起來(lái),而產(chǎn)生自然發(fā)聲的語(yǔ)音。該語(yǔ)音合成系統(tǒng)在系統(tǒng)的分析或訓(xùn)練階段產(chǎn)生多個(gè)聲頻單元實(shí)例。在此階段,每一個(gè)聲頻單元的多個(gè)實(shí)例都從語(yǔ)音談話形成,而這些談話反映了在具體的語(yǔ)言中最可能出現(xiàn)的語(yǔ)音模式。在此階段期間累積的實(shí)例隨后得到剪切,以形成包含最有代表性的實(shí)例的健壯子集(robust subset)。在最佳實(shí)施例中,表示各種音素環(huán)境的概率最高的實(shí)例得到了選擇。
在語(yǔ)音合成中,合成器能夠在運(yùn)行中為語(yǔ)言表達(dá)中的各個(gè)聲頻單元選擇最好的實(shí)例,并作為所有可能的實(shí)例組合中相鄰實(shí)例的邊界之間出現(xiàn)的頻譜和韻律失真的函數(shù)。這種方式的單元選擇,消除了對(duì)平滑單元以使出現(xiàn)在相鄰單元之間的邊界處的頻率頻譜相匹配的要求。這產(chǎn)生了更為自然發(fā)聲的語(yǔ)音,因?yàn)椴捎昧嗽瓉?lái)的波形而不是不自然的修正單元。
圖1顯示了一個(gè)語(yǔ)音合成系統(tǒng)10,它適合于實(shí)現(xiàn)本發(fā)明的最佳實(shí)施例。該語(yǔ)音合成系統(tǒng)10包括用于接收輸入的輸入裝置14。該輸入裝置14可以是例如一個(gè)麥克風(fēng)、計(jì)算機(jī)終端等等。借助將在下面得到更詳細(xì)的描述的單獨(dú)的處理元件,對(duì)話音數(shù)據(jù)輸入和文本數(shù)據(jù)輸入進(jìn)行處理。當(dāng)輸入裝置14接收到話音數(shù)據(jù)時(shí),輸入裝置將話音輸入路由到訓(xùn)練部件13—它對(duì)話音輸入進(jìn)行語(yǔ)音分析。輸入裝置14從輸入話音數(shù)據(jù)產(chǎn)生相應(yīng)的模擬信號(hào),而該輸入話音數(shù)據(jù)可以是來(lái)自用戶的輸入語(yǔ)音談話或存儲(chǔ)的談話模式。該模擬信號(hào)被發(fā)送到一個(gè)模擬—數(shù)字轉(zhuǎn)換器16—它將模擬信號(hào)轉(zhuǎn)換成數(shù)字取樣序列。該數(shù)字取樣隨后被發(fā)送到一個(gè)特征提取器18—它提取數(shù)字化的輸入語(yǔ)音信號(hào)的參數(shù)表示。最好,特征提取器18對(duì)數(shù)字化的輸入語(yǔ)音信號(hào)進(jìn)行頻譜分析,以產(chǎn)生一個(gè)幀序列,其中每一個(gè)幀都包含代表輸入語(yǔ)音信號(hào)的頻率分量的系數(shù)。用于進(jìn)行語(yǔ)音分析的方法是信號(hào)處理的現(xiàn)有技術(shù)中眾所周知的,并可包括快速傅里葉變換、線性預(yù)測(cè)編碼(LPC)、以及對(duì)數(shù)倒頻譜系數(shù)。特征提取器18可以是進(jìn)行頻譜分析的傳統(tǒng)處理器。在最佳實(shí)施例中,頻譜分析每十毫秒進(jìn)行一次,以將輸入語(yǔ)音信號(hào)分成代表談話的一部分的幀。然而,本發(fā)明不僅限于采用頻譜分析或十毫秒的取樣時(shí)間幀??梢圆捎闷渌男盘?hào)處理技術(shù)和其他的取樣時(shí)間幀。對(duì)于整個(gè)語(yǔ)音信號(hào)重復(fù)上述的處理,并產(chǎn)生一系列的幀—它們被發(fā)送到分析引擎20。分析引擎20執(zhí)行若干任務(wù),這些任務(wù)將結(jié)合圖2-4進(jìn)行詳細(xì)描述。
分析引擎20對(duì)輸入語(yǔ)音談話或訓(xùn)練數(shù)據(jù)進(jìn)行分析,以產(chǎn)生句音(senone)(一個(gè)句音是在不同音素模型上的一群類似的馬爾可夫(Markov)狀態(tài))和隱藏馬爾可夫模型的參數(shù),它們將被語(yǔ)音合成器36使用。另外,分析引擎20產(chǎn)生出現(xiàn)在訓(xùn)練數(shù)據(jù)中的各個(gè)聲頻單元的多個(gè)實(shí)例,并形成了由合成器36所使用的這些實(shí)例的一個(gè)子集。該分析引擎包括用于進(jìn)行分割的分割部件21和用于選擇聲頻單元的實(shí)例的選擇部件23。這些部件的作用,將在下面得到更詳細(xì)的描述。分析引擎20利用了從文本存儲(chǔ)部分30獲得的輸入語(yǔ)音談話的音素表示、存儲(chǔ)在字典存儲(chǔ)部分22中的包含各個(gè)詞的音素描述的字典、以及存儲(chǔ)在HMM存儲(chǔ)部分24中的句音表。
分割部件21具有雙重的目的獲得存儲(chǔ)在HMM存儲(chǔ)部分中所需的HMM參數(shù)并將輸入的談話分成句音。這種雙重的目的,是通過(guò)一種迭代算法來(lái)實(shí)現(xiàn)的,該算法在給定一組HMM參數(shù)而分割輸入語(yǔ)音與給定該語(yǔ)音分割而重新估算HMM參數(shù)之間進(jìn)行交替。該算法增大了HMM參數(shù)在每次迭代時(shí)產(chǎn)生輸入談話的概率。當(dāng)達(dá)到收斂時(shí)停止該算法,且進(jìn)一步的迭代并不顯著地增大訓(xùn)練概率。
一旦完成了輸入談話的分割,選擇部件23從各個(gè)聲頻單元的所有可能的發(fā)生中選擇出對(duì)各個(gè)聲頻單元(即雙音素)的出現(xiàn)具有高度代表性的一個(gè)小的子集,并將這些子集存儲(chǔ)在單元存儲(chǔ)部分28中。這種發(fā)生的剪切依賴于HMM概率和韻律參數(shù)的值,并將在下面進(jìn)行詳細(xì)描述。
當(dāng)輸入裝置14接收到文本數(shù)據(jù)時(shí),輸入裝置14將該文本數(shù)據(jù)輸入路由到進(jìn)行語(yǔ)音合成的合成部件15。圖5-7顯示了本發(fā)明的最佳實(shí)施例所采用的語(yǔ)音合成技術(shù),并將在下面對(duì)其進(jìn)行詳細(xì)描述。自然語(yǔ)言處理器(NLP)32接收輸入的文本并給該文本的每一個(gè)詞加上一個(gè)描述標(biāo)簽。這些標(biāo)簽被傳送到一個(gè)字母—聲音(LTS)部件33和一個(gè)韻律引擎35。字母—聲音部件33利用來(lái)自字典存儲(chǔ)部分22的字典輸入和來(lái)自字母—音素規(guī)則存儲(chǔ)部分40的字母—音素規(guī)則,以把輸入文本中的字母轉(zhuǎn)換成音素。字母—聲音部件33可以例如確定輸入文本的適當(dāng)發(fā)音。字母—聲音部件33與一個(gè)音素串和重音部件34相連。音素串和重音部件34借助對(duì)輸入文本的適當(dāng)重讀而產(chǎn)生一個(gè)音素串,而后者被傳送到韻律引擎35。在替換實(shí)施例中,字母—聲音部件33和音素重音部件34可以是包含在同一個(gè)部件中。韻律引擎35接收音素串并插入停頓符號(hào),并確定表示串中的各個(gè)音素的強(qiáng)度、音調(diào)和持續(xù)時(shí)間的韻律參數(shù)。韻律引擎35利用存儲(chǔ)在韻律數(shù)據(jù)庫(kù)存儲(chǔ)部分42中的韻律模型。帶有停頓符號(hào)的音素串和表示音調(diào)、持續(xù)時(shí)間和幅度的韻律參數(shù)被發(fā)送到語(yǔ)音合成器36。這些韻律模型可以是與講話者無(wú)關(guān)的,也可以是與講話者有關(guān)的。
語(yǔ)音合成器36將音素串轉(zhuǎn)換成相應(yīng)的雙音素串或其他的聲頻單元,選擇對(duì)于各個(gè)單元來(lái)說(shuō)最好的實(shí)例,根據(jù)韻律參數(shù)來(lái)調(diào)節(jié)實(shí)例,并產(chǎn)生反映輸入文本的語(yǔ)音波形。在以下的描述中,為了說(shuō)明的目的,假定語(yǔ)音合成器將音素串轉(zhuǎn)換成雙音素串。當(dāng)然,語(yǔ)音合成器可以交替地把音素串轉(zhuǎn)換成交替的聲頻單元串。在執(zhí)行這些任務(wù)時(shí),合成器利用了存儲(chǔ)在單元存儲(chǔ)部分28中的各個(gè)單元的實(shí)例。
所產(chǎn)生的波形可被發(fā)送到輸出引擎38—它可以包括聲頻裝置以產(chǎn)生語(yǔ)音,也可以把該語(yǔ)音波形傳送到其他的處理元件或程序以進(jìn)行進(jìn)一步的處理。
語(yǔ)音合成系統(tǒng)10的上述部件可被包含在單個(gè)的處理單元中,諸如個(gè)人計(jì)算機(jī)、工作站等等。然而,本發(fā)明不僅限于具體的計(jì)算機(jī)體系結(jié)構(gòu)。其他的結(jié)構(gòu)也可以采用,諸如但不限于并行處理系統(tǒng)、分配處理系統(tǒng)等等。
在討論分析方法之前,以下的部分將給出用在最佳實(shí)施例中采用的句音、HMM和幀結(jié)構(gòu)。每一個(gè)幀對(duì)應(yīng)于一定段的輸入語(yǔ)音信號(hào),并可以表示該段的頻率和能量譜。在最佳實(shí)施例中,采用了LPC對(duì)數(shù)倒頻譜分析來(lái)構(gòu)成語(yǔ)音信號(hào)的模型,并產(chǎn)生了一個(gè)幀序列,每一個(gè)幀包含以下39個(gè)對(duì)數(shù)倒頻譜和能量系數(shù)—這些系數(shù)表示了幀中該部分信號(hào)的頻率和能量譜(1)12mel-頻率對(duì)數(shù)倒頻譜系數(shù);(2)12δmel-頻率對(duì)數(shù)倒頻譜系數(shù);(3)12δδmel-頻率對(duì)數(shù)倒頻譜系數(shù);以及,(4)能量、δ能量、以及δ-δ能量系數(shù)。
隱藏馬爾可夫模型(HMM)是用于表示語(yǔ)音的音素單元的概率模型。在最佳實(shí)施例中,它被用來(lái)表示音素。然而,本發(fā)明不僅限于這種音素基礎(chǔ),而可以采用任何語(yǔ)言表達(dá),諸如但不限于雙音素、詞、音節(jié)或句子。
一個(gè)HMM由借助變調(diào)而連接起來(lái)的一系列的狀態(tài)組成。與各個(gè)狀態(tài)相聯(lián)系的,是表示該狀態(tài)與一個(gè)幀相匹配的似然性的輸出概率。對(duì)于各個(gè)變調(diào),都有一個(gè)相關(guān)的變調(diào)概率,它表示了按照該變調(diào)的似然性。在最佳實(shí)施例中,一個(gè)音素可以用一個(gè)三態(tài)HMM表示。然而,本發(fā)明不僅限于這種HMM結(jié)構(gòu),利用更多或較少的狀態(tài)的其他的結(jié)構(gòu)也可以得到采用。與一個(gè)狀態(tài)相關(guān)的輸出概率,可以是包含在一個(gè)幀中的對(duì)數(shù)倒頻譜系數(shù)的高斯概率密度函數(shù)(pdf)的混合。高斯概率密度函數(shù)是較好的,但本發(fā)明不僅限于這種概率密度函數(shù)。也可以使用其他的概率密度函數(shù),諸如但不限于拉普拉斯型概率密度函數(shù)。
HMM的參數(shù)是變調(diào)和輸出概率。對(duì)于這些參數(shù)的估算是通過(guò)利用訓(xùn)練數(shù)據(jù)的統(tǒng)計(jì)技術(shù)而獲得的。有幾種眾所周知的算法可被用來(lái)從訓(xùn)練數(shù)據(jù)估算這些參數(shù)。
在本發(fā)明中可以采用兩種HMM。第一種是與上下文相關(guān)的HMM,它對(duì)音素連同其左和右邊的音素上下文一起進(jìn)行模型描述。由一組音素以及與它們相聯(lián)系的左和右邊的音素上下文所組成的預(yù)定的模式得到選擇,以由與上下文相關(guān)的HMM進(jìn)行模型化處理。這些模式得到選擇,因?yàn)樗鼈兇砹俗铑l繁出現(xiàn)的音素和這些音素的最頻繁出現(xiàn)的上下文。訓(xùn)練數(shù)據(jù)將為這些模型提供對(duì)這些參數(shù)的估算。與上下文無(wú)關(guān)的HMM,也可以被用來(lái)對(duì)音素進(jìn)行與其左和右邊的音素上下文無(wú)關(guān)的模型化處理。類似地,該訓(xùn)練數(shù)據(jù)將提供對(duì)與上下文無(wú)關(guān)的模型的參數(shù)的估算。隱藏馬爾可夫模型是眾所周知的技術(shù),且對(duì)HMM的更為詳細(xì)的描述,可以在Huang等人在《用于語(yǔ)音識(shí)別的隱藏馬爾可夫模型》(Edingburgh University Press,1990)中找到。
將HMM的狀態(tài)的輸出概率分布聚集起來(lái)以形成句音。這是為了減小對(duì)合成器要求大的存儲(chǔ)容量和增大的計(jì)算時(shí)間的狀態(tài)的數(shù)目。對(duì)句音和用于構(gòu)成它們的方法的更多詳細(xì)的描述,可以在M.Hwang等人“以句音預(yù)測(cè)未見三音素”(Proc.ICASSP’93 Vol.II,pp.311-314,1993)中找到。
圖2-4顯示了本發(fā)明的最佳實(shí)施例所進(jìn)行的分析方法。參見圖2,分析方法50可以通過(guò)接收語(yǔ)音波形序列形式(或者稱為語(yǔ)音信號(hào)或談話)的訓(xùn)練數(shù)據(jù)開始,這些數(shù)據(jù)被轉(zhuǎn)換成幀,如在以上結(jié)合圖1所述的。這些語(yǔ)音波形可以由句子、詞或任何類型的語(yǔ)言表達(dá)組成,并在此被稱為訓(xùn)練數(shù)據(jù)。
如上所述,該分析方法采用了一種迭代算法。在開始時(shí),假定已經(jīng)估算了HMM參數(shù)的初始集合。圖3A顯示了對(duì)于與語(yǔ)言表達(dá)“This isgreat”相對(duì)應(yīng)的輸入語(yǔ)音信號(hào)進(jìn)行HMM參數(shù)估算的方式。參見圖3A和3B,與輸入語(yǔ)音信號(hào)或波形64相對(duì)應(yīng)的文本62,是從文本存儲(chǔ)部分30獲得的。文本62可以被轉(zhuǎn)換成一串音素66—它們是對(duì)于文本中的各個(gè)詞而從存儲(chǔ)在字典存儲(chǔ)部分22中的字典獲得的。音素串66可被用來(lái)產(chǎn)生一系列的上下文相關(guān)HMM68—它們對(duì)應(yīng)于音素串中的音素。例如,在所示的上下文中的音素/DH/具有有關(guān)的上下文相關(guān)HMM—它被表示為DH(SIL,IH)70,其中左邊的音素是/SIL/或無(wú)聲,且右邊的音素是/IH/。這種上下文相關(guān)HMM具有三個(gè)狀態(tài)且與每一個(gè)狀態(tài)相聯(lián)系的是一個(gè)句音。在此具體例子中,這些句音是分別與狀態(tài)1、2和3相對(duì)應(yīng)的20、1和5。用于音素DH(SIL,IH)70的上下文相關(guān)HMM隨后與代表在該文本的其余部分中的音素的上下文相關(guān)HMM連結(jié)。
在迭代處理的下一個(gè)步驟中,通過(guò)利用分割部件21將各幀分割或時(shí)間對(duì)準(zhǔn)到每個(gè)狀態(tài)以及它們各自的句音,將語(yǔ)音波形映象到HMM的狀態(tài)上(圖2中的步驟52)。在該例中,用于DH(SIL,IH)70的HMM模型的狀態(tài)1和句音20(72)與幀1-4、78對(duì)準(zhǔn);同一模型的狀態(tài)2和句音1(74)與幀5-32、80相對(duì)準(zhǔn);且同一模型的狀態(tài)3和句音5,76與幀33-40、82相對(duì)準(zhǔn)。這種對(duì)準(zhǔn)是對(duì)于HMM序列68中的每一個(gè)狀態(tài)和句音進(jìn)行的。一旦進(jìn)行這種分割,HMM的參數(shù)就得到重新估算(步驟54)。可以采用眾所周知的Baum-Welch或正反向算法。該Baum-Welch算法是較好的,因?yàn)樗m合于處理混合密度函數(shù)。對(duì)Baum-Welch算法的更詳細(xì)的描述,可以在上述的Huang的參考文獻(xiàn)中找到。隨后判定已經(jīng)達(dá)到了收斂(步驟56)。如果還沒(méi)有收斂,處理通過(guò)用新的HMM模型來(lái)分割談話組而得到重復(fù)(即以新的HMM模型來(lái)重復(fù)步驟52)。一旦達(dá)到了收斂,HMM參數(shù)和分割都處于最后的形式。
在達(dá)到收斂之后,與各個(gè)雙音素單元的實(shí)例相對(duì)應(yīng)的幀,作為單元實(shí)例或用于相應(yīng)的雙音素或其他單元的實(shí)例,而被存儲(chǔ)在單元存儲(chǔ)部分28中(步驟58)。這在圖3A-3D中得到了顯示。參照?qǐng)D3A-3C,音素串66被轉(zhuǎn)換成雙音素串67。雙音素代表了兩個(gè)相鄰的音素的平穩(wěn)部分以及它們之間的過(guò)渡變換。例如,在圖3C中,雙音素DH_IH84是從音素DH(SIL,IH)86的狀態(tài)2-3和音素IH(DH,S)88的狀態(tài)1-2形成的。與這些狀態(tài)有關(guān)的幀,作為與雙音素DH_IH(0)92對(duì)應(yīng)的實(shí)例,而得到存儲(chǔ)。幀90對(duì)應(yīng)于語(yǔ)音波形91。
參見圖2,對(duì)于用在分析方法中的每一個(gè)輸入語(yǔ)音談話,都重復(fù)步驟54-58。在完成這些步驟時(shí),對(duì)于各個(gè)雙音素從訓(xùn)練數(shù)據(jù)累積的實(shí)例被剪切成子集,該子集包含覆蓋較高概率實(shí)例的健壯(robust)表示,如步驟60所示。圖4描述了剪切實(shí)例集的方式。
參見圖4,對(duì)每一個(gè)雙音素都重復(fù)方法60(步驟100)。計(jì)算所有實(shí)例的持續(xù)時(shí)間的平均值和變化(步驟102)。每一個(gè)實(shí)例都可以由一或多個(gè)幀組成,其中各個(gè)幀可以代表語(yǔ)音信號(hào)在一定時(shí)間間隔上的參數(shù)表示。各個(gè)實(shí)例的持續(xù)時(shí)間是這些時(shí)間間隔的累積。在步驟104,與平均值的偏差達(dá)到特定量(例如標(biāo)準(zhǔn)偏差)的那些實(shí)例被放棄掉。計(jì)算音調(diào)和幅度的平均值和變化。與平均值之差超過(guò)預(yù)定量(例如±標(biāo)準(zhǔn)偏差)的實(shí)例被放棄。
對(duì)于每一個(gè)其余的實(shí)例都進(jìn)行步驟108-110,如步驟106所示。對(duì)于每一個(gè)實(shí)例,都能夠計(jì)算出HMM產(chǎn)生出該實(shí)例的相關(guān)概率(步驟108)。該概率可以借助眾所周知的正反向算法(它在上述Huang的參考文獻(xiàn)中得到了描述)而計(jì)算出來(lái)。該計(jì)算利用了與代表具體雙音素的HMM的各個(gè)狀態(tài)或句音有關(guān)的輸出和轉(zhuǎn)變概率。在步驟110,為具體的雙音素形成句音的有關(guān)的串69(見圖3A)。在步驟112,帶有相同的開始和結(jié)束句音的句音序列的雙音素被分組。對(duì)于每一個(gè)組,選出具有最高概率的句音序列作為子集的部分,114。在步驟100-114完成時(shí),有與具體的雙音素對(duì)應(yīng)的實(shí)例子集(見圖3C)。對(duì)于每一個(gè)雙音素都重復(fù)該過(guò)程,從而產(chǎn)生了對(duì)于每一個(gè)雙音素都包含多個(gè)實(shí)例的表。
本發(fā)明的一個(gè)替換實(shí)施例尋求保持與相鄰單元匹配良好的實(shí)例。這樣的實(shí)施例尋求通過(guò)采用一種動(dòng)態(tài)編程算法來(lái)盡量減小失真。
一旦完成該分析方法,最佳實(shí)施例的合成方法進(jìn)行操作。圖5-7顯示了在最佳實(shí)施例的語(yǔ)音合成方法120中進(jìn)行的步驟。輸入文本被處理成一個(gè)詞串(步驟122),以將輸入文本轉(zhuǎn)換成對(duì)應(yīng)的音素串(步驟124)。因此,縮寫的詞和首字母縮略語(yǔ)被展開,以完成詞短語(yǔ)。這種擴(kuò)展的部分可以包括分析其中采用了縮寫詞和首字母縮略語(yǔ)的上下文,以確定相應(yīng)的詞。例如,首字母縮略語(yǔ)“WA”可以被轉(zhuǎn)換成“Washington”且縮寫“Dr.”可以根據(jù)其所在的上下文而被轉(zhuǎn)換成“Doctor”或“Drive”。字符和數(shù)字串可以用等價(jià)的文本表示來(lái)代替。例如,“2/1/95”可以用“ February first nineteen hundred and niney five”(一九九五年二月一日)代替。類似地,“$120.15”可以用一百二十美元十五分來(lái)代替??梢赃M(jìn)行句法分析,以確定句子的句法結(jié)構(gòu),從而以適當(dāng)?shù)恼Z(yǔ)調(diào)來(lái)讀該句子。同形異義詞中的字母被轉(zhuǎn)換成包含初級(jí)和次級(jí)重音標(biāo)志的聲音。例如,詞“read”可以根據(jù)該詞的具體時(shí)態(tài)而以不同的方式發(fā)音。為了考慮到這點(diǎn),該詞被轉(zhuǎn)換成表示相應(yīng)的發(fā)音并帶有相應(yīng)的重讀標(biāo)志的聲音。
一旦構(gòu)成了詞串(步驟122),該詞串被轉(zhuǎn)換成音素串(步驟124)。為了進(jìn)行這種轉(zhuǎn)換,字母—聲音部件33利用字典22和字母—音素規(guī)則40來(lái)將詞串中的詞的字母轉(zhuǎn)換成與這些詞對(duì)應(yīng)的音素。音素流與來(lái)自自然語(yǔ)言處理器的標(biāo)簽一起被發(fā)送到韻律引擎35。這些標(biāo)簽是詞的種類的標(biāo)識(shí)符。一個(gè)詞的標(biāo)簽可以影響其韻律,因而被韻律引擎35所使用。
在步驟126,韻律引擎35根據(jù)句子確定停頓的設(shè)置和各個(gè)音素的韻律。停頓的設(shè)置對(duì)于實(shí)現(xiàn)自然的韻律來(lái)說(shuō)是重要的。這可以通過(guò)利用包含在句子中的標(biāo)點(diǎn)符號(hào)和利用自然語(yǔ)言處理器32在上述步驟122所進(jìn)行的句法分析來(lái)確定。各個(gè)音素的韻律是在句子的基礎(chǔ)上確定的。然而,本發(fā)明不限于在句子基礎(chǔ)上使用韻律。韻律也可以利用其他的語(yǔ)言基礎(chǔ)來(lái)實(shí)現(xiàn),諸如但不限于詞或多個(gè)句子。韻律參數(shù)可以由各個(gè)音素的持續(xù)時(shí)間、音調(diào)或語(yǔ)調(diào)以及幅度組成。音素的持續(xù)時(shí)間受到在講話時(shí)置于詞上的重讀的影響。音素的音調(diào)可以受到句子的語(yǔ)調(diào)的影響。例如,陳述句和疑問(wèn)句產(chǎn)生不同的語(yǔ)調(diào)模式。韻律參數(shù)可以采用韻律模型來(lái)確定—這些模型被存儲(chǔ)在韻律數(shù)據(jù)庫(kù)42中。在語(yǔ)音合成的現(xiàn)有技術(shù)中,有眾多的眾所周知的用于確定韻律的方法。一種這樣的方法,可以在J.Pierrehumbert的“The Phonology and Phonetics of English Intonation”,MIT Ph.Ddissertation(1980)中找到。帶有停頓標(biāo)志和表示音調(diào)的韻律參數(shù)、持續(xù)時(shí)間以及幅度的音素串,被發(fā)送到語(yǔ)音合成器36。
在步驟128,語(yǔ)音合成器36將該音素串轉(zhuǎn)換成雙音素串。這是通過(guò)把各個(gè)音素與其右邊的相鄰音素結(jié)對(duì)而實(shí)現(xiàn)的。圖3A顯示了音素串66至雙音素串67的轉(zhuǎn)換。
對(duì)于雙音素串中的各個(gè)雙音素,在步驟130選出對(duì)于該雙音素來(lái)說(shuō)最好的單元實(shí)例。在最佳實(shí)施例中,最好的單元的選擇,是根據(jù)可以被連結(jié)以形成表示該語(yǔ)言表達(dá)的雙音素串的相鄰雙音素的邊界之間的最小頻譜失真,而得到確定的。圖6A-6C顯示了對(duì)語(yǔ)言表達(dá)“This is great”的單元選擇。圖6A顯示了可以被用來(lái)形成代表語(yǔ)言表達(dá)“This is great”的語(yǔ)音波形的各種單元實(shí)例。例如,對(duì)于雙音素DH_IH有10個(gè)實(shí)例,134;對(duì)于雙音素IH_S有100個(gè)實(shí)例,136;等等。單元選擇是以與眾所周知的Viterbi檢索算法類似的方式進(jìn)行的,該算法可以在Huang的上述參考文獻(xiàn)中找到。簡(jiǎn)要地說(shuō),形成了能夠被連結(jié)以形成表示該語(yǔ)言表達(dá)的語(yǔ)音波形的實(shí)例的所有可能序列。這在圖6B中得到了顯示。隨后,對(duì)于各個(gè)序列確定實(shí)例的相鄰邊界上的頻譜失真。該失真是作為一個(gè)實(shí)例的最后一個(gè)幀與相鄰的右邊的實(shí)例的第一個(gè)幀之間的距離而計(jì)算的。應(yīng)該注意的是,一個(gè)附加的分量可以被加到頻譜失真的計(jì)算中。具體地,在兩個(gè)實(shí)例之間的音調(diào)和幅度的歐幾里得距離可以作為頻譜失真計(jì)算的一部分而被計(jì)算出來(lái)。這種分量補(bǔ)償了由于音調(diào)與幅度的過(guò)度調(diào)制而產(chǎn)生的聲頻失真。參見圖6C,實(shí)例串140的失真,是幀142與144、146與148、150與152、154和156、158和160、162和164、以及166和168之間的差。具有最小失真的序列被用作產(chǎn)生語(yǔ)音的基礎(chǔ)。
圖7顯示了用于確定單元選擇的步驟。參見圖7,對(duì)于各個(gè)雙音素串重復(fù)步驟172-182(步驟170)。在步驟172,形成了實(shí)例的所有可能序列(見圖6B)。對(duì)于各個(gè)實(shí)例序列都重復(fù)步驟176-178(步驟174)。對(duì)于各個(gè)實(shí)例,除了最后一個(gè),以實(shí)例的最后一個(gè)幀中的系數(shù)與隨后的實(shí)例的第一個(gè)幀中的系數(shù)之間的歐幾里得距離的形式,計(jì)算出該實(shí)例與緊跟隨它的實(shí)例(即在序列中位于其右邊的實(shí)例)之間的失真。該距離用以下的數(shù)學(xué)定義來(lái)表示d(x-,y-)=Σi=1N(xi-yi)2]]>x=(x1,…,xn)幀x具有n個(gè)系數(shù);y=(y1,…,yn)幀y具有n個(gè)系數(shù);N=每幀中的系數(shù)的個(gè)數(shù)。
在步驟180,計(jì)算出實(shí)例序列中所有實(shí)例上的失真之和。在迭代174完成時(shí),在步驟182選出最好的實(shí)例序列。該最好的實(shí)例序列是具有最小累積失真的序列。
參見圖5,一旦已經(jīng)選定了最好的單元選擇,就根據(jù)輸入文本的韻律參數(shù)將這些實(shí)例連結(jié)起來(lái),且從與連結(jié)的實(shí)例相對(duì)應(yīng)的幀產(chǎn)生出合成的語(yǔ)音波形(步驟132)。這種連結(jié)過(guò)程將改變與選定的實(shí)例對(duì)應(yīng)的幀,以與所希望的韻律相一致??梢圆捎脦追N眾所周知的單元連結(jié)技術(shù)。
上述詳細(xì)描述的本發(fā)明通過(guò)提供對(duì)諸如雙音素的聲頻單元的多個(gè)實(shí)例,而改進(jìn)了合成語(yǔ)音的自然性。多個(gè)實(shí)例給語(yǔ)音合成系統(tǒng)提供了廣泛類型的波形,從這些波形可以產(chǎn)生合成的波形。這種多樣性使出現(xiàn)在相鄰實(shí)例的邊界處的頻譜失真最小,因?yàn)樗龃罅撕铣上到y(tǒng)把在邊界上具有最小頻譜失真的實(shí)例連結(jié)起來(lái)的可能性。這使得改變實(shí)例以使相鄰邊界的頻譜頻率匹配變得不必要了。由未改變的實(shí)例構(gòu)成的語(yǔ)音波形,產(chǎn)生出聲音更為自然的語(yǔ)音,因?yàn)樗怂鼈冊(cè)谧匀恍问较碌牟ㄐ巍?br>
雖然以上已經(jīng)詳細(xì)描述了本發(fā)明的最佳實(shí)施例,但需要強(qiáng)調(diào)的是,這種描述只是為了描述本發(fā)明并因而使本領(lǐng)域的技術(shù)人員能夠?qū)⒈景l(fā)明實(shí)施于各種不同的應(yīng)用—這些應(yīng)用需要對(duì)上述的設(shè)備和方法進(jìn)行修改—的目的而進(jìn)行的;因此,在此所公布的具體細(xì)節(jié)并不構(gòu)成對(duì)本發(fā)明的范圍的限制。
權(quán)利要求
1.在計(jì)算機(jī)系統(tǒng)中用于從輸入語(yǔ)言表達(dá)產(chǎn)生語(yǔ)音的方法,所述方法包括以下步驟把該輸入語(yǔ)言表達(dá)轉(zhuǎn)換成多個(gè)語(yǔ)音聲頻單元;為各個(gè)聲頻單元提供多個(gè)實(shí)例,每一個(gè)實(shí)例都表示了用于產(chǎn)生與該聲頻單元相聯(lián)系的語(yǔ)音的語(yǔ)音信號(hào)的聲頻特性;形成與語(yǔ)言表達(dá)中的聲頻單元相對(duì)應(yīng)的多個(gè)實(shí)例序列;對(duì)于每一個(gè)序列,確定序列中的相鄰實(shí)例之間的不相類似性;選擇相鄰實(shí)例之間的不相類似性最小的最好的序列;以及產(chǎn)生從最好的序列生成的語(yǔ)音。
2.在具有存儲(chǔ)裝置的計(jì)算機(jī)系統(tǒng)中,用于合成語(yǔ)音的方法,包括以下步驟在該存儲(chǔ)裝置中提供第一聲頻單元的多個(gè)實(shí)例;在該存儲(chǔ)裝置中提供第二聲頻單元的多個(gè)實(shí)例;以及通過(guò)選擇實(shí)例以使選出的實(shí)例之間的失真達(dá)到最小并將為第一聲頻單元提供的實(shí)例中的一個(gè)與為第二聲頻單元提供的實(shí)例中的一個(gè)連結(jié)起來(lái),進(jìn)行語(yǔ)音合成。
3.根據(jù)權(quán)利要求2的方法,其中聲頻單元是雙音素。
4.根據(jù)權(quán)利要求2的方法,其中用于第一聲頻單元和第二聲頻單元的實(shí)例得到了選擇,以盡量減小選定的實(shí)例之間的韻律失真。
5.根據(jù)權(quán)利要求2的方法,其中用于第一聲頻單元和用于第二聲頻單元的實(shí)例得到選擇,以盡量減小選定的實(shí)例之間的頻譜失真。
6.根據(jù)權(quán)利要求1的方法,其中對(duì)序列中的相鄰實(shí)例之間的不相類似性的確定是根據(jù)頻譜失真進(jìn)行的。
7.根據(jù)權(quán)利要求1的方法,其中對(duì)序列中的相鄰實(shí)例之間的不相類似性的確定是根據(jù)韻律失真來(lái)進(jìn)行的。
8.在計(jì)算機(jī)系統(tǒng)中的一種方法,包括以下步驟提供聲頻單元的一組實(shí)例;對(duì)聲頻單元的該組實(shí)例進(jìn)行剪切以產(chǎn)生聲頻單元實(shí)例的健壯集合;以及從聲頻單元實(shí)例的健壯集合選擇出一個(gè)實(shí)例以進(jìn)行語(yǔ)音合成。
9.根據(jù)權(quán)利要求8的方法,其中在該組實(shí)例中的各個(gè)實(shí)例具有一個(gè)持續(xù)時(shí)間,且其中對(duì)聲頻單元的該組實(shí)例進(jìn)行剪切的步驟包括除去該組實(shí)例中其持續(xù)時(shí)間與聲頻單元的該組實(shí)例的平均持續(xù)時(shí)間相差太大的聲頻單元實(shí)例,從而使除去的實(shí)例不處于實(shí)例的健壯集合中。
10.根據(jù)權(quán)利要求8的方法,其中在該組實(shí)例中的各個(gè)實(shí)例都具有一個(gè)音調(diào),且其中對(duì)聲頻單元的實(shí)例組進(jìn)行剪切的步驟包括除去該組實(shí)例中其音調(diào)與聲頻單元的該組實(shí)例的平均音調(diào)相差太大的聲頻單元實(shí)例,從而使除去的實(shí)例不處于實(shí)例的健壯集合中。
11.根據(jù)權(quán)利要求8的方法,其中在該組實(shí)例中的各個(gè)實(shí)例都具有一個(gè)幅度,且其中對(duì)聲頻單元的實(shí)例組進(jìn)行剪切的步驟包括除去該組實(shí)例中其幅度與聲頻單元的該組實(shí)例的平均幅度相差太大的聲頻單元實(shí)例,從而使除去的實(shí)例不處于實(shí)例的健壯集合中。
12.根據(jù)權(quán)利要求8的方法,其中在該組實(shí)例中的各個(gè)實(shí)例都具有持續(xù)時(shí)間、音調(diào)和幅度,且其中對(duì)聲頻單元的實(shí)例組進(jìn)行剪切的步驟包括除去該組實(shí)例中其持續(xù)時(shí)間、音調(diào)和幅度分別與聲頻單元的該組實(shí)例的平均持續(xù)時(shí)間、音調(diào)和幅度相差太大的聲頻單元實(shí)例,從而使除去的實(shí)例不處于實(shí)例的健壯集合中。
13.根據(jù)權(quán)利要求8的方法,其中提供聲頻單元的實(shí)例組的步驟是由用戶在系統(tǒng)的訓(xùn)練期間提供的。
14.在具有存儲(chǔ)裝置的計(jì)算機(jī)系統(tǒng)中,用于合成語(yǔ)音的方法,包括以下步驟將輸入文本串處理成音素串;將該音素串轉(zhuǎn)換成具有帶有邊界的雙音素的雙音素串;在該存儲(chǔ)裝置中提供雙音素串中的各個(gè)雙音素的多個(gè)實(shí)例;在該雙音素串中的雙音素實(shí)例中選出使相鄰雙音素邊界之間的頻譜失真最小的實(shí)例;以及將選定的雙音素實(shí)例連結(jié)起來(lái)以合成語(yǔ)音。
15.根據(jù)權(quán)利要求14的方法,其中該計(jì)算機(jī)系統(tǒng)包括一個(gè)韻律引擎,且其中該方法進(jìn)一步包括利用韻律引擎為音素串確定韻律參數(shù)的步驟。
16.一種計(jì)算機(jī)系統(tǒng),包括一個(gè)存儲(chǔ)裝置,用于存儲(chǔ)聲頻單元的多個(gè)實(shí)例;一個(gè)語(yǔ)音合成器,用于合成語(yǔ)音,包括一個(gè)選擇單元,用于選擇所存儲(chǔ)的聲頻單元的多個(gè)實(shí)例中的一個(gè)實(shí)例;以及一個(gè)語(yǔ)音輸出單元,用于利用聲頻單元的所選定的一個(gè)實(shí)例與不同的聲頻單元的至少一個(gè)其他的實(shí)例以輸出合成的語(yǔ)音。
17.根據(jù)權(quán)利要求16的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括一個(gè)剪切器,該剪切器用于除去選擇單元可以得到但缺乏魯棒性的聲頻單元的實(shí)例。
18.根據(jù)權(quán)利要求16的計(jì)算機(jī)系統(tǒng),其中聲頻單元的各個(gè)實(shí)例都具有持續(xù)時(shí)間,且其中剪切器對(duì)具有太短或太長(zhǎng)持續(xù)時(shí)間的聲頻單元的實(shí)例進(jìn)行剪切。
19.根據(jù)權(quán)利要求16的計(jì)算機(jī)系統(tǒng),其中聲頻單元的各個(gè)實(shí)例都具有音調(diào),且其中剪切器對(duì)具有太高或太低音調(diào)的聲頻單元的實(shí)例進(jìn)行剪切。
20.根據(jù)權(quán)利要求16的計(jì)算機(jī)系統(tǒng),其中聲頻單元的各個(gè)實(shí)例都具有幅度,且其中剪切器對(duì)具有太大或太小幅度的聲頻單元的實(shí)例進(jìn)行剪切。
全文摘要
本發(fā)明涉及一種連結(jié)語(yǔ)音合成系統(tǒng)和產(chǎn)生聲音更自然的語(yǔ)音的方法。該系統(tǒng)為可被用來(lái)產(chǎn)生代表語(yǔ)言表達(dá)的語(yǔ)音波形的各個(gè)聲頻單元提供了多個(gè)實(shí)例。這多個(gè)實(shí)例是在合成過(guò)程的分析和訓(xùn)練階段中形成的,并限于概率最高的實(shí)例的健壯表示。提供多個(gè)實(shí)例,使得合成器能夠選擇非常接近所希望的實(shí)例的實(shí)例,從而不需要改變所存儲(chǔ)的實(shí)例以與所希望的實(shí)例相匹配。這實(shí)際上盡量地減小了相鄰實(shí)例的邊界之間的頻譜失真,從而產(chǎn)生出聲音更自然的語(yǔ)音。
文檔編號(hào)G10L13/06GK1167307SQ9711084
公開日1997年12月10日 申請(qǐng)日期1997年4月30日 優(yōu)先權(quán)日1996年4月30日
發(fā)明者黃學(xué)東, 米切爾·D·普魯珀, 阿萊簡(jiǎn)喬·埃塞羅, 詹姆斯·L·阿多克 申請(qǐng)人:微軟公司