Text-to-Speech 可讓開發人員建立自然的合成人類語音,做為可播放的音訊。在符合 Google Cloud Platform《服務條款》及所有適用法律規定的情況下,您可以使用 Text-to-Speech 建立音訊資料檔案,增強應用程式或影片、音訊等媒體的效能。
Text-to-Speech 會將文字或語音合成標記語言 (SSML) 輸入轉換成音訊資料,例如 MP3 或 LINEAR16 (WAV 檔案使用的編碼)。
本文是使用 Text-to-Speech 的基本概念指南。在深入瞭解 API 之前,請先參閱快速入門導覽課程。
基本範例
文字轉語音功能非常適合向使用者播放人類語音音訊的應用程式。它可讓您將任意字串、字詞和句子轉換成講述相同內容的人聲。
想像您有一個語音助理應用程式,以可播放的音訊檔案,向使用者提供自然的語言回饋。您的應用程式可以採取動作,然後向使用者提供人類語音回饋。
例如,應用程式想要回報它已在使用者的日曆中成功新增一個活動。應用程式會建構一個回應字串,向使用者回報作業成功,例如「我已在您的日曆中新增活動」。
使用文字轉語音功能,您可以將該回應字串轉換為實際的人類語音,然後播放給使用者,如下方範例所示。
範例 1:Text-to-Speech 生成的音訊檔案
如要建立類似範例 1 的音訊檔案,請將要求傳送至 Text-to-Speech,如下列程式碼片段所示。
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "x-goog-user-project: <var>PROJECT_ID</var>" -H "Content-Type: application/json; charset=utf-8" --data "{
'input':{
'text':'I\'ve added the event to your calendar.'
},
'voice':{
'languageCode':'en-gb',
'name':'en-GB-Standard-A',
'ssmlGender':'FEMALE'
},
'audioConfig':{
'audioEncoding':'MP3'
}
}" "https://texttospeech.googleapis.com/v1/text:synthesize"
語音合成
將文字輸入內容轉換為音訊資料的過程稱為「合成」,而合成的輸出內容則稱為「合成語音」。Text-to-Speech 接受兩種輸入內容:原始文字或採用 SSML 格式的資料 (詳見下文)。如要建立新的音訊檔案,請呼叫 API 的 synthesize
端點。
語音合成程序會以 base64 編碼字串格式產生原始音訊資料。您必須先將 base64 編碼字串解碼成音訊檔案,應用程式才能播放此檔案。除此之外,大多數平台和作業系統都有工具,可以將 base64 文字解碼成可播放的媒體檔案。
如要進一步瞭解合成語音,請參閱快速入門導覽課程或建立語音的音訊檔案頁面。
語音
Text-to-Speech 會建立自然的人類語音原始音訊資料。 也就是說,生成聽起來像是有人說話的音訊。將合成要求傳送至 Text-to-Speech 時,您必須指定「說出」字詞的語音。
Text-to-Speech 提供多種自訂聲音供您使用。語音會隨著語言、性別和腔調 (針對某些語言) 而有所區別。舉例來說,您可以建立模仿英國腔女聲的音訊,如上方的範例 1 所示。你也可以將同一段文字轉換為不同聲音,例如帶有澳洲口音的男性英文使用者。
範例 2:使用 en-AU 揚聲器生成的音訊檔案
若要查看完整的可用語音清單,請參閱支援的語音。
WaveNet 語音
除了其他傳統合成語音,Text-to-Speech 也提供以 WaveNet 生成的優質語音。使用者認為 Wavenet 產生的語音比其他合成語音更溫暖、更人性化。
WaveNet 語音的主要差異在於用來產生語音的「WaveNet 模型」。WaveNet 模型使用實際人類說話的原始音訊範例進行訓練。因此,這些模型產生的合成語音會有更像人類說話的強調語氣,在音節、音素和字詞表達上也有音調變化。
比較下列兩個合成語音範例。
範例 3:使用標準語音生成的音訊檔案
範例 4. 使用 WaveNet 語音生成的音訊檔案
如要進一步瞭解 WaveNet 生成語音的優點,請參閱「支援的語音」。
其他音訊輸出設定
除了語音外,您還可以為語音合成建立的音訊資料輸出設定其他面向。文字轉語音支援設定說話速率、音調、音量和取樣率 (赫茲)。
詳情請參閱 AudioConfig 參考資料。
語音合成標記語言 (SSML) 支援
您可以透過語音合成標記語言 (SSML) 標記文字,提升 Text-to-Speech 產生的合成語音品質。透過 SSML,您可以在 Text-to-Speech 建立的音訊資料中插入停頓、縮寫發音或其他額外詳細資料。Text-to-Speech 支援部分可用的 SSML 元素。
舉例來說,您可以提供 SSML 輸入內容給 Text-to-Speech,將序數標示為序數,確保合成語音正確發音。
範例 5:從純文字輸入內容生成的音訊檔案
範例 6. 根據 SSML 輸入內容生成的音訊檔案
如要進一步瞭解如何從 SSML 合成語音,請參閱建立語音的音訊檔案