您可以使用 Text-to-Speech,將字詞和句子轉換成自然人類語音的 base64 編碼音訊資料,接著進行解碼,將這些資料轉換成可播放的音訊檔案,例如 MP3。Text-to-Speech API 接受原始文字或語音合成標記語言 (SSML) 的輸入內容。
本文件說明如何使用 Text-to-Speech,根據文字或 SSML 輸入內容建立音訊檔案。如果您不熟悉語音合成或 SSML 等概念,請參閱「Text-to-Speech 基本概念」。
必須先安裝並初始化 Google Cloud CLI,才能按照這些範例操作。如要瞭解如何設定 gcloud CLI,請參閱「進行 TTS 驗證」。
將文字轉換為合成語音音訊
下列程式碼範例示範如何將字串轉換為音訊資料。
您可以透過各種方式設定語音合成的輸出內容,包括選取獨特的語音或調節輸出內容的音調、音量、語速和取樣率。
通訊協定
如需完整資訊,請參閱 text:synthesize API 端點。
如要根據文字內容合成音訊,請向 text:synthesize 端點發出 HTTP POST 要求。在 POST 要求的主體中,請在 voice 設定區段指定要合成的語音類型,在 input 區段的 text 欄位指定要合成的文字,然後在 audioConfig 區段中指定要建立的音訊類型。
下列程式碼片段會將合成要求傳送至 text:synthesize 端點,並將結果儲存成名為 synthesize-text.txt 的檔案。請將 PROJECT_ID 替換為專案 ID。
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':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt
Text-to-Speech API 會以 base64 編碼資料傳回合成的音訊,包含在 JSON 輸出內容中。synthesize-text.txt 檔案中的 JSON 輸出內容看起來會像以下程式碼片段。
{
"audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
}
如要將 Text-to-Speech API 傳回的結果解碼為 MP3 音訊檔案,請從 synthesize-text.txt 檔案所在的目錄執行下列指令。
cat synthesize-text.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-text-audio.mp3 && \ rm tmp.txt
Go
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Go API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Java API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Node.js API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Python API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面的 C# 設定操作說明完成相關步驟,然後參閱 .NET 適用的 Text-to-Speech 參考文件。
PHP:請按照用戶端程式庫頁面的 PHP 設定操作說明完成相關步驟,然後參閱 PHP 適用的 Text-to-Speech 參考文件。
Ruby:請按照用戶端程式庫頁面的 Ruby 設定操作說明完成相關步驟,然後參閱 Ruby 適用的 Text-to-Speech 參考文件。
將 SSML 轉換為合成語音音訊
在音訊合成要求中使用 SSML,產生的音訊會更類似自然人類語音。具體來說,您可以使用 SSML,以更精細的方式控制音訊輸出在說話時如何表示停頓,或音訊如何唸出日期、時間、首字母縮略字及縮寫。
如要進一步瞭解 Text-to-Speech API 支援的 SSML 元素,請參閱 SSML 參考資料。
通訊協定
如需完整資訊,請參閱 text:synthesize API 端點。
如要根據 SSML 合成音訊,請向 text:synthesize 端點發出 HTTP POST 要求。在 POST 要求的主體中,請在 voice 設定區段指定要合成的語音類型,在 input 區段的 ssml 欄位指定要合成的 SSML,然後在 audioConfig 區段中指定要建立的音訊類型。
下列程式碼片段會將合成要求傳送至 text:synthesize 端點,並將結果儲存成名為 synthesize-ssml.txt 的檔案。請將 PROJECT_ID 替換為專案 ID。
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':{ 'ssml':'<speak>The <say-as interpret-as=\"characters\">SSML</say-as> standard is defined by the <sub alias=\"World Wide Web Consortium\">W3C</sub>.</speak>' }, 'voice':{ 'languageCode':'en-us', 'name':'en-US-Standard-B', 'ssmlGender':'MALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-ssml.txt
Text-to-Speech API 會以 base64 編碼資料傳回合成的音訊,包含在 JSON 輸出內容中。synthesize-ssml.txt 檔案中的 JSON 輸出內容看起來會像以下程式碼片段。
{
"audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
}
如要將 Text-to-Speech API 傳回的結果解碼為 MP3 音訊檔案,請從 synthesize-ssml.txt 檔案所在的目錄執行下列指令。
cat synthesize-ssml.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-ssml-audio.mp3 && \ rm tmp.txt
Go
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Go API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Java API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Node.js API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱 Text-to-Speech Python API 參考文件。
如要進行 Text-to-Speech 驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面的 C# 設定操作說明完成相關步驟,然後參閱 .NET 適用的 Text-to-Speech 參考文件。
PHP:請按照用戶端程式庫頁面的 PHP 設定操作說明完成相關步驟,然後參閱 PHP 適用的 Text-to-Speech 參考文件。
Ruby:請按照用戶端程式庫頁面的 Ruby 設定操作說明完成相關步驟,然後參閱 Ruby 適用的 Text-to-Speech 參考文件。
歡迎試用
如果您不曾使用過 Google Cloud,歡迎建立帳戶,親自體驗 Text-to-Speech 的實際成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
免費試用 Text-to-Speech