使用 gcloud CLI 將語音轉錄為文字

本頁面說明如何使用指令列中的 gcloud 工具,將語音辨識要求傳送至 Cloud Speech-to-Text。

Cloud Speech-to-Text 可將 Google 語音辨識技術輕鬆整合至開發人員應用程式,您可以將音訊資料傳送至 Cloud Speech-to-Text API,該 API 會傳回該音訊檔案的文字轉錄稿。如要進一步瞭解這項服務,請參閱「Cloud STT 基本概念」。

事前準備

您必須先完成下列動作,才能向 Cloud Speech-to-Text API 傳送要求。

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自體驗產品的實際應用成效。新客戶還能獲得價值 $300 美元的免費抵免額,能用於執行、測試及部署工作負載。
  2. 安裝 Google Cloud CLI。

  3. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  4. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  5. 建立或選取 Google Cloud 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您必須具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      將 PROJECT_ID 替換為要建立的專案名稱。 Google Cloud

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      將 PROJECT_ID 替換為 Google Cloud 專案名稱。

  6. 如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。

  7. 確認 Google Cloud 專案已啟用計費功能。

  8. 如尚未啟用,請啟用 Cloud Speech-to-Text API:

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    gcloud services enable speech.googleapis.com
  9. 安裝 Google Cloud CLI。

  10. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  11. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  12. 建立或選取 Google Cloud 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您必須具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      將 PROJECT_ID 替換為要建立的專案名稱。 Google Cloud

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      將 PROJECT_ID 替換為 Google Cloud 專案名稱。

  13. 如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。

  14. 確認 Google Cloud 專案已啟用計費功能。

  15. 如尚未啟用,請啟用 Cloud Speech-to-Text API:

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    gcloud services enable speech.googleapis.com
  16. 選用:建立新的 Cloud Storage bucket 來儲存音訊資料。詳情請參閱「建立 Cloud Storage bucket」一文。

如要進一步瞭解如何啟用 API,請參閱「為 Google Cloud 專案設定 Cloud Speech-to-Text」。

必要的角色

為確保 Cloud Composer 服務代理具備執行 Cloud Speech-to-Text 的必要權限,請要求管理員將專案的服務帳戶權杖建立者 (iam.serviceAccountTokenCreator) IAM 角色授予 Cloud Composer 服務代理。

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

管理員或許也能透過自訂角色或其他預先定義的角色,授予 Cloud Composer 服務代理程式必要權限。

如要取得在 Cloud Storage 中儲存音訊所需的權限,請要求管理員授予您 Cloud Storage bucket 的「Storage 物件檢視者 」(roles/storage.objectViewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

提出音訊轉錄要求

使用 Cloud STT 將音訊檔案轉錄成文字。請使用下列程式碼範例,將 recognize 要求傳送至 Cloud Speech-to-Text API。

請開啟指令列 shell 並執行下列指令。

gcloud ml speech recognize gs://cloud-samples-tests/speech/brooklyn.flac \
    --language-code=en-US

這個指令會要求 Cloud STT 轉錄託管於公開位置的 FLAC 檔案中的音訊。

如果要求成功,伺服器會傳回 JSON 格式的回應:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

恭喜!您已將第一個要求傳送至 Cloud STT。

如果收到 Cloud STT 的錯誤或空白回應,請參閱疑難排解和錯誤緩解步驟。

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

後續步驟