至於是一次load進來聲音檔或是須要時再抓進來,沒有一定誰好,這就要靠系統分析
我觀查了裡面的每個檔案內容,其中有一些檔是一堆街道名稱,而且每一段街名都有一定長度,所以我猜測應該
是到了某一條街時依街名檔中的指標,指到聲音檔中的指標位置,將那段長度的路名資料播報出來,所以那個路
名檔和聲音檔應該是對應的,至於要不要一次load進來?如果一次load進來,在ram中搜尋當然是比較快,但是聲
音檔因為包含了全省的地名,所以太佔記憶體會造成系統delay,如果不一次load進來,每播報一次路名就會開關聲
音檔一次,會造成播報時delay,所以要如何決定,可能要在分析時做測試了
其實我個人倒是有一個想法,只是未經實驗,就當做一個思考方向,大家討論一下:
其實就中文字來講常用字才五千多字,但台灣的路名何止五千條,且每條路名最少三個字,如果每條路都要存成聲音
,那聲音檔自然會很大,每個字都有不同的內碼,甚至很多字都是同音字,所以歸納起來真正用到的音並不多,所以聲
音檔扣掉重覆的音,少說只剩1∕10而以,甚至更小,要載入記憶體就不是問題了,到時要播報路名時再依每個字
的內碼去聲音檔table中去尋找那個字讀出來就可以了
以上僅是個人的想法,說錯了不要打我
但自從研究路易通TTS的 okmain.wav 之後,才發現原來他是將所有的發音組合錄好,然後再用指標去指定發音片段(檔案的內容就像這樣:之 直 只 至,屋 無 五 勿 …)
難怪路易通的TTS比較好聽有音調囉!因為他真的是「真人發音的TTS」,而不是合成的TTS。
這樣子會很佔空間嗎?不一定喔…算算中文字的發音組合也不過幾百個吧,合部錄在一起也才產生一個不到2MB的wave檔案,如果以後發展成 mp3 等壓縮檔就更小了。
歡迎參觀口木看盤室 http://rightgun.blogspot.com
TTS 當一個人開車的時候, 真的很重要.
我有好幾次被前方路口請右轉的指令搞混, 轉進小巷子...
那個時候都有點緊急, 沒辦法觀看螢幕.
如果有語音告知 '前方 xxx 路xx巷 請右轉' 會很有幫助

如果把聲掉拿掉, 國語只有 408 音. 就算加上輕聲,
最多也只有 408x5 種變化.
只要把國字 to 音調 table , 與一些像是連續兩個 3 聲
讀的時候要轉成 3 聲 + 2 聲 之類的規則加入.
應該有機會讓 TTS 更自然一點.
懶一點的, 直接把路名該怎麼唸, 也建在 database 理就好了.
就不用造一個大 table 來查了.
期待將來的 TTS 能做的更棒

這個討論串, 越來越有深度了.

----------------------------------
(^________^)y 地球真美麗
內文搜尋

X