Microsoft Cognitive Services (4) - 使用Speech API讓你的電腦說話
讓你的電腦說話早已經不是新鮮事了,早期WP7.x的時代,我們就寫過程式碼讓手機說話,適當的採用語音輸出,對於用戶來說也是個不錯的互動體驗。
透過Cognitive Services中的Speech API讓電腦說話,用起來也相當簡單,它可以直接在雲端為你產生你指定的語音,並且將語音檔案binary傳回用戶端。
整體來說,使用該API的方式可參考底下:
Bing Text To Speech API
同樣的,使用時你會用到一組Key,這個Key與先前我們做語音辨識的時候使用的Key相同。呼叫 API前,我們需要先透過這組Key取得一個token (底下是postman呼叫畫面):
取得Token時,請用POST呼叫底下URL :https://oxford-speech.cloudapp.net/token/issueToken
傳入的body是 : grant_type=client_credentials&client_id=<Your subscription key>&client_secret=<Your subscription key
>
&scope=https://speech.platform.bing.com
其中的 Your subscription key 是我們前面說到的 key。
取得後的token應該是類似上圖中一長串的文數字。
接著,請組出底下這樣的XML,這組XML是用來告知Speech API我們要取得什麼語音:
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="zh-TW">
<voice name="Microsoft Server Speech Text to Speech Voice (zh-TW, Yating, Apollo)">
哈囉,今天天氣不錯啊
</voice>
</speak>
這組XML是以body的方式傳入http post的呼叫,其URL是:
https://speech.platform.bing.com/synthesize
留意XML中的內容,voice name可讓我們指定語音的語言和類型,可用的內容可以參考底下這裡得知:
https://www.microsoft.com/cognitive-services/en-us/Speech-api/documentation/API-Reference-REST/BingVoiceOutput
你也可以透過底下這邊的工具來組這串XML:
https://www.microsoft.com/cognitive-services/en-us/speech-api
別忘記,呼叫上述http post時必須傳入底下的headers:
Content-Type : application/ssml+xml
X-Microsoft-OutputFormat : raw-8khz-8bit-mono-mulaw
Authorization : Bearer <剛才取得一長串token>
例如(底下是postman呼叫畫面):
也不是很複雜,透過這樣的方式,就能夠取得指定文字的音訊(.wav)檔案囉。
上面是透過測試工具post man來呼叫,如果要透過C#程式碼呼叫,則可參考底下連結:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6e7f64e4-052c-4753-8128-43b94045064a/mvp-sample-code-with-voice-output-rest-api-in-c?forum=mlapi
留言
改用 https://github.com/Microsoft/Cognitive-Speech-TTS
貼上 Key 即可執行。
不知是否可以更新?