使用指令列從文字建立音訊

本文將逐步說明如何使用指令列向 Text-to-Speech 提出要求。如要進一步瞭解 Text-to-Speech 的基本概念,請參閱「Text-to-Speech 基本概念」。

事前準備

您必須先完成下列動作,才能向 Text-to-Speech API 傳送要求。詳情請參閱「事前準備」頁面。

  • 在 GCP 專案中啟用 Text-to-Speech。
  • 確認已啟用 Text-to-Speech 的計費功能。
  • 安裝 Google Cloud CLI。 安裝完成後,執行下列指令來初始化 Google Cloud CLI:

    gcloud init

    若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

從文字合成音訊

只要向 https://texttospeech.googleapis.com/v1/text:synthesize 端點發出 HTTP POST 要求,就能將文字內容轉換為音訊。在 POST 指令的主體中,請在 voice 設定區段指定要合成的語音類型,在 input 區段的 text 欄位中指定要合成的文字,然後在 audioConfig 區段中指定要建立的音訊類型。

  1. 在指令列執行下列 REST 要求,使用 Text-to-Speech 從文字合成音訊。這項指令會使用 gcloud auth application-default print-access-token 指令,擷取要求的授權權杖。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID: Google Cloud 專案的英數字元 ID。

    HTTP 方法和網址:

    POST https://texttospeech.googleapis.com/v1/text:synthesize

    JSON 要求主體:

    {
      "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"
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回應:

    {
      "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
    }
    

  2. REST 指令的 JSON 輸出內容含有 base64 編碼格式的合成音訊。將 audioContent 欄位的內容複製到名為 synthesize-output-base64.txt 的新檔案。新檔案會類似於下方內容:

    //NExAARqoIIAAhEuWAAAGNmBGMY4EBcxvABAXBPmPIAF//yAuh9Tn5CEap3/o
    ...
    VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
    
  3. synthesize-output-base64.txt 檔案的內容解碼到名為 synthesized-audio.mp3 的新檔案。如需解碼 base64 檔案的資訊,請參閱「解碼 Base64 編碼的音訊內容」。

    Linux

    1. 僅將 base64 編碼內容複製到文字檔。

    2. 透過 base64 指令列工具並使用 -d 標記來解碼來源文字檔:

        $ base64 SOURCE_BASE64_TEXT_FILE -d > DESTINATION_AUDIO_FILE

    Mac OSX

    1. 僅將 base64 編碼內容複製到文字檔。

    2. 使用 base64 指令列工具解碼來源文字檔:

        $ base64 --decode SOURCE_BASE64_TEXT_FILE > DESTINATION_AUDIO_FILE

    Windows

    1. 僅將 base64 編碼內容複製到文字檔。

    2. 使用 certutil 指令解碼來源文字檔。

       certutil -decode SOURCE_BASE64_TEXT_FILE DESTINATION_AUDIO_FILE
  4. 在音訊應用程式或音訊裝置上播放 synthesized-audio.mp3 的內容。您也可以在 Chrome 瀏覽器中前往檔案所在的資料夾,例如 file://my_file_path/synthesized-audio.mp3,開啟 synthesized-audio.mp3 並播放音訊。

清除所用資源

如要避免不必要的 Google Cloud Platform 收費,請前往Google Cloud console 刪除不需要的專案。

後續步驟

  • 如要進一步瞭解 Cloud Text-to-Speech,請參閱「基本概念」。
  • 查看可用於合成語音的可用語音清單。