建立長篇音訊
本文件將逐步說明如何合成長篇音訊。長篇音訊合成功能會以非同步的方式合成輸入內容,最高可達 100 萬位元組。如要進一步瞭解 Text-to-Speech 的基本概念,請參閱「Text-to-Speech 基本概念」。
事前準備
您必須先完成下列動作,才能向 Text-to-Speech API 傳送要求。詳情請參閱「事前準備」頁面。
- 為 Google Cloud 專案啟用 Text-to-Speech。
- 確認已啟用 Text-to-Speech 的計費功能。
- 確認您在輸出 Google Cloud bucket 中具備下列 Identity and Access Management (IAM) 角色。
- Storage 物件建立者
- Storage 物件檢視者
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
使用指令列根據文字內容合成長篇音訊
如要將長篇文字內容轉換為音訊,請向 https://texttospeech.googleapis.com/v1beta1/projects/{$project_number}/locations/global:synthesizeLongAudio 端點發出 HTTP POST 要求,並在 POST 指令的主體中指定下列欄位。
• voice:要合成的語音類型。
• input.text:要合成的文字。
• audioConfig:要建立的音訊類型。
• output_gcs_uri:格式為「gs://bucket_name/file_name.wav」的 Google Cloud 輸出路徑。
• parent:格式為「projects/{YOUR_PROJECT_NUMBER}/locations/{YOUR_PROJECT_LOCATION}」的上層元素。
輸入內容最多可包含 1 MB 的字元,確切上限會因輸入內容而異。
在用於執行合成作業的專案中,建立 Google Cloud Storage bucket。請確認用於執行合成作業的服務帳戶具備輸出 Google Cloud bucket 的讀取和寫入權限。
在指令列執行 REST 要求,使用 Text-to-Speech 根據文字內容合成音訊。這項指令會使用
gcloud auth application-default print-access-token指令,擷取要求的授權權杖。HTTP 方法和網址:
POST https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global:synthesizeLongAudio
JSON 要求內文:
{ "parent": "projects/12345/locations/global", "audio_config":{ "audio_encoding":"LINEAR16" }, "input":{ "text":"hello" }, "voice":{ "language_code":"en-us", "name":"en-us-Standard-A" }, "output_gcs_uri": "gs://bucket_name/file_name.wav" }如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "23456", "metadata": { "@type": "type.googleapis.com/google.cloud.texttospeech.v1beta1.SynthesizeLongAudioMetadata", "progressPercentage": 0, "startTime": "2022-12-20T00:46:56.296191037Z", "lastUpdateTime": "2022-12-20T00:46:56.296191037Z" }, "done": false }REST 指令的 JSON 輸出內容包含
name欄位中的長時間作業名稱。在指令列執行 REST 要求,查詢長時間執行的作業狀態。請確認執行 GET 作業的服務帳戶與用於合成的服務帳戶屬於同一個專案。
HTTP 方法和網址:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations/23456
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/12345/locations/global/operations/23456", "metadata": { "@type": "type.googleapis.com/google.cloud.texttospeech.v1beta1.SynthesizeLongAudioMetadata", "progressPercentage": 100 }, "done": true }如要查詢特定專案中執行的所有作業清單,請執行 REST 要求。
請確認執行 LIST 作業的服務帳戶與用於合成的服務帳戶屬於同一個專案。
HTTP 方法和網址:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "operations": [ { "name": "12345", "done": false }, { "name": "23456", "done": false } ], "nextPageToken": "" }長時間執行的作業順利完成後,請根據
output_gcs_uri欄位中的值,透過指定的 bucket URI 尋找輸出音訊檔案。如果作業未順利完成,請使用 GET REST 指令查詢並修正錯誤,然後再次發出 RPC。
使用用戶端程式庫根據文字內容合成長篇音訊
如要合成長篇音訊,請按照下列操作說明操作。
安裝用戶端程式庫
Python
安裝程式庫前,請確認您已設定適當的 Python 開發環境。
pip install --upgrade google-cloud-texttospeech
建立音訊資料
您可以使用 Text-to-Speech 建立合成人類語音的長篇音訊檔案。請使用下列程式碼,在 Google Cloud bucket 中建立長篇音訊檔案。
Python
執行範例前,請確認已設定適當的 Python 開發環境。
清除所用資源
請透過Google Cloud console 刪除不需要的專案,以免產生不必要的 Google Cloud 費用。
後續步驟