Cloud Text-to-Speech 基本資訊

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 合成語音,請參閱建立語音的音訊檔案