專利名稱:一種音標(biāo)到語音的轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音標(biāo)到語音的轉(zhuǎn)換方法。
背景技術(shù):
“語音”是一種最直接、最人性化的人機(jī)交互手段,隨著科學(xué)技術(shù)的發(fā)展、現(xiàn)代化水平的提高,各類語音的需求層出不窮,但是由于TTS(Text-to-Speech,文本到語音的轉(zhuǎn)換)對(duì)于運(yùn)算和存儲(chǔ)資源要求比較高,使得TTS技術(shù)主要局限在服務(wù)器級(jí)和桌面級(jí)的應(yīng)用。然而,近幾年隨著嵌入式技術(shù)的蓬勃發(fā)展,手機(jī)、車載GPS系統(tǒng)、電子詞典、多語言翻譯機(jī)、智能信息終端、智能玩具、智能家電、移動(dòng)辦公設(shè)備等嵌入式設(shè)備越來越受到社會(huì)的認(rèn)同,為了滿足用戶對(duì)于嵌入式設(shè)備更便捷、更自然使用的需求,將語音技術(shù)應(yīng)用到嵌入式設(shè)備中成了必然的趨勢。
公開日為2003年4月2日,申請(qǐng)?zhí)枮镃N01130994.6的中國專利公開了一種英語音標(biāo)分解與合成的方法,該方法為一種分解英語的K.K音標(biāo)并依音調(diào)加以分類的方法,可將已知音標(biāo)分解為數(shù)段基本發(fā)音單元,再尋找相對(duì)應(yīng)的基本音波形數(shù)據(jù)合成為語音,具有降低原始語音數(shù)據(jù)量并保持原始語音音調(diào)的優(yōu)點(diǎn)。但是,該方法同時(shí)存在以下缺點(diǎn)1)該方法在分解合成時(shí)需要運(yùn)用大量的規(guī)則進(jìn)行邏輯運(yùn)算,操作復(fù)雜,會(huì)占用很多的CPU和系統(tǒng)內(nèi)存資源,不適合于嵌入式系統(tǒng)使用。
2)該方法設(shè)置了大量規(guī)則來分解合成音標(biāo),這些規(guī)則是英語的K.K.音標(biāo)所特有的,不能用于其他音標(biāo)或者其他語言。
3)該方法通過設(shè)置大量規(guī)則來分解合成音標(biāo),這些抽象出來的規(guī)則并不具有普遍的適用性,使得合成結(jié)果不夠準(zhǔn)確,使用也不夠靈活。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提出的一種音標(biāo)到語音的轉(zhuǎn)換方法,該方法不受音標(biāo)類型和語言的限制,且占用資源少,適合在嵌入式系統(tǒng)中使用。
為了解決上述技術(shù)問題,本發(fā)明提供了一種音標(biāo)到語音的轉(zhuǎn)換方法,包括以下步驟(a)建立一個(gè)音素和基本音的對(duì)應(yīng)表,將該表和表中基本音對(duì)應(yīng)的語音數(shù)據(jù)保存用于音標(biāo)到語音轉(zhuǎn)換的裝置中;(b)所述裝置接收到輸入的要分解的音標(biāo)后,先將其按不同劃分方式分解為若干個(gè)音素序列;(c)對(duì)每個(gè)音素序列,分別根據(jù)其包含的音素到所述對(duì)應(yīng)表中搜索匹配的基本音序列,選擇其中最優(yōu)的一條搜索路徑所匹配到的基本音序列作為所述音標(biāo)的匹配結(jié)果;(d)根據(jù)所述音標(biāo)匹配到的基本音序列找到對(duì)應(yīng)的語音數(shù)據(jù),合成出該音標(biāo)的語音。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a)進(jìn)一步分為以下步驟(a1)對(duì)訓(xùn)練樣本的音標(biāo)進(jìn)行分解,記錄各個(gè)音標(biāo)分解得到的音素,以及該音素實(shí)際發(fā)音對(duì)應(yīng)的基本音;(a2)對(duì)每種音素,從記錄的與其對(duì)應(yīng)的基本音中選擇一種,在音素和基本音對(duì)應(yīng)表中保存該音素與該基本音的對(duì)應(yīng)關(guān)系;(a3)將所述音素和基本音對(duì)應(yīng)表以及表中基本音對(duì)應(yīng)的語音數(shù)據(jù)保存到所述音標(biāo)到語音轉(zhuǎn)換的裝置中,供實(shí)際轉(zhuǎn)換時(shí)使用。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a1)和(b)將音標(biāo)分解為音素時(shí),先將音標(biāo)劃分為一個(gè)或多個(gè)由音標(biāo)中字符構(gòu)成的基本符號(hào),然后對(duì)每一基本符號(hào),根據(jù)其組成字符在該音標(biāo)中的語音特征添加重音符號(hào)、前接音符號(hào)和后接音符號(hào)中的一種或任意組合,得到該音標(biāo)分解出的各個(gè)音素。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a1)中記錄與音素實(shí)際發(fā)音對(duì)應(yīng)的基本音時(shí),是根據(jù)音素在訓(xùn)練樣本中的實(shí)際發(fā)音情況,確定一個(gè)與其對(duì)應(yīng)的實(shí)際發(fā)音符號(hào)并記錄,該實(shí)際發(fā)音符號(hào)中包括一個(gè)基本發(fā)音符號(hào),或包括一個(gè)基本發(fā)音符號(hào)和一個(gè)重音符號(hào)。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a1)中記錄與音素實(shí)際發(fā)音對(duì)應(yīng)的基本音時(shí),在確定了音素對(duì)應(yīng)的實(shí)際發(fā)音符號(hào)后,還在該符號(hào)后添加音量符號(hào)和/或音速符號(hào),在所述步驟(d)進(jìn)行語音合成時(shí),還根據(jù)所述音量符號(hào)和/或音速符號(hào)對(duì)語音數(shù)據(jù)進(jìn)行調(diào)整。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a1)中對(duì)訓(xùn)練樣本音標(biāo)的分解和記錄是通過人工完成的,或者是程序進(jìn)行分解和記錄后,由人工加以校對(duì)而完成的。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a)和步驟(b)之間還包括以下訓(xùn)練步驟(i)以訓(xùn)練樣本的音標(biāo)為輸入,運(yùn)行所述裝置上的音標(biāo)分解和匹配程序,按照步驟(b)和步驟(c)同樣方式處理,得到各個(gè)音標(biāo)匹配的基本音序列;(ii)將所述裝置匹配得到的基本音序列與手工對(duì)訓(xùn)練樣本分解或經(jīng)手工校對(duì)得到的基本音序列進(jìn)行比較,判斷其準(zhǔn)確率是否達(dá)到要求,如果達(dá)不到要求,執(zhí)行步驟(iii),如果達(dá)到要求,訓(xùn)練成功,執(zhí)行步驟(b),且在步驟(b)中使用安裝了該訓(xùn)練好的音標(biāo)分解和匹配程序的所述音標(biāo)到語音轉(zhuǎn)換裝置對(duì)輸入音標(biāo)進(jìn)行分解;(iii)修改搜索時(shí)對(duì)代價(jià)成本的計(jì)算方法,返回步驟(i)。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(b)中,得到分解出的音素序列后,還在對(duì)應(yīng)于發(fā)音中需要停頓的地方插入靜音符號(hào),再執(zhí)行步驟(c)。
進(jìn)一步地,上述轉(zhuǎn)換方法還可具有以下特點(diǎn)所述步驟(a)中保存基本音對(duì)應(yīng)的語音數(shù)據(jù)時(shí),先對(duì)數(shù)據(jù)進(jìn)行壓縮再保存;所述步驟(d)中找到壓縮的語音數(shù)據(jù)后,先要對(duì)數(shù)據(jù)解壓。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下顯著優(yōu)點(diǎn)1)本發(fā)明利用一個(gè)音素和基本音的對(duì)應(yīng)表,用搜索對(duì)應(yīng)表代替了音標(biāo)分解過程中的復(fù)雜運(yùn)算,大大減少了對(duì)CPU和內(nèi)存資源的占用,特別適用于嵌入式系統(tǒng)。當(dāng)然,同樣可應(yīng)用于PC機(jī)或其它裝置。
2)本發(fā)明分解音標(biāo)時(shí),只是充分利用了音標(biāo)的自身語音規(guī)則,不設(shè)置某一音標(biāo)所特有的規(guī)則,因而不受音標(biāo)類型和語言的限制,可以分解英語的K.K音標(biāo)或者其它音標(biāo),也可以分解其它語言。
3)本發(fā)明由于在分解和匹配過程中,利用了訓(xùn)練樣本的人工分解結(jié)果產(chǎn)生所述對(duì)應(yīng)表,并對(duì)用于語音分解和匹配程序進(jìn)行訓(xùn)練,因而合成的音標(biāo)準(zhǔn)確、使用靈活。
圖1為本發(fā)明實(shí)施例音標(biāo)分解和記錄過程的流程圖。
圖2為本發(fā)明實(shí)施例對(duì)音標(biāo)分解和匹配程序的訓(xùn)練過程的流程圖。
圖3為本發(fā)明實(shí)施例實(shí)際使用中音標(biāo)分解過程的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的介紹,但不作為對(duì)本發(fā)明的限定。
本實(shí)施例是一種音標(biāo)到語音的轉(zhuǎn)換方法,主要用于單詞的發(fā)音,也可以用于短語發(fā)音??梢苑譃橐魳?biāo)分解與匹配方法、語音合成方法。
下面先對(duì)本發(fā)明的兩個(gè)重要術(shù)語進(jìn)行一下定義音素指對(duì)音標(biāo)分解得到的一個(gè)基本單元,用一個(gè)符號(hào)序列表示,該符號(hào)序列總是包括一個(gè)由音標(biāo)中字符構(gòu)成的基本符號(hào),還可以包括若干用于表示語音特征的附加符號(hào)。
音素序列是指一個(gè)單詞或者短語分解得到的一個(gè)或多個(gè)音素的總稱。
基本音指用于語音合成的一個(gè)基本單元,用一個(gè)符號(hào)序列表示,該符號(hào)序列總是包括一個(gè)對(duì)應(yīng)于語音數(shù)據(jù)的實(shí)際發(fā)音符號(hào),還可以包括若干用于表示韻律特征的附加符號(hào)。
基本音序列是指一個(gè)單詞或者短語匹配到的一個(gè)或多個(gè)基本音的總稱。
本發(fā)明中,用一個(gè)基本音來記錄一個(gè)音素的實(shí)際發(fā)音情況。
本實(shí)施例在進(jìn)行實(shí)際的音標(biāo)到語音的轉(zhuǎn)換前,先進(jìn)行對(duì)訓(xùn)練樣本音標(biāo)的分解和記錄過程和對(duì)音標(biāo)分解和匹配程序的訓(xùn)練過程。
對(duì)訓(xùn)練樣本音標(biāo)的分解和記錄過程如圖1所示,是由人工完成的,包括以下步驟步驟110選擇訓(xùn)練樣本,由人工對(duì)訓(xùn)練樣本中單詞或短語的音標(biāo)進(jìn)行劃分,得到一個(gè)或多個(gè)由音標(biāo)中字符構(gòu)成的基本符號(hào);訓(xùn)練樣本可以是單詞或短語,數(shù)量可自選。先以KK音標(biāo)的分解實(shí)例加以說明。
輸入的訓(xùn)練樣本為a_good_deal_ofK.K.音標(biāo)為/6′gUddil6v/手工分解的基本符號(hào)序列為6gUd dil 6 v由于K.K.音標(biāo)在PC機(jī)上顯示時(shí),有些發(fā)音顯示較困難,所以上面使用了一種顯示替代方案用/6′gUddil6v/表示/’gu:ddilv/。本發(fā)明在手工分解時(shí)并不局限于特定的一種將音標(biāo)方式劃分基本符號(hào)的方式。
步驟120,對(duì)每一基本符號(hào),根據(jù)其組成字符在該音標(biāo)中的重音、前接音和后接音情況,附加上代表重音、前接音和后接音的符號(hào),得到該單詞或短詞分解出的各個(gè)音素;對(duì)于重音,用接在基本符號(hào)后周“.”分隔開的符號(hào)表示,“1”表示非詞尾重音,“2”表示非詞尾次重音,“3”表示非詞尾音,“4”表示詞尾重音,“5”表示詞尾次重音,“6”表示詞尾音。
對(duì)于前接音,用接在重音符號(hào)后用“.”分隔開的符號(hào)表示,如用“h”表示p,t,k,h,用“1”表示!,1,用“U”表示o,u,U,用“<”表示其它情況,等等。
對(duì)于后接音,用接在前接音符號(hào)后用“.”分隔開的符號(hào)表示,如用“c”表示o,c,用“a”表示“x,6,3,2,!,0,M,^,a”,用“n”表示n,m,7,用“>”表示其它情況,等等。
由此,上述訓(xùn)練樣本a_good_deal_of分解得到的音素序列為6.3.<.> gUd.1.<.> dil.3.<.a 6.6.1.> v.0.<.>
其中6.6.1.>表示此音素發(fā)音為/6/,為詞尾音,前接音為/1/類,后接音為/>/類。
在別的實(shí)施例中,還可以在基本符號(hào)后加上更多的反映其它語音特征的符號(hào),這樣分解得到的音素可以更細(xì)致地區(qū)分各種不同的情況,提高音標(biāo)到語音轉(zhuǎn)換的準(zhǔn)確性?;蛘?,如果對(duì)性能要求不高,也可以只附加一個(gè)或兩個(gè)符號(hào),甚至不附加符號(hào)。
步驟130,對(duì)分解得到的音素,根據(jù)其在該單詞或短語中的實(shí)際發(fā)音情況,確定一個(gè)與其對(duì)應(yīng)的實(shí)際發(fā)音符號(hào)并記錄;實(shí)際發(fā)音符號(hào)進(jìn)一步由一個(gè)基本發(fā)音符號(hào)加上表示重音和音調(diào)的符號(hào)組成。一個(gè)實(shí)際發(fā)音符號(hào)對(duì)應(yīng)于一個(gè)實(shí)際的語音波形,該波形可以從錄制的訓(xùn)練樣本的發(fā)音中截取出來。
基本發(fā)音符號(hào)為一個(gè)或多個(gè)字符,與音素有些相似,但根據(jù)實(shí)際發(fā)音進(jìn)行了一些變形。
接在基本發(fā)音符號(hào)后用“_”分隔開的是重音符號(hào)“_1”表示頭部或中部非重音;“_2”表示頭部或中部重音;“_3”表示尾部非重音;“_4”表示尾部重音或單音節(jié)詞。
接在重音符號(hào)后用“_”分隔開是音調(diào)符號(hào)如“_1”、“_2”等。該符號(hào)不是必須的。
步驟140,在每個(gè)實(shí)際發(fā)音符號(hào)后增加表示其在該單詞或短語中的音量和音速的符號(hào),構(gòu)成該單詞或短語的各個(gè)基本音;
接在重音或音調(diào)符號(hào)后,用“.”分隔開的是音量符號(hào)“0”表示降低音量,“1”表示正常音量,“2”表示增大音量。
接在音量符號(hào)后用“.”分隔開的音速符號(hào)“0”表示慢速,“1”表示正常速度,“2”表示快速。
由此,上述訓(xùn)練樣本a_good_deal_of可記錄如下輸入的訓(xùn)練樣本為a_good_deal_of分解的基本符號(hào)序列為6 gUd dil 6 v記錄的基本發(fā)音符號(hào)序列為6 gu ii6 16 v記錄的實(shí)際發(fā)音符號(hào)序列為6_1_2 gu_2 ii6_1 l6_3 v_1記錄的基本音序列為6_1_2.1.1 gu2.1.1 ii6_1.1.1 l6_3.0.1 v_1.1.1。
例如,6_1_2.1.1表示的含義是音素為“”,頭部或中部非重音,正常音量,正常速度。
在其它實(shí)施例中,在實(shí)際發(fā)音符號(hào)后可以加上更多用于表示其它發(fā)音特征的符號(hào),或者,在要求不高時(shí),也可以不帶有上述表示韻律特征的音量和音速符號(hào)。
步驟150,對(duì)訓(xùn)練樣本中所有單詞和短詞的音標(biāo),記錄其分解得到的各個(gè)音素與每個(gè)音素對(duì)應(yīng)的基本音,對(duì)每種音素,從記錄的與其對(duì)應(yīng)的基本音中選擇一種建立兩者的對(duì)應(yīng)關(guān)系,并保存在一個(gè)音素和基本音對(duì)應(yīng)表中;選擇時(shí),可以從音素對(duì)應(yīng)的多種基本音中選擇使用次數(shù)最多的一種基本音建立與該音素的對(duì)應(yīng)關(guān)系,但不局限于此。
下面是該對(duì)應(yīng)表局部的一個(gè)示例6.3.<.>6_1_2.1.1gUd.1.<.>gu_2.1.1dil.3.<.aii6_1.1.1
6.6.1.>l6_3.0.1v.0.<.>v_1.1.1左邊的字段是音素,右邊的字段是它對(duì)應(yīng)的基本音。對(duì)應(yīng)表中還可以保存一些靜音符號(hào),如用符號(hào)“-”來代表一段靜音,“-.n”代表n段時(shí)長靜音。
上述訓(xùn)練樣本的個(gè)數(shù)可以根據(jù)需要任意選擇。
下面再舉兩個(gè)實(shí)例,一個(gè)是日文的分解,給出3個(gè)單詞的分解結(jié)果1)單詞図書館音標(biāo)/としよかん/分解得到的音素為/と/+/しょ/+/かん/分解后音素對(duì)應(yīng)的基本音為と_1.1.1 しよ_2.1.1 かん_3.1.12)單詞萬年筆音標(biāo)/まんねんひつ/分解后音素對(duì)應(yīng)的基本音為まん_1.1.1 ねん_2.1.1 ひつ_3.1.13)單詞郵便局音標(biāo)/ゆうびんきよく/分解后音素對(duì)應(yīng)的基本音為ゆう_1.1.1 びん_2.1.1 きよ_3.1.1く_3.1.1另一個(gè)實(shí)例是法語的分解,給出兩個(gè)單詞的分解結(jié)果1)單詞madame音標(biāo)/ma′dam/分解得到的音素為/ma/+/da/+/m/分解后音素對(duì)應(yīng)的基本音為ma_1.1.1 da_2_m.1.1 m_3.1.12)單詞asseyez音標(biāo)/asEje/分解得到的音素為/a/+/sE/+/je/
分解后音素對(duì)應(yīng)的基本音為a_1.1.1 sE_3_a.1.1 je_4_e.1.1分解這兩個(gè)實(shí)例時(shí),同對(duì)英文的分解原則是基本相同的,但可能會(huì)根據(jù)各個(gè)語言的特點(diǎn)對(duì)上述的重音等相關(guān)規(guī)定做一些修改。
在描述對(duì)音標(biāo)分解和匹配程序的訓(xùn)練過程之前,先對(duì)本實(shí)施例的音標(biāo)分解和匹配程序的組成進(jìn)行一下介紹,該程序主要包括音標(biāo)分解子程序和搜索匹配子程序,其中由上述步驟110-步驟150所獲得的音素和基本音對(duì)應(yīng)表以數(shù)據(jù)庫的形式被所述搜索匹配子程序所調(diào)用。
音標(biāo)分解子程序用于將輸入音標(biāo)按不同劃分方式進(jìn)行分解,得到若干個(gè)音素序列。其中將輸入音標(biāo)劃分為基本符號(hào)時(shí)可以為隨機(jī)任意劃分,也可以制訂一些簡單的劃分規(guī)則,例如/6′gUddil6v/可能分解為6 gUd dil6v;6gUd dil6v;6 gUd dil6 v等各種情況,然后在得到的各個(gè)基本音符號(hào)后按步驟120的方式加上附加符號(hào)就得到了若干個(gè)音素序列。
搜索匹配子程序根據(jù)音標(biāo)分解子程序得到的若干音素序列,分別搜索所述音素和基本音對(duì)應(yīng)表以尋找相匹配的基本音序列,將最優(yōu)搜索路徑匹配到的基本音序列作為匹配結(jié)果。該搜索方法可以采用Viterbi搜索算法。
對(duì)音標(biāo)分解和匹配程序的訓(xùn)練過程如圖2所示,包括以下步驟步驟210,輸入訓(xùn)練樣本中單詞或短語的音標(biāo),運(yùn)行音標(biāo)分解子程序,將音標(biāo)按不同劃分方式分解成若干個(gè)音素序列;將音標(biāo)分解為音素序列的步驟與人工分解是相同的,分解出的音素也包括由音標(biāo)中字符組成的基本符號(hào)和表示這些字符在音標(biāo)中重音、前接音和后接音情況的附加符號(hào);步驟220,運(yùn)行搜索匹配子程序,對(duì)每個(gè)音素序列,根據(jù)其包含的音素用Viterbi方法在音素與基本音對(duì)應(yīng)表中進(jìn)行搜索,計(jì)算每種搜索路徑的代價(jià)成本(cost),選擇出其中的最優(yōu)路徑,將該路徑匹配到的基本音序列作為該音標(biāo)的匹配結(jié)果;例如/6′gUddil6v/可能分解為6 gUd dil6v; 6 gUd di l6v; 6 gUd dil6v等各種情況,但是,只有根據(jù)/6/ /gUd/ /dil/ /6/ /v/音素序列進(jìn)行搜索時(shí)代價(jià)成本最大,則將該搜索路徑匹配到的基本音序列作為匹配結(jié)果。
步驟230,將音標(biāo)分解和匹配程序最終匹配到的基本音序列和手工分解得到的基本音序列相比較,判斷其準(zhǔn)確率是否達(dá)到要求,如果達(dá)不到要求,則修改搜索匹配子程序中代價(jià)成本(cost)的計(jì)算方法,返回步驟210再次運(yùn)行修改后的音標(biāo)分解和匹配程序,如果達(dá)到要求,則程序訓(xùn)練成功,結(jié)束。
本實(shí)施例采用的語音合成方法與中國專利CN01130994.6基本相同,也是采用語音波形拼接的合成技術(shù)。不同之處在于,先將對(duì)應(yīng)于基本音的語音波形的數(shù)據(jù)進(jìn)行壓縮后再保存在相應(yīng)語音合成程序的數(shù)據(jù)庫中,可以采用現(xiàn)有的各種語音壓縮算法?;疽魧?duì)應(yīng)的語音波形可以從錄制的訓(xùn)練樣本的語音波形中切割得到,也可以利用已有的語音波形數(shù)據(jù)庫。
將上述人工分解獲得的音素與基本音對(duì)應(yīng)表、訓(xùn)練好的音標(biāo)分解和匹配程序以及語音合成程序、語音數(shù)據(jù)安裝到嵌入式系統(tǒng)或者PC機(jī)中,即構(gòu)成一個(gè)可以完成音標(biāo)到語音轉(zhuǎn)換的裝置,將要轉(zhuǎn)換的音標(biāo)輸入該裝置,即可得到該音標(biāo)的語音。
實(shí)際使用中,將要處理的單詞或短語的音標(biāo)輸入音標(biāo)到語音的轉(zhuǎn)換裝置,如圖3所示,由該轉(zhuǎn)換裝置通過以下步驟實(shí)現(xiàn)轉(zhuǎn)換步驟310接收到輸入的音標(biāo)后,先將其按不同劃分方式分解為若干個(gè)音素序列,這里的具體分解方法已經(jīng)在上文中介紹過,這里不再贅述;步驟320,在各個(gè)音素序列對(duì)應(yīng)于發(fā)音中需要停頓的地方插入靜音符號(hào),以在語音合成時(shí)能夠體現(xiàn)出發(fā)音間的停頓來;步驟330,對(duì)每個(gè)音素序列,根據(jù)其包含的音素到音素和基本音對(duì)應(yīng)表中搜索,計(jì)算每條搜索路徑的cost值以選出一條最佳路徑,以該路徑所匹配到基本音序列作為該音標(biāo)的匹配結(jié)果;步驟340,根據(jù)匹配到的基本音序列,找到各個(gè)基本音所對(duì)應(yīng)的壓縮的語音波形數(shù)據(jù),對(duì)其解壓縮后,重新生成語音波形;步驟350,根據(jù)基本音中反映韻律特征的音量符號(hào)和音速符號(hào)對(duì)相應(yīng)語音波形進(jìn)行調(diào)整,最后將各個(gè)語音波形拼接,合成語音。
應(yīng)該指出的是,如果輸入的是文本,只需要在對(duì)音標(biāo)分解前加入一個(gè)獲取輸入文本的音標(biāo)的步驟,就可以實(shí)現(xiàn)TTS,即文本到語音的轉(zhuǎn)換。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下顯著優(yōu)點(diǎn)1)本發(fā)明利用一個(gè)音素和基本音的對(duì)應(yīng)表,用搜索對(duì)應(yīng)表代替了音標(biāo)分解過程中的復(fù)雜運(yùn)算,大大減少了對(duì)CPU和內(nèi)存資源的占用,特別適用于嵌入式系統(tǒng)。當(dāng)然,同樣可應(yīng)用于PC機(jī)或其它裝置。
2)本發(fā)明分解音標(biāo)時(shí),只是充分利用了音標(biāo)的自身語音規(guī)則,不設(shè)置某一音標(biāo)所特有的規(guī)則,因而不受音標(biāo)類型和語言的限制,可以分解英語的K.K音標(biāo)或者其它音標(biāo),也可以分解其它語言。
3)本發(fā)明由于在分解和匹配過程中,利用了訓(xùn)練樣本的人工分解結(jié)果產(chǎn)生所述對(duì)應(yīng)表,并對(duì)用于語音分解和匹配程序進(jìn)行訓(xùn)練,因而合成的音標(biāo)準(zhǔn)確、使用靈活。
在上述實(shí)施例的基礎(chǔ)上,本發(fā)明還可以有各種變換,例如為了降低人工分解的工作量,在另一實(shí)施例中,可以利用現(xiàn)有程序(如申請(qǐng)?zhí)枮镃N01130994.6的中國專利中的程序)或者專門編制一個(gè)程序,在程序中利用音標(biāo)自身的發(fā)音規(guī)律設(shè)定一些規(guī)則來完成對(duì)訓(xùn)練樣本中音標(biāo)到基本音序列的分解。為了有更好的效果,可以對(duì)程序的分解結(jié)果進(jìn)行手工校對(duì)。不過這里說的程序只是為了得到音素和基本音對(duì)應(yīng)表的一個(gè)輔助工具,并不在實(shí)際的音標(biāo)分解和匹配中使用。
在又一實(shí)施例中,語音合成可以利用參數(shù)(例如共振峰參數(shù)、線性預(yù)測參數(shù),基頻參數(shù)等等)合成的方法,保存基本音對(duì)應(yīng)的參數(shù),需要發(fā)音時(shí),直接調(diào)用相應(yīng)的參數(shù)串聯(lián)合成語音,而不需要從錄制的語音波形中切割出基本音的語音波形。除了以上兩種算法,采用任何其它的語音合成方法也是可以的。
權(quán)利要求
1.一種音標(biāo)到語音的轉(zhuǎn)換方法,包括以下步驟(a)建立一個(gè)音素和基本音的對(duì)應(yīng)表,將該表和表中基本音對(duì)應(yīng)的語音數(shù)據(jù)保存用于音標(biāo)到語音轉(zhuǎn)換的裝置中;(b)所述裝置接收到輸入的要分解的音標(biāo)后,先將其按不同劃分方式分解為若干個(gè)音素序列;(c)對(duì)每個(gè)音素序列,分別根據(jù)其包含的音素到所述對(duì)應(yīng)表中搜索匹配的基本音序列,選擇其中最優(yōu)的一條搜索路徑所匹配到的基本音序列作為所述音標(biāo)的匹配結(jié)果;(d)根據(jù)所述音標(biāo)匹配到的基本音序列找到對(duì)應(yīng)的語音數(shù)據(jù),合成出該音標(biāo)的語音。
2.如權(quán)利要求1所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a)進(jìn)一步分為以下步驟(a1)對(duì)訓(xùn)練樣本的音標(biāo)進(jìn)行分解,記錄各個(gè)音標(biāo)分解得到的音素,以及該音素實(shí)際發(fā)音對(duì)應(yīng)的基本音;(a2)對(duì)每種音素,從記錄的與其對(duì)應(yīng)的基本音中選擇一種,在音素和基本音對(duì)應(yīng)表中保存該音素與該基本音的對(duì)應(yīng)關(guān)系;(a3)將所述音素和基本音對(duì)應(yīng)表以及表中基本音對(duì)應(yīng)的語音數(shù)據(jù)保存到所述音標(biāo)到語音轉(zhuǎn)換的裝置中,供實(shí)際轉(zhuǎn)換時(shí)使用。
3.如權(quán)利要求2所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a1)和(b)將音標(biāo)分解為音素時(shí),先將音標(biāo)劃分為一個(gè)或多個(gè)由音標(biāo)中字符構(gòu)成的基本符號(hào),然后對(duì)每一基本符號(hào),根據(jù)其組成字符在該音標(biāo)中的語音特征添加重音符號(hào)、前接音符號(hào)和后接音符號(hào)中的一種或任意組合,得到該音標(biāo)分解出的各個(gè)音素。
4.如權(quán)利要求2所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a1)中記錄與音素實(shí)際發(fā)音對(duì)應(yīng)的基本音時(shí),是根據(jù)音素在訓(xùn)練樣本中的實(shí)際發(fā)音情況,確定一個(gè)與其對(duì)應(yīng)的實(shí)際發(fā)音符號(hào)并記錄,該實(shí)際發(fā)音符號(hào)中包括一個(gè)基本發(fā)音符號(hào),或包括一個(gè)基本發(fā)音符號(hào)和一個(gè)重音符號(hào)。
5.如權(quán)利要求4所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a1)中記錄與音素實(shí)際發(fā)音對(duì)應(yīng)的基本音時(shí),在確定了音素對(duì)應(yīng)的實(shí)際發(fā)音符號(hào)后,還在該符號(hào)后添加音量符號(hào)和/或音速符號(hào),在所述步驟(d)進(jìn)行語音合成時(shí),還根據(jù)所述音量符號(hào)和/或音速符號(hào)對(duì)語音數(shù)據(jù)進(jìn)行調(diào)整。
6.如權(quán)利要求2所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a1)中對(duì)訓(xùn)練樣本音標(biāo)的分解和記錄是通過人工完成的,或者是程序進(jìn)行分解和記錄后,由人工加以校對(duì)而完成的。
7.如權(quán)利要求2所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a)和步驟(b)之間還包括以下訓(xùn)練步驟(i)以訓(xùn)練樣本的音標(biāo)為輸入,運(yùn)行所述裝置上的音標(biāo)分解和匹配程序,按照步驟(b)和步驟(c)同樣方式處理,得到各個(gè)音標(biāo)匹配的基本音序列;(ii)將所述裝置匹配得到的基本音序列與手工對(duì)訓(xùn)練樣本分解或經(jīng)手工校對(duì)得到的基本音序列進(jìn)行比較,判斷其準(zhǔn)確率是否達(dá)到要求,如果達(dá)不到要求,執(zhí)行步驟(iii),如果達(dá)到要求,訓(xùn)練成功,執(zhí)行步驟(b),且在步驟(b)中使用安裝了該訓(xùn)練好的音標(biāo)分解和匹配程序的所述音標(biāo)到語音轉(zhuǎn)換裝置對(duì)輸入音標(biāo)進(jìn)行分解;(iii)修改搜索時(shí)對(duì)代價(jià)成本的計(jì)算方法,返回步驟(i)。
8.如權(quán)利要求1所述的轉(zhuǎn)換方法,其特征在于,所述步驟(b)中,得到分解出的音素序列后,還在對(duì)應(yīng)于發(fā)音中需要停頓的地方插入靜音符號(hào),再執(zhí)行步驟(c)。
9.如權(quán)利要求2所述的轉(zhuǎn)換方法,其特征在于,所述步驟(a)中保存基本音對(duì)應(yīng)的語音數(shù)據(jù)時(shí),先對(duì)數(shù)據(jù)進(jìn)行壓縮再保存;所述步驟(d)中找到壓縮的語音數(shù)據(jù)后,先要對(duì)數(shù)據(jù)解壓。
全文摘要
一種音標(biāo)到語音的轉(zhuǎn)換方法,先建立一個(gè)音素和基本音的對(duì)應(yīng)表,將該表和表中基本音對(duì)應(yīng)的語音數(shù)據(jù)保存用于音標(biāo)到語音轉(zhuǎn)換的裝置中;所述裝置接收到輸入的要分解的音標(biāo)后,先將其按不同劃分方式分解為若干個(gè)音素序列;對(duì)每個(gè)音素序列,分別根據(jù)其包含的音素到所述對(duì)應(yīng)表中搜索匹配的基本音序列,選擇其中最優(yōu)的一條搜索路徑所匹配到的基本音序列作為所述音標(biāo)的匹配結(jié)果;根據(jù)所述音標(biāo)匹配到的基本音序列找到對(duì)應(yīng)的語音數(shù)據(jù),合成出該音標(biāo)的語音。本發(fā)明方法不受音標(biāo)類型和語言的限制,且占用資源少,適合在嵌入式系統(tǒng)中使用。
文檔編號(hào)G10L13/08GK1979636SQ20051012792
公開日2007年6月13日 申請(qǐng)日期2005年12月7日 優(yōu)先權(quán)日2005年12月7日
發(fā)明者魯弘茂, 溫莉 申請(qǐng)人:凌陽科技股份有限公司, 北京北陽電子技術(shù)有限公司