專利名稱::漢語(yǔ)詞句發(fā)音合成方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種漢語(yǔ)詞句發(fā)音合成方法,尤其是一種先對(duì)漢語(yǔ)詞句進(jìn)行分割再根據(jù)分割結(jié)果來(lái)合成漢詞句發(fā)音的
技術(shù)領(lǐng)域:
。
背景技術(shù):
:顯示方式以及語(yǔ)音方式是目前電子裝置最普遍的兩種信息表現(xiàn)方式。在人機(jī)互動(dòng)接口中,尤以語(yǔ)音方式傳遞信息較為方便,加上人們對(duì)語(yǔ)言學(xué)習(xí)的需求日亦增加,所以對(duì)語(yǔ)音合成技術(shù)需求也日益迫切。然而,由于傳統(tǒng)的語(yǔ)音輸出方法在句子發(fā)音過程中,都是按字符串的存儲(chǔ)形式發(fā)音,因此自然度較差,尤其是漢語(yǔ)詞句的合成發(fā)音更是明顯。此外,在語(yǔ)音數(shù)據(jù)處理中,也需要數(shù)據(jù)處理人員將語(yǔ)句的發(fā)音按詞組進(jìn)行切分以便于為句子發(fā)音學(xué)習(xí)提供素材。利用上述手工切分詞組的傳統(tǒng)合成發(fā)音方法時(shí),因?yàn)槊總€(gè)漢字的發(fā)音帶有尾音,會(huì)使句子發(fā)音不符合自然發(fā)音原則,應(yīng)該有停頓的時(shí)候無(wú)停頓,應(yīng)該不停頓的時(shí)候又有停頓,造成所合成出的發(fā)音聽起來(lái)像一串長(zhǎng)長(zhǎng)句子,造成使用者感覺枯燥,而降低學(xué)習(xí)興趣。
發(fā)明內(nèi)容本發(fā)明為解決
背景技術(shù):
中存在的上述技術(shù)問題,而提出漢語(yǔ)詞句發(fā)音合成方法。本發(fā)明的技術(shù)解決方案是本發(fā)明為一種漢語(yǔ)詞句發(fā)音合成方法,其特殊之處在于該方法包含下列步驟1)提供具有多個(gè)分詞的分詞詞庫(kù)、虛詞黏詞規(guī)則表及具有多個(gè)單字發(fā)音波形數(shù)據(jù)的發(fā)音數(shù)據(jù)庫(kù);2)掃描漢語(yǔ)詞句取得字詞,并根據(jù)分詞詞庫(kù)對(duì)字詞進(jìn)行分詞匹配;3)根據(jù)虛詞黏詞規(guī)則表對(duì)字詞進(jìn)行虛詞組詞處理;4)根據(jù)分詞匹配結(jié)果及虛詞查詢結(jié)果,決定漢語(yǔ)詞句的停頓點(diǎn);5)從發(fā)音數(shù)據(jù)庫(kù)中取得對(duì)應(yīng)漢語(yǔ)詞句所包含單字的單字發(fā)音波形數(shù)據(jù),并根據(jù)停頓點(diǎn)合成對(duì)應(yīng)的單字發(fā)音波形數(shù)據(jù)。上述步驟2)的具體步驟如下21)依序從漢語(yǔ)詞句中讀取漢字,并將讀取的漢字儲(chǔ)存在緩沖區(qū)中;22)判斷緩沖區(qū)內(nèi)漢字的數(shù)目是否大于1,若否,則進(jìn)行步驟21),若是,則進(jìn)行步驟23)23)根據(jù)分詞詞庫(kù)進(jìn)行分詞匹配,24)判斷匹配是否成功,若匹配成功,則進(jìn)行步驟21),若匹配不成功,則進(jìn)行步驟25))25)在緩沖區(qū)內(nèi)最后一個(gè)漢字及倒數(shù)第2個(gè)漢字之間設(shè)定停頓點(diǎn),將緩沖區(qū)中的第一個(gè)漢字到倒數(shù)第2個(gè)漢字從緩沖區(qū)移除,留下最后一個(gè)漢字繼續(xù)進(jìn)行分詞匹配;26)判斷漢詞句中是否有尚未讀取的漢字,若是,則進(jìn)行步驟21,若否,則進(jìn)行步驟3)。上述步驟3)中進(jìn)行虛詞組詞處理時(shí),搜尋漢語(yǔ)詞句中是否有虛詞,若有,則根據(jù)虛詞黏詞規(guī)則表判斷出與虛詞相黏的字詞。上述步驟3)中還包含對(duì)漢語(yǔ)詞句進(jìn)行歧義詞處理搜尋漢語(yǔ)詞句中是否具有歧義詞,若漢詞句中有歧義詞,則從歧義詞的最后一個(gè)字逆向逐字加字匹配,找到最長(zhǎng)詞的結(jié)束點(diǎn)。本發(fā)明提供的本漢語(yǔ)詞句發(fā)音合成方法,通過提供分詞詞庫(kù)及虛詞黏詞規(guī)則表,分別對(duì)漢語(yǔ)詞句進(jìn)行分詞匹配及虛詞組詞處理,判斷出漢語(yǔ)詞句中的分詞及虛詞,如此可有效地確認(rèn)漢詞句中的停頓點(diǎn)并分割漢語(yǔ)詞句,再根據(jù)停頓點(diǎn)對(duì)漢語(yǔ)詞句中的所有單字的單字發(fā)音波形數(shù)據(jù)進(jìn)行合成。由此可提高漢語(yǔ)詞句的合成發(fā)音的自然度。圖1為本發(fā)明方法步驟流程圖;圖2為本發(fā)明方法進(jìn)行分詞匹配實(shí)施例的步驟流程圖;圖3為本發(fā)明波形范例圖及先前技術(shù)漢字句合成發(fā)音的波形范例圖。具體實(shí)施例方式參見圖l,漢語(yǔ)詞句發(fā)音合成方法從開始展開,包含下列步驟步驟Sll提供具有多個(gè)分詞的分詞詞庫(kù)、虛詞黏詞規(guī)則表及具有多個(gè)單字發(fā)音波形數(shù)據(jù)的發(fā)音數(shù)據(jù)庫(kù)。其中,分詞指有意義的詞匯,例如"今天"、"分解"或"天氣"等等,人們?cè)诎l(fā)音此類詞匯時(shí)會(huì)習(xí)慣縮短尾音,或是說(shuō)完此分詞后會(huì)略作停頓。除了上述分詞之外,人們?cè)诎l(fā)音虛詞時(shí)會(huì)與前后詞相黏發(fā)音,例如"很好"或"最近",虛詞黏詞規(guī)則表便是記錄會(huì)與前后詞相黏發(fā)音的虛詞以及此虛詞的黏詞規(guī)則。虛詞包含副詞或量詞,例如副詞"很"或"最"與后面的詞相黏發(fā)音,而量詞"個(gè)"或"張"則是與前面的詞相黏發(fā)音,也會(huì)與后面的詞相黏發(fā)音,例如"一個(gè)人"。步驟S12掃描漢語(yǔ)詞句取得字詞,并根據(jù)分詞詞庫(kù)對(duì)字詞進(jìn)行分詞匹配。以正向掃描此漢語(yǔ)詞句,而正向?yàn)榇藵h語(yǔ)詞句念讀方向,由左至右或由上至下。以漢語(yǔ)詞句"今天天氣很好"為例,正向掃描逐一取得"今"、"天"、"天"、氣"、"很"及"好"等6個(gè)字。步驟S13根據(jù)虛詞黏詞規(guī)則表對(duì)字詞進(jìn)行虛詞組詞處理。實(shí)施上,搜尋漢詞句中的虛詞,若漢詞句中有虛詞,則根據(jù)虛詞黏詞規(guī)則表判斷出與虛詞相黏的字詞。以漢語(yǔ)詞句"今天天氣很好"為例,"很好"在分詞庫(kù)中可能無(wú)法匹配成功,但在虛詞黏詞規(guī)則表中記錄"很"是虛詞,則可把"很"與之后的字"好"組成分詞。步驟S14根據(jù)分詞匹配結(jié)果及虛詞查詢結(jié)果,以決定漢語(yǔ)詞句的停頓點(diǎn)。停頓點(diǎn)用來(lái)區(qū)隔出多個(gè)組成漢詞句的分隔詞,以漢語(yǔ)詞句"今天天氣很好"為例,其組成的分隔詞應(yīng)為"今天"、"天氣"及"很好"。此外,除了分詞匹配與虛詞組詞處理外,步驟14前,視需要可進(jìn)行歧義詞處理,用來(lái)搜尋漢詞句中是否具有歧義詞,來(lái)確認(rèn)漢語(yǔ)詞句停頓點(diǎn)的正確性,歧義詞指前后可能有多種組合的詞,例如字尾是"子"的詞。若漢詞句中有歧義詞,則從歧義詞的最后一個(gè)字逆向逐字加字匹配,找到最長(zhǎng)詞的結(jié)束點(diǎn)。逆向?yàn)榕c漢語(yǔ)詞句念讀方向相反的方向。以漢語(yǔ)詞句"分解成分子"為例,若無(wú)進(jìn)行歧義詞處理,則漢語(yǔ)詞句可能會(huì)被分隔成"分解""成分""子",但是此分隔結(jié)果與原義不符。由于漢詞句具有"子",而字尾為"子"的分詞為歧義詞,因此逆向逐字加字匹配后,可匹配出最長(zhǎng)詞"分子",因此漢語(yǔ)詞句會(huì)分隔成"分解""成""分子",符合漢語(yǔ)詞句的原意。步驟S15從發(fā)音數(shù)據(jù)庫(kù)中取得對(duì)應(yīng)漢詞句所包含的單字的單字發(fā)音波形數(shù)據(jù),并根據(jù)停頓點(diǎn)合成單字發(fā)音波形數(shù)據(jù)。例如,進(jìn)行合成時(shí),可縮短分隔詞單字的尾音。此外,進(jìn)行合成時(shí),可在停頓點(diǎn)插入停頓信號(hào)。合成發(fā)音后,結(jié)束此流程。參見圖2,實(shí)施例包含下列步驟步驟21依序從漢語(yǔ)詞句中讀取漢字,并將讀取的漢字儲(chǔ)存在緩沖區(qū)中。當(dāng)步驟21重復(fù)進(jìn)行時(shí),依序取得"今"一"天"一"天"一氣"一"很"一"好"等漢字。步驟22判斷緩沖區(qū)內(nèi)漢字的數(shù)目是否大于1,若否,則進(jìn)行步驟21。若緩沖區(qū)內(nèi)漢字的數(shù)目大于1,則步驟23根據(jù)分詞詞庫(kù)進(jìn)行分詞匹配,并在步驟24判斷匹配是否成功。若匹配成功,則進(jìn)行步驟21。因?yàn)橛幸饬x的分詞的字?jǐn)?shù)并不固定,且部分分詞包含其它有意義的分詞,所以需要再利用下一個(gè)漢字作進(jìn)一步確認(rèn)。若匹配不成功,則步驟25在緩沖區(qū)內(nèi)最后一個(gè)漢字及倒數(shù)第2個(gè)漢字之間設(shè)定停頓點(diǎn),將緩沖區(qū)中的第一個(gè)漢字到倒數(shù)第2個(gè)漢字從緩沖區(qū)移除,留下最后一個(gè)漢字繼續(xù)進(jìn)行分詞匹配。在步驟26判斷漢詞句中是否有尚未讀取的漢字,若是,則進(jìn)行步驟21,若否,則結(jié)束此流程。完成分詞匹配后,可進(jìn)行虛詞組詞處理,先搜尋漢詞句中是否有虛詞,若有,則根據(jù)虛詞黏詞規(guī)則表判斷出與此虛詞相黏的字詞。以漢語(yǔ)詞句"今天天氣很好"為例,經(jīng)過分詞匹配后,所產(chǎn)生的分隔詞可能為"今天"、"天氣"、"很"及"好"。因?yàn)?很好"此類的詞匯為數(shù)眾多,例如"很久"、"很大"、"很小"、"很遠(yuǎn)"、"很近"、"很爛"、"很淺"、"很深"等等,所以分詞庫(kù)可能不會(huì)儲(chǔ)存"很好"分詞,導(dǎo)致匹配失敗。但是將"很好"分開發(fā)音又會(huì)造成發(fā)音不自然。因此,搜尋"很"這個(gè)虛詞后,根據(jù)虛詞黏詞規(guī)則表,將"很"與其后的"好"組成分詞,由此可提高漢語(yǔ)詞句合成發(fā)音的自然度。下列表一列出漢語(yǔ)詞句"今天天氣很好"進(jìn)行分詞匹配及虛詞組詞處理的過程。<table>tableseeoriginaldocumentpage5</column></row><table>比較結(jié)果很好"很"為副詞,與后面形容詞"好"黏在一起天氣很好確定"天氣"與"很好"分割,"氣"和"很"之間設(shè)定停頓點(diǎn)進(jìn)行完分詞匹配及虛詞組詞處理后,視需要可再進(jìn)行歧義詞處理,搜尋漢語(yǔ)詞句中是否具有歧義詞,用來(lái)確認(rèn)漢語(yǔ)詞句的停頓點(diǎn)的正確性。在上述說(shuō)明中,將分詞匹配、虛詞組詞處理及歧義詞處理分開說(shuō)明,但并不限制分詞匹配、虛詞組詞處理及歧義詞處理必須分開進(jìn)行,將分詞匹配、虛詞組詞處理或歧義詞處理混合進(jìn)行也在本發(fā)明保護(hù)范圍內(nèi)。而分詞匹配的方式不限于上述實(shí)施例,凡可將漢語(yǔ)字句中有意義的詞匯以匹配方式進(jìn)行判斷,皆在本發(fā)明保護(hù)范圍內(nèi)。參見圖3,圖中以漢語(yǔ)詞句"今天天氣很好"作為范例,而為了方便說(shuō)明本發(fā)明與先前技術(shù)之間的差異,所以六個(gè)單字皆用相同的單字發(fā)音波形數(shù)據(jù)。波形圖(a)繪示先前技術(shù)的漢字句合成波形圖,可看出先前技術(shù)將6個(gè)單字的單字發(fā)音波形數(shù)據(jù)依序連接,所合成出的發(fā)音十分不自然。再觀看波形圖(b),由于已經(jīng)判斷出第2個(gè)單字與第3個(gè)單字之間,第4個(gè)單字與第5個(gè)單字之間設(shè)有停頓點(diǎn),即第1個(gè)單字與第2個(gè)單字、第3個(gè)單字與第4個(gè)單字、第5個(gè)單字與第6個(gè)單字分別組成分詞,因此可縮短第1個(gè)單字、第3個(gè)單字及第5個(gè)單字的尾音,如此可提高漢字句合成發(fā)音的自然度,更接近真人發(fā)音的感覺。權(quán)利要求一種漢語(yǔ)詞句發(fā)音合成方法,其特征在于該方法包含下列步驟1)提供具有多個(gè)分詞的分詞詞庫(kù)、虛詞黏詞規(guī)則表及具有多個(gè)單字發(fā)音波形數(shù)據(jù)的發(fā)音數(shù)據(jù)庫(kù);2)掃描漢語(yǔ)詞句取得字詞,并根據(jù)分詞詞庫(kù)對(duì)字詞進(jìn)行分詞匹配;3)根據(jù)虛詞黏詞規(guī)則表對(duì)字詞進(jìn)行虛詞組詞處理;4)根據(jù)分詞匹配結(jié)果及虛詞查詢結(jié)果,決定漢語(yǔ)詞句的停頓點(diǎn);5)從發(fā)音數(shù)據(jù)庫(kù)中取得對(duì)應(yīng)漢語(yǔ)詞句所包含單字的單字發(fā)音波形數(shù)據(jù),并根據(jù)停頓點(diǎn)合成對(duì)應(yīng)的單字發(fā)音波形數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的漢語(yǔ)詞句發(fā)音合成方法,其特征在于所述步驟2)的具體步驟如下21)依序從漢語(yǔ)詞句中讀取漢字,并將讀取的漢字儲(chǔ)存在緩沖區(qū)中;22)判斷緩沖區(qū)內(nèi)漢字的數(shù)目是否大于1,若否,則進(jìn)行步驟21),若是,則進(jìn)行步驟23)23)根據(jù)分詞詞庫(kù)進(jìn)行分詞匹配,24)判斷匹配是否成功,若匹配成功,則進(jìn)行步驟21),若匹配不成功,則進(jìn)行步驟25))25)在緩沖區(qū)內(nèi)最后一個(gè)漢字及倒數(shù)第2個(gè)漢字之間設(shè)定停頓點(diǎn),將緩沖區(qū)中的第一個(gè)漢字到倒數(shù)第2個(gè)漢字從緩沖區(qū)移除,留下最后一個(gè)漢字繼續(xù)進(jìn)行分詞匹配;26)判斷漢詞句中是否有尚未讀取的漢字,若是,則進(jìn)行步驟21,若否,則進(jìn)行步驟3)。3.根據(jù)權(quán)利要求1或2所述的漢語(yǔ)詞句發(fā)音合成方法,其特征在于所述步驟3)中進(jìn)行虛詞組詞處理時(shí),搜尋漢語(yǔ)詞句中是否有虛詞,若有,則根據(jù)虛詞黏詞規(guī)則表判斷出與虛詞相黏的字詞。4.根據(jù)權(quán)利要求3所述的漢語(yǔ)詞句發(fā)音合成方法,其特征在于所述步驟3)中還包含對(duì)漢語(yǔ)詞句進(jìn)行歧義詞處理搜尋漢語(yǔ)詞句中是否具有歧義詞,若漢詞句中有歧義詞,則從歧義詞的最后一個(gè)字逆向逐字加字匹配,找到最長(zhǎng)詞的結(jié)束點(diǎn)。全文摘要本發(fā)明涉及一種漢語(yǔ)詞句發(fā)音合成方法,通過提供分詞詞庫(kù)及虛詞黏詞規(guī)則表,分別對(duì)漢語(yǔ)詞句進(jìn)行分詞匹配及虛詞組詞處理,判斷出漢語(yǔ)詞句中的分詞及虛詞,如此可有效地確認(rèn)漢詞句中的停頓點(diǎn)并分割漢語(yǔ)詞句,再根據(jù)停頓點(diǎn)對(duì)漢語(yǔ)詞句中的所有單字的單字發(fā)音波形數(shù)據(jù)進(jìn)行合成。由此可提高漢語(yǔ)詞句的合成發(fā)音的自然度。文檔編號(hào)G06F17/22GK101694771SQ20091002439公開日2010年4月14日申請(qǐng)日期2009年10月20日優(yōu)先權(quán)日2009年10月20日發(fā)明者王秦秦,陳淮琰申請(qǐng)人:無(wú)敵科技(西安)有限公司;