Ajax 板


LINE

這篇算是 Justin/twitch 平台應用的記錄 內容可能很雜亂 ︿︿") 一般人對於 Text to Speech 文字轉換語音的印象 最接近的一次應該就屬 Google 翻譯 http://ppt.cc/qOq4 不過有感於瀏覽器日漸肥大 實際應用時還可能會干擾到原本的使用習慣 因此開始考慮 擺脫瀏覽器的使用方式 以下為使用 LimeChat2 + JavaScript 的心得 真要說起來 CreateObject("SAPI.SpVoice").Speak"I love you" 是一切的濫觴 對這串沒啥印象? 那麼這個標題 「你知道嗎? 電腦其實也有性別」「檢查你的電腦是男生還是女生」 不曉得有沒有看過類似的網路流言 XD 原文是採用 VBScript 呼叫 Speech Application Programming Interface(SAPI) 延伸閱讀:http://webptt.com/m.aspx?n=bbs/digitalk/M.1381463983.A.7D4.html 可惜 SAPI 方面沒有找到合用的臺灣腔語音引擎 因此改往 Microsoft Speech Platform(MSSP)作研究 剛開始其實很不在意語音參數 想說 MSSP 能用就好 只是看到 spcbght.bat:http://denspe.blog84.fc2.com/blog-entry-29.html 不信邪為什麼人家可以辦得到 參考之下才發現大有玄機 //SAPI5のVoiceオブジェクトには //「速度」「音量」のプロパティはあるが「音程」はない。 //音程を指定する場合は<pitch absmiddle="音量値"> //を使いXMLモードで再生する必要がある。 //その場合は第二引数に「SPF_IS_XML(0x08)」を指定してXMLを強制する。 這註解乍看之下是 SAPI 沒想到意外的也能作用於 MSSP VoiceObj.Speak('<pitch absmiddle="'+VoicePitch+'">'+SpeakText+"</pitch>" ,0x00|0x08); 搭配最後一行的註解 讓我更是在意 Speak method 葫蘆裡到底賣的是什麼藥?! 回頭去找 http://msdn.microsoft.com/library/ee125647.aspx 終於讓我發現了 SpeechVoiceSpeakFlags(SVSF) http://msdn.microsoft.com/library/ee125223.aspx 也才注意到原來預設的同步 是指朗讀的時候會將執行中的程式鎖住(防止下一步操作 改為 Asynchronous Speaking 非同步語音 整個就非常合乎使用了 而 SAPI text-to-speech (TTS) extensible markup language (XML) 標籤 也改為 MSSP 的 Speech Synthesis Markup Language (SSML) http://msdn.microsoft.com/library/hh378377.aspx 這真的是要暴力解才會這樣子用 因為 MSSP 與 SSML 完全沒提到這件事情 最後就產生了這個大雜燴的 JavaScript 將 SAPI.SpVoice 改為 Speech.SpVoice 呼叫 MSSP 但實際上 Object 仍保有 SAPI 性質 所以 Speak method 讓 MSSP 支援 SVSF 達成 非同步 與支援 SSML 可自訂語音參數 https://drive.google.com/file/d/0B3hkFOHrzSukU3hvVE12OElld3M 過程中 TRY & ERROR 真的是充滿各種撞牆期 尤其是有些參數都不會回報錯誤訊息 1)想說有看到 http://www.w3.org/TR/speech-synthesis11/ 結果用 <speak version="1.1"> 就是毫無反應 2)又譬如 SSML prosody Element 搭配 parseInt 時好時壞 後來抓 log 出來看才發現 正數 都…(默 少了個 + 就是死給你看 ╮(﹀_﹀")╭ 不過後續修補也加入了 isNaN 算是難得的防呆 3)常用到 String.match 或 String.replace 這功能 這次好好的重新回顧了 RegExp http://rubular.com 4)平常用 != '' 習慣了 有時候太順手會打出 == '' 這種鬼東西(被巴頭 訂正十次 == null 請養成好習慣 目前還有打算改善的地方有兩個 1)一個是讀取文件的方式 由於 . 跟 : 都會影響 array LimeChat2 能夠使用的函式又有限 目前還沒想到怎麼迴避 o(><;)o 2)另外就是注音符號了 語音的字典檔沒辦法念 是有考慮過這種方法 http://winscript.jp/azurea/4 不過實作上 應該用關鍵字替代更實際 XD 最後附上釋出前發現的網站 http://tdc.putonghuaonline.com/tool/index.php 之前瀏覽了一下 似乎也不少這種 TTS App 有興趣的話才玩玩看吧 -- 舊文,挖坑前置作業 Gesmic7http://webptt.com/m.aspx?n=bbs/Live/M.1381476020.A.B9E.html 附上各種參考資料 http://www.neko.ne.jp/~freewing/software/speech_app_11/ http://mahoro-ba.net/e1591.html http://www36.atwiki.jp/jikkyosha_ust/pages/80.html#id_32933629 接下來才看有沒有動力轉移到 Perl 或 python 這樣子就連 hexchat 都有機會用用看了 _(:3J∠)_ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 49.158.75.98







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP