專利名稱:一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法
技術(shù)領(lǐng)域:
本發(fā)明涉及導(dǎo)航系統(tǒng)領(lǐng)域,特別涉及了一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法。
背景技術(shù):
隨著城市道路網(wǎng)絡(luò)的日益復(fù)雜和車輛日益增多,汽車導(dǎo)航系統(tǒng)已經(jīng)得到了廣泛的應(yīng)用。使得駕駛員在復(fù)雜的路況下依然能夠自由駕駛。汽車導(dǎo)航系統(tǒng)屬于典型的嵌入式設(shè)備,受到體積,成本,功耗和應(yīng)用場(chǎng)合的限制。隨著嵌入式技術(shù)的發(fā)展,汽車導(dǎo)航系統(tǒng)朝著智能化,人性化發(fā)展。實(shí)時(shí)語(yǔ)音引導(dǎo)功能已經(jīng)廣泛的應(yīng)用在導(dǎo)航終端。用戶可以實(shí)時(shí)獲得引導(dǎo)語(yǔ)音提示,在駕駛過(guò)程中不用查看地圖的條件下就能方便的獲得更多的地圖提示信息。語(yǔ)音引導(dǎo)使人機(jī)交互更加人性化,同時(shí)也保證了駕駛的安全性。傳統(tǒng)汽車導(dǎo)航系統(tǒng)語(yǔ)音提示采用內(nèi)置TTS發(fā)聲引擎,通過(guò)計(jì)算機(jī)合成出接近自然聲音的語(yǔ)音信號(hào)輸出到發(fā)聲設(shè)備。其結(jié)構(gòu)框架如下:TTS語(yǔ)音合成過(guò)程包括在文本分析處理模塊進(jìn)行文本解析,詞語(yǔ)切分,語(yǔ)法分析,語(yǔ)意分析和韻律處理。接下來(lái)交給語(yǔ)音合成模塊進(jìn)行語(yǔ)音合成,最終輸出PCM編碼語(yǔ)音信號(hào),傳入Codec芯片進(jìn)行D/A轉(zhuǎn)換,通過(guò)音響功放電路推動(dòng)揚(yáng)聲器發(fā)出接近自然聲音的語(yǔ)
曰 傳統(tǒng)的TTS發(fā)音雖然應(yīng)用廣泛,但是發(fā)音前需要合成,會(huì)導(dǎo)致響應(yīng)速度變慢。為了提高響應(yīng)速度,目前在導(dǎo)航系統(tǒng)采取了一些優(yōu)化措施,包括預(yù)讀取字符串和語(yǔ)音庫(kù),聲音緩存等方式,提高了語(yǔ)音實(shí)時(shí)播報(bào)的速度。但是由于語(yǔ)音庫(kù)是內(nèi)置在系統(tǒng)中,用戶并不能直接對(duì)其進(jìn)行定制。當(dāng)用戶不滿意播報(bào)效果時(shí),不能單獨(dú)針對(duì)某一條提示語(yǔ)音進(jìn)行修改?,F(xiàn)有導(dǎo)航系統(tǒng)會(huì)在引導(dǎo)過(guò)程中,給用戶比較詳盡道路信息的語(yǔ)音提示,導(dǎo)航系統(tǒng)通過(guò)TTS引擎合成語(yǔ)音,語(yǔ)音庫(kù)由于在導(dǎo)航出廠前內(nèi)置在系統(tǒng)中,用戶并不能自由替換提示語(yǔ)音。
發(fā)明內(nèi)容
本發(fā)明的目的是為了能把用戶預(yù)先自己錄制好的語(yǔ)音加入到汽車導(dǎo)航的語(yǔ)音提示系統(tǒng)內(nèi),使在導(dǎo)航系統(tǒng)能夠選擇使用自定義的語(yǔ)音來(lái)進(jìn)行提示,特提供了一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法。本發(fā)明提供了一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法,其特征在于:所述的導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法硬件涉及定位模塊、算路模塊、引導(dǎo)模塊、TTS語(yǔ)音合成模塊、解碼模塊;定位模塊,在汽車行駛過(guò)程中,通過(guò)硬件的GPS模塊獲取到位置信息;其中通信多數(shù)采用NMEA-0183協(xié)議,報(bào)文中包含定位所需要的坐標(biāo)信息;模塊需要先解析報(bào)文,獲取位置坐標(biāo)后再經(jīng)過(guò)地圖匹配算法進(jìn)行軌跡糾偏,最后獲取較精確的位置坐標(biāo);
算路模塊,提供了為從出發(fā)地到目的地為車輛尋找到駕駛時(shí)間最短的路線的功能;電子地圖保存了矢量化的道路網(wǎng)絡(luò)信息;道路網(wǎng)可以看作權(quán)值為正值的有向圖;算路?;赿ijkstra算法在有向圖中搜索最短路徑;一個(gè)有權(quán)重的有向圖G,以及G中的一個(gè)來(lái)源頂點(diǎn)S中,以V表示G中所有頂點(diǎn)的集合;Dijkstra算法可以在一個(gè)圖中,找到從一個(gè)頂點(diǎn)s到任何其他頂點(diǎn)的最短路徑;引導(dǎo)模塊,在駕駛過(guò)程中用戶可能會(huì)遇到限速,轉(zhuǎn)彎等情況;引導(dǎo)模塊就是在就算好的路線上,對(duì)用戶進(jìn)行提示;在地圖數(shù)據(jù)中,保存了引導(dǎo)信息;當(dāng)車輛行駛到帶有引導(dǎo)信息的坐標(biāo)時(shí),會(huì)觸發(fā)語(yǔ)音提示;引導(dǎo)模塊把引導(dǎo)信息轉(zhuǎn)換成提示字符串;比如“前方300米左轉(zhuǎn),然后直行”;TTS語(yǔ)音合成模塊,把引導(dǎo)模塊生成的提示字符串通過(guò)語(yǔ)言學(xué)處理,韻律處理和聲學(xué)處理合成為語(yǔ)音信號(hào);解碼模塊,作為數(shù)字信號(hào)的提示語(yǔ)音,以PCM編碼形式進(jìn)行儲(chǔ)存;解碼模塊就是把語(yǔ)音編碼進(jìn)行處理,然后進(jìn)行D/A轉(zhuǎn)換,推動(dòng)音響設(shè)備進(jìn)行發(fā)音;用戶自定義語(yǔ)音的實(shí)現(xiàn)基礎(chǔ):TTS語(yǔ)音合成引擎合成語(yǔ)音過(guò)程比較復(fù)雜,從而導(dǎo)致消耗過(guò)多的CPU資源;另外合成語(yǔ)音需要較長(zhǎng)時(shí)間,會(huì)導(dǎo)致語(yǔ)音播報(bào)延時(shí);通過(guò)優(yōu)化,采用語(yǔ)音緩存的方式來(lái)解決這一問(wèn)題;在進(jìn)行引導(dǎo)過(guò)程中,90%的提示語(yǔ)音是經(jīng)常出現(xiàn)的,這樣可以把語(yǔ)音緩存起來(lái);語(yǔ)音緩存文件是由字符串索引和語(yǔ)音數(shù)據(jù)組成;引導(dǎo)模塊生成緩存中有的字符串時(shí),可以直接播放緩存中已有的聲音;這樣避免了采用TTS語(yǔ)音合成模塊生成語(yǔ)音的復(fù)雜過(guò)程,加快了語(yǔ)音實(shí)時(shí)播報(bào)的速度,也降低了系統(tǒng)資源的損耗;其流程如下圖2所示;在語(yǔ)音合成之前,系統(tǒng)會(huì)用引導(dǎo)信息的字符串和緩存中的每一條字符串索引進(jìn)行比較,如果一致,命中緩存,則直接播放緩存中的語(yǔ)音,如果不一致,則利用TTS語(yǔ)音合成系統(tǒng)先合成語(yǔ)音,再進(jìn)行播放;用戶自定義提示語(yǔ)音是通過(guò)PC端軟件對(duì)語(yǔ)音緩存文件的編輯來(lái)完成的;最后生成自定義語(yǔ)音文件;自定義語(yǔ)音文件與語(yǔ)音緩存文件具有相同結(jié)構(gòu),都是由索引和數(shù)據(jù)部分構(gòu)成;索引部分存儲(chǔ)了語(yǔ)音提示的字符串信息,而數(shù)據(jù)部分保存了 PCM編碼的語(yǔ)音信息;索引文件采用了鏈?zhǔn)浇Y(jié)果進(jìn)行存儲(chǔ);PC端軟件首先讀取語(yǔ)音緩存文件,把緩存文件的索引字符串全部載入到內(nèi)存;按條目顯示在PC端軟件上,用戶可以選擇所要自定義的字符串,對(duì)字符串進(jìn)行朗讀錄音;PC端軟件調(diào)用底層硬件驅(qū)動(dòng)程序,通過(guò)Codec芯片對(duì)模擬語(yǔ)音信號(hào)以32kbps進(jìn)行采樣,最后把字符串索引和新錄制的語(yǔ)音寫入到用戶自定義語(yǔ)音文件中;如圖3所示,在語(yǔ)音緩存文件中,每個(gè)提示信息字符串都對(duì)應(yīng)著唯一的語(yǔ)音緩存數(shù)據(jù);通過(guò)提示信息字符串就可以找到對(duì)應(yīng)的聲音;緩存存儲(chǔ)文件采用鏈?zhǔn)浇Y(jié)構(gòu),加載到內(nèi)存時(shí)構(gòu)造緩存索引鏈表,鏈表中每個(gè)節(jié)點(diǎn)包含索引字符串和語(yǔ)音數(shù)據(jù)在緩存文件中的偏移量信息;在每次比較字符串時(shí),遍歷整個(gè)鏈表;如果命中,通過(guò)偏移量找到對(duì)應(yīng)的語(yǔ)音數(shù)據(jù);生成的新的自定義語(yǔ)音文件中,也存在相同的對(duì)應(yīng)關(guān)系;錄制過(guò)的提示信息字符串語(yǔ)音數(shù)據(jù)部分被填充為用戶自己的語(yǔ)音,而沒(méi)有錄制的部分被設(shè)置為空數(shù)據(jù);自定義語(yǔ)音文件添加到導(dǎo)航設(shè)備,到導(dǎo)航系統(tǒng)啟用自定義語(yǔ)音功能時(shí),在播放語(yǔ)音時(shí)系統(tǒng)優(yōu)先在自定義語(yǔ)音文件中查找提示信息字符串;查找到字符串后,當(dāng)提示信息字符串對(duì)應(yīng)的錄制語(yǔ)音存在時(shí),直接播放用戶錄制的語(yǔ)音數(shù)據(jù);當(dāng)沒(méi)有查找到提示信息字符串時(shí),再到系統(tǒng)自帶語(yǔ)音文件中查找;圖4是處理用戶自定義語(yǔ)音文件的流程圖:聲音錄制工具會(huì)顯不緩存中所有播報(bào)內(nèi)容列表,用戶選中播報(bào)列表中的一條后,進(jìn)行朗讀;聲音錄制工具把語(yǔ)音采集保存到數(shù)據(jù)文件中,導(dǎo)入到導(dǎo)航系統(tǒng)內(nèi)作為自定義語(yǔ)音庫(kù)。由于嵌入式設(shè)備硬件資源有限,TTS語(yǔ)音合成過(guò)程復(fù)雜,運(yùn)算量大,往往會(huì)在要求實(shí)時(shí)性比較高的場(chǎng)合表現(xiàn)的并不是很理想,同時(shí)比較占用系統(tǒng)內(nèi)存和CPU資源,同時(shí)生成語(yǔ)音用戶并不能定制。本發(fā)明由于采用用戶預(yù)先定義好的語(yǔ)音,可以省去語(yǔ)音合成的過(guò)程,節(jié)省了硬件資源,同時(shí)提高語(yǔ)音播報(bào)的響應(yīng)速度。用戶也可以根據(jù)自己的偏好去錄制或選擇提示語(yǔ)音,增加了用戶的定制性。本發(fā)明的優(yōu)點(diǎn):由于漢語(yǔ)的復(fù)雜性,TTS引擎在一下條件合成語(yǔ)音可能會(huì)出現(xiàn)錯(cuò)誤。字符串中包括多音字;同一個(gè)字在不同詞語(yǔ)中有不同的讀音。字符串中包含變音漢字;在特定語(yǔ)境下,有些漢字會(huì)出現(xiàn)音調(diào)變化。字符串中包含特殊含義符號(hào),比如日期分隔符。字符串中包含計(jì)量單位字符。本發(fā)明所述的導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法,采用語(yǔ)音自定義功能,可以糾正TTS引擎合成語(yǔ)音的錯(cuò)誤,也增加了導(dǎo)航系統(tǒng)的定制能力,加快了提示語(yǔ)音的實(shí)時(shí)性能。
下面結(jié)合附圖及實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明:圖1為TTS發(fā)聲引擎結(jié)構(gòu)框架示意圖;圖2為緩存語(yǔ)音播放流程圖;圖3為自定義語(yǔ)音文件結(jié)構(gòu)圖;圖4為自定義語(yǔ)音播放流程圖;圖5為自定義語(yǔ)音功能框架圖。
具體實(shí)施例方式實(shí)施例1本實(shí)施例提供了一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法,其特征在于:所述的導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法硬件涉及定位模塊、算路模塊、引導(dǎo)模塊、TTS語(yǔ)音合成模塊、解碼模塊;定位模塊,在汽車行駛過(guò)程中,通過(guò)硬件的GPS模塊獲取到位置信息;其中通信多數(shù)采用NMEA-0183協(xié)議,報(bào)文中包含定位所需要的坐標(biāo)信息;模塊需要先解析報(bào)文,獲取位置坐標(biāo)后再經(jīng)過(guò)地圖匹配算法進(jìn)行軌跡糾偏,最后獲取較精確的位置坐標(biāo);算路模塊,提供了為從出發(fā)地到目的地為車輛尋找到駕駛時(shí)間最短的路線的功能;電子地圖保存了矢量化的道路網(wǎng)絡(luò)信息;道路網(wǎng)可以看作權(quán)值為正值的有向圖;算路模基于dijkstra算法在有向圖中搜索最短路徑;一個(gè)有權(quán)重的有向圖G,以及G中的一個(gè)來(lái)源頂點(diǎn)S中,以V表示G中所有頂點(diǎn)的集合;Dijkstra算法可以在一個(gè)圖中,找到從一個(gè)頂點(diǎn)s到任何其他頂點(diǎn)的最短路徑;
引導(dǎo)模塊,在駕駛過(guò)程中用戶可能會(huì)遇到限速,轉(zhuǎn)彎等情況;引導(dǎo)模塊就是在就算好的路線上,對(duì)用戶進(jìn)行提示;在地圖數(shù)據(jù)中,保存了引導(dǎo)信息;當(dāng)車輛行駛到帶有引導(dǎo)信息的坐標(biāo)時(shí),會(huì)觸發(fā)語(yǔ)音提示;引導(dǎo)模塊把引導(dǎo)信息轉(zhuǎn)換成提示字符串;比如“前方300米左轉(zhuǎn),然后直行”;TTS語(yǔ)音合成模塊,把引導(dǎo)模塊生成的提示字符串通過(guò)語(yǔ)言學(xué)處理,韻律處理和聲學(xué)處理合成為語(yǔ)音信號(hào);解碼模塊,作為數(shù)字信號(hào)的提示語(yǔ)音,以PCM編碼形式進(jìn)行儲(chǔ)存;解碼模塊就是把語(yǔ)音編碼進(jìn)行處理,然后進(jìn)行D/A轉(zhuǎn)換,推動(dòng)音響設(shè)備進(jìn)行發(fā)音;用戶自定義語(yǔ)音的實(shí)現(xiàn)基礎(chǔ):TTS語(yǔ)音合成引擎合成語(yǔ)音過(guò)程比較復(fù)雜,從而導(dǎo)致消耗過(guò)多的CPU資源;另外合成語(yǔ)音需要較長(zhǎng)時(shí)間,會(huì)導(dǎo)致語(yǔ)音播報(bào)延時(shí);通過(guò)優(yōu)化,采用語(yǔ)音緩存的方式來(lái)解決這一問(wèn)題;在進(jìn)行引導(dǎo)過(guò)程中,90%的提示語(yǔ)音是經(jīng)常出現(xiàn)的,這樣可以把語(yǔ)音緩存起來(lái);語(yǔ)音緩存文件是由字符串索引和語(yǔ)音數(shù)據(jù)組成;引導(dǎo)模塊生成緩存中有的字符串時(shí),可以直接播放緩存中已有的聲音;這樣避免了采用TTS語(yǔ)音合成模塊生成語(yǔ)音的復(fù)雜過(guò)程,加快了語(yǔ)音實(shí)時(shí)播報(bào)的速度,也降低了系統(tǒng)資源的損耗;其流程如下圖2所示;在語(yǔ)音合成之前,系統(tǒng)會(huì)用引導(dǎo)信息的字符串和緩存中的每一條字符串索引進(jìn)行比較,如果一致,命中緩存,則直接播放緩存中的語(yǔ)音,如果不一致,則利用TTS語(yǔ)音合成系統(tǒng)先合成語(yǔ)音,再進(jìn)行播放;用戶自定義提示語(yǔ)音是通過(guò)PC端軟件對(duì)語(yǔ)音緩存文件的編輯來(lái)完成的;最后生成自定義語(yǔ)音文件;自定義語(yǔ)音文件與語(yǔ)音緩存文件具有相同結(jié)構(gòu),都是由索引和數(shù)據(jù)部分構(gòu)成;索引部分存儲(chǔ)了語(yǔ)音提示的字符串信息,而數(shù)據(jù)部分保存了 PCM編碼的語(yǔ)音信息;索引文件采用了鏈?zhǔn)浇Y(jié)果進(jìn)行存儲(chǔ);PC端軟件首先讀取語(yǔ)音緩存文件,把緩存文件的索引字符串全部載入到內(nèi)存;按條目顯示在PC端軟件上,用戶可以選擇所要自定義的字符串,對(duì)字符串進(jìn)行朗讀錄音;PC端軟件調(diào)用底層硬件驅(qū)動(dòng)程序,通過(guò)Codec芯片對(duì)模擬語(yǔ)音信號(hào)以32kbps進(jìn)行采樣,最后把字符串索引和新錄制的語(yǔ)音寫入到用戶自定義語(yǔ)音文件中;如圖3所示,在語(yǔ)音緩存文件中,每個(gè)提示信息字符串都對(duì)應(yīng)著唯一的語(yǔ)音緩存數(shù)據(jù);通過(guò)提示信息字符串就可以找到對(duì)應(yīng)的聲音;緩存存儲(chǔ)文件采用鏈?zhǔn)浇Y(jié)構(gòu),加載到內(nèi)存時(shí)構(gòu)造緩存索引鏈表,鏈表中每個(gè)節(jié)點(diǎn)包含索引字符串和語(yǔ)音數(shù)據(jù)在緩存文件中的偏移量信息;在每次比較字符串時(shí),遍歷整個(gè)鏈表;如果命中,通過(guò)偏移量找到對(duì)應(yīng)的語(yǔ)音數(shù)據(jù);生成的新的自定義語(yǔ)音文件中,也存在相同的對(duì)應(yīng)關(guān)系;錄制過(guò)的提示信息字符串語(yǔ)音數(shù)據(jù)部分被填充為用戶自己的語(yǔ)音,而沒(méi)有錄制的部分被設(shè)置為空數(shù)據(jù);自定義語(yǔ)音文件添加到導(dǎo)航設(shè)備,到導(dǎo)航系統(tǒng)啟用自定義語(yǔ)音功能時(shí),在播放語(yǔ)音時(shí)系統(tǒng)優(yōu)先在自定義語(yǔ)音文件中查找提示信息字符串;查找到字符串后,當(dāng)提示信息字符串對(duì)應(yīng)的錄制語(yǔ)音存在時(shí),直接播放用戶錄制的語(yǔ)音數(shù)據(jù);當(dāng)沒(méi)有查找到提示信息字符串時(shí),再到系統(tǒng)自帶語(yǔ)音文件中查找;圖4是處理用戶自定義語(yǔ)音文件的流程圖:
聲音錄制工具會(huì)顯不緩存中所有播報(bào)內(nèi)容列表,用戶選中播報(bào)列表中的一條后,進(jìn)行朗讀;聲音錄制工具把語(yǔ)音采集保存到數(shù)據(jù)文件中,導(dǎo)入到導(dǎo)航系統(tǒng)內(nèi)作為自定義語(yǔ)音庫(kù)。由于嵌入式設(shè)備硬件資源有限,TTS語(yǔ)音合成過(guò)程復(fù)雜,運(yùn)算量大,往往會(huì)在要求實(shí)時(shí)性比較高的場(chǎng)合表現(xiàn)的并不是很理想,同時(shí)比較占用系統(tǒng)內(nèi)存和CPU資源,同時(shí)生成語(yǔ)音用戶并不能定制。本發(fā)明由于采用用戶預(yù)先定義好的語(yǔ)音,可以省去語(yǔ)音合成的過(guò)程,節(jié)省了硬件資源,同時(shí)提高語(yǔ)音播報(bào)的響應(yīng)速度。用戶也可以根據(jù)自己的偏好去錄制或選擇提示語(yǔ)音,增加了用戶的定制性。
權(quán)利要求
1.一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法,其特征在于:所述的導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法硬件涉及定位模塊、算路模塊、引導(dǎo)模塊、TTS語(yǔ)音合成模塊、解碼模塊; 定位模塊,在汽車行駛過(guò)程中,通過(guò)硬件的GPS模塊獲取到位置信息;其中通信多數(shù)采用NMEA-0183協(xié)議,報(bào)文中包含定位所需要的坐標(biāo)信息;模塊需要先解析報(bào)文,獲取位置坐標(biāo)后再經(jīng)過(guò)地圖匹配算法進(jìn)行軌跡糾偏,最后獲取較精確的位置坐標(biāo); 算路模塊,提供了為從出發(fā)地到目的地為車輛尋找到駕駛時(shí)間最短的路線的功能;電子地圖保存了矢量化的道路網(wǎng)絡(luò)信息;道路網(wǎng)可以看作權(quán)值為正值的有向圖;算路?;赿ijkstra算法在 有向圖中搜索最短路徑;一個(gè)有權(quán)重的有向圖G,以及G中的一個(gè)來(lái)源頂點(diǎn)S中,以V表示G中所有頂點(diǎn)的集合;Dijkstra算法可以在一個(gè)圖中,找到從一個(gè)頂點(diǎn)s到任何其他頂點(diǎn)的最短路徑; 引導(dǎo)模塊,在駕駛過(guò)程中用戶可能會(huì)遇到限速,轉(zhuǎn)彎等情況;引導(dǎo)模塊就是在就算好的路線上,對(duì)用戶進(jìn)行提示;在地圖數(shù)據(jù)中,保存了引導(dǎo)信息;當(dāng)車輛行駛到帶有引導(dǎo)信息的坐標(biāo)時(shí),會(huì)觸發(fā)語(yǔ)音提示;引導(dǎo)模塊把引導(dǎo)信息轉(zhuǎn)換成提示字符串;比如“前方300米左轉(zhuǎn),然后直行”; TTS語(yǔ)音合成模塊,把引導(dǎo)模塊生成的提示字符串通過(guò)語(yǔ)言學(xué)處理,韻律處理和聲學(xué)處理合成為語(yǔ)音信號(hào); 解碼模塊,作為數(shù)字信號(hào)的提示語(yǔ)音,以PCM編碼形式進(jìn)行儲(chǔ)存;解碼模塊就是把語(yǔ)音編碼進(jìn)行處理,然后進(jìn)行D/A轉(zhuǎn)換,推動(dòng)音響設(shè)備進(jìn)行發(fā)音; 用戶自定義語(yǔ)音的實(shí)現(xiàn)基礎(chǔ): TTS語(yǔ)音合成引擎合成語(yǔ)音過(guò)程比較復(fù)雜,從而導(dǎo)致消耗過(guò)多的CPU資源;另外合成語(yǔ)音需要較長(zhǎng)時(shí)間,會(huì)導(dǎo)致語(yǔ)音播報(bào)延時(shí);通過(guò)優(yōu)化,采用語(yǔ)音緩存的方式來(lái)解決這一問(wèn)題;在進(jìn)行引導(dǎo)過(guò)程中,90%的提示語(yǔ)音是經(jīng)常出現(xiàn)的,這樣可以把語(yǔ)音緩存起來(lái);語(yǔ)音緩存文件是由字符串索引和語(yǔ)音數(shù)據(jù)組成; 引導(dǎo)模塊生成緩存中有的字符串時(shí),可以直接播放緩存中已有的聲音;這樣避免了采用TTS語(yǔ)音合成模塊生成語(yǔ)音的復(fù)雜過(guò)程,加快了語(yǔ)音實(shí)時(shí)播報(bào)的速度,也降低了系統(tǒng)資源的損耗; 在語(yǔ)音合成之前,系統(tǒng)會(huì)用引導(dǎo)信息的字符串和緩存中的每一條字符串索引進(jìn)行比較,如果一致,命中緩存,則直接播放緩存中的語(yǔ)音,如果不一致,則利用TTS語(yǔ)音合成系統(tǒng)先合成語(yǔ)音,再進(jìn)行播放; 用戶自定義提示語(yǔ)音是通過(guò)PC端軟件對(duì)語(yǔ)音緩存文件的編輯來(lái)完成的;最后生成自定義語(yǔ)音文件;自定義語(yǔ)音文件與語(yǔ)音緩存文件具有相同結(jié)構(gòu),都是由索引和數(shù)據(jù)部分構(gòu)成;索引部分存儲(chǔ)了語(yǔ)音提示的字符串信息,而數(shù)據(jù)部分保存了 PCM編碼的語(yǔ)音信息;索引文件采用了鏈?zhǔn)浇Y(jié)果進(jìn)行存儲(chǔ); PC端軟件首先讀取語(yǔ)音緩存文件,把緩存文件的索引字符串全部載入到內(nèi)存;按條目顯示在PC端軟件上,用戶可以選擇所要自定義的字符串,對(duì)字符串進(jìn)行朗讀錄音;PC端軟件調(diào)用底層硬件驅(qū)動(dòng)程序,通過(guò)Codec芯片對(duì)模擬語(yǔ)音信號(hào)以32kbps進(jìn)行采樣,最后把字符串索引和新錄制的語(yǔ)音寫入到用戶自定義語(yǔ)音文件中; 生成的新的自定義語(yǔ)音文件中,也存在相同的對(duì)應(yīng)關(guān)系;錄制過(guò)的提示信息字符串語(yǔ)音數(shù)據(jù)部分被填充為用戶自己的語(yǔ)音,而沒(méi)有錄制的部分被設(shè)置為空數(shù)據(jù);自定義語(yǔ)音文件添加到導(dǎo)航設(shè)備,到導(dǎo)航系統(tǒng)啟用自定義語(yǔ)音功能時(shí),在播放語(yǔ)音時(shí)系統(tǒng)優(yōu)先在自定義語(yǔ)音文件中查找提示信息字符串;查找到字符串后,當(dāng)提示信息字符串對(duì)應(yīng)的錄制語(yǔ)音存在時(shí),直接播放用戶錄制的語(yǔ)音數(shù)據(jù);當(dāng)沒(méi)有查找到提示信息字符串時(shí),再到系統(tǒng)自帶語(yǔ)音文件中查找; 聲音錄制工具會(huì)顯示緩存中所有播報(bào)內(nèi)容列表,用戶選中播報(bào)列表中的一條后,進(jìn)行朗讀;聲音錄制工具把語(yǔ)音采集保存到數(shù)據(jù)文件中,導(dǎo)入到導(dǎo)航系統(tǒng)內(nèi)作為自定義語(yǔ)音庫(kù)。
2.按照權(quán)利 要求1所述的導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法,其特征在于:所述的語(yǔ)音緩存文件中,每個(gè)提示信息字符串都對(duì)應(yīng)著唯一的語(yǔ)音緩存數(shù)據(jù);通過(guò)提示信息字符串就可以找到對(duì)應(yīng)的聲音;緩存存儲(chǔ)文件采用鏈?zhǔn)浇Y(jié)構(gòu),加載到內(nèi)存時(shí)構(gòu)造緩存索引鏈表,鏈表中每個(gè)節(jié)點(diǎn)包含索引字符串和語(yǔ)音數(shù)據(jù)在緩存文件中的偏移量信息;在每次比較字符串時(shí),遍歷整個(gè)鏈表;如果命中,通過(guò)偏移量找到對(duì)應(yīng)的語(yǔ)音數(shù)據(jù)。
全文摘要
一種導(dǎo)航系統(tǒng)用戶語(yǔ)音自定義方法,硬件涉及定位模塊、算路模塊、引導(dǎo)模塊、TTS語(yǔ)音合成模塊、解碼模塊;引導(dǎo)模塊生成緩存中有的字符串時(shí),可以直接播放緩存中已有的聲音;在語(yǔ)音合成之前,系統(tǒng)會(huì)用引導(dǎo)信息的字符串和緩存中的每一條字符串索引進(jìn)行比較,再進(jìn)行播放;自定義語(yǔ)音文件與語(yǔ)音緩存文件具有相同結(jié)構(gòu),都是由索引和數(shù)據(jù)部分構(gòu)成;PC端軟件首先讀取語(yǔ)音緩存文件,自定義語(yǔ)音文件添加到導(dǎo)航設(shè)備,導(dǎo)航系統(tǒng)啟用自定義語(yǔ)音功能;聲音錄制工具把語(yǔ)音采集保存到數(shù)據(jù)文件中,導(dǎo)入到導(dǎo)航系統(tǒng)內(nèi)作為自定義語(yǔ)音庫(kù)。本發(fā)明優(yōu)點(diǎn)采用語(yǔ)音自定義功能,糾正TTS引擎合成語(yǔ)音的錯(cuò)誤,增加導(dǎo)航系統(tǒng)的定制能力,加快了提示語(yǔ)音的實(shí)時(shí)性能。
文檔編號(hào)G01C21/36GK103093753SQ20121055452
公開日2013年5月8日 申請(qǐng)日期2012年12月14日 優(yōu)先權(quán)日2012年12月14日
發(fā)明者徐小光, 張璐, 遲麗麗, 謝振江, 徐良, 李峰 申請(qǐng)人:沈陽(yáng)美行科技有限公司