2010年3月4日 星期四

試作TTS (Text-To-Speech) for Flash


今天有朋友分享一個Flash的Text-To-Speech服務,網址在這
http://www.flashrealtime.com/real-text-to-speech-for-your-flash-apps/



這讓我突然想起來,之前因為專案的需求,曾經找過類似的資料,當時由於忙別的東西,所以就停了下來沒把這TTS寫出來。
其實這種TTS的服務有一個遠在天邊近在眼前,那就是Google。

Google並沒有真的「公開」的提供TTS的api給大家用,但是它卻有一個服務是有TTS功能的,而且TTS因為是聲音檔的關係,所以並不需要crossdomain policy就可以播放(當然,如果你要把它丟進mixer裡就是另一回事了)。因此這個服務即使Google沒有置放crossdomain.xml,也可以「不要太明目張膽」的使用。(如果要商業上使用請小心啊... 最好不要亂用...)
喔對,這個服務就是「Google翻譯」。

不過不管是上面那個FlashRealtime的TTS或是Google翻譯TTS,都.不.支.援.中.文!!

但我還是寫了一下powered by Google的TTS。

swf在這裡

整個程式十分簡單,就是直接new一個Sound類別去load一串網址而已:
http://translate.google.com.tw/translate_tts?tl=en&q=whatever you want to speek

就結束了。

因為之前有寫好了mp3切割及串接的類別檔,想說既然是可以直接用Sound類別讀進來,那應該就是mp3格式了吧?
於是順便的Google丟出來的東西丟到我的類別檔裡,但是結果卻發現它不是正確的mp3格式!?
這個問題目前還是無解,挺怪。

另外一個奇怪的問題,在本機寫這個TTS的時候,我送出request一直收到IOError,但是一擺到瀏覽器裡去看就ok!?
我猜Google應該是有做了什麼手腳限定一定要用瀏覽器才給資料吧?

總之就是這樣。

1 則留言:

  1. 這很奇怪

    我在用html + js + swf player去做一個在線讀ip的功能

    寫好了在FF上測試是ok的,但一拿到IE & chrome上卻又不行,swf load不到 G.T的音訊

    起初以為是可能忽略了link的特殊字元之類,又或flash存取權限之類問題,但替換了別的連結,3個browser都能跑到...

    還在折藤中 X_X

    回覆刪除