written by 門特魯 (zatd39)
【2021/06/13 更新】
Streamlabs 目前已全面改為使用自己的 proxy api,
語速以及斷句機制大改,近日會寫另一篇文章說明。
【2021/06/08 更新】
目前 translate.google.com API 已改回原本的舊版聲音 Basic,
之後會不會又變成新版聲音還是未知數。
這幾天在圖奇看台的各位,
相信大家都有發現到一個問題:
以下針對最近發現的更動作說明。
Streamlabs alert box 使用的是舊的 google translate 聆聽使用的TTS API,
(http://translate.google.com/translate_tts)
(目前 PC chrome google translate 的聆聽已改用其他方式)
近日發現,在不是使用 chrome 的情況剛剛發現他也會破功(透過 proxy/OBS with alert box)
使用該 API 會隨機傳回兩種語音,絕大部分語系都有此情形,
一種為大家原先聽到的舊版聲音(Basic);
一種為近日會出現的新版聲音(WaveNet)。
兩種的差異可以到以下的網址試聽
https://cloud.google.com/text-to-speech/
舊版聲音使用 普通话 (中国大陆) - Basic - cmn-CN-Wavenet-D
新版聲音使用 普通话 (中国大陆) - WaveNet - cmn-CN-Wavenet-D
PS. 在 Basic 選擇其他 Voice Name 可以聽到之前對話包出現過的聲音 Tgm3AMON
然而 Streamlabs alert box 撥放音訊檔案使用的套件,
似乎無法撥放新版聲音(WaveNet),進而造成通知有可能變成啞包。
先前使用 chrome 直接開啟 alert box 測試通知,
為因為 CORS (Cross-Origin Resource Sharing 跨域資源存取)問題,
瀏覽器無法直接用 ajax 拿到音檔,進而導致念不出來。
針對此點,推斷 Streamlabs 架了一個 proxy api,
在判斷為 chrome 時改走此 API,讓它也可以唸出來,
(https://Streamlabs.com/google-proxy)
遺憾的是,似乎該 proxy 也無法處理新版聲音(WaveNet),
有時成功會聽到舊版聲音(Basic),
有時會直接噴回 500 error。
以上方法均要等到其中一方去做修改,以下為用戶目前可以嘗試的方式:
希望 Streamlabs 能夠盡快解決這個 issue,
還給我們觀眾友善的健全丟包環境,讓我們的實況主不會挨餓。