使用 Cloud Speech-to-Text API 進行語音轉錄

Cloud Speech API 可讓您從音訊檔案使用語音轉錄文字,且支援超過 80 種語言。

在這個研究室中,系統會錄製音訊檔案,並將其傳送至 Cloud Speech API 進行語音轉錄。

課程內容

  • 建立 Speech API 要求並使用 curl 呼叫 API
  • 使用不同語言的音訊檔案呼叫 Speech API

軟硬體需求

  • Google Cloud Platform 專案
  • 瀏覽器,例如 ChromeFirefox

您要如何使用本教學課程?

唯讀閱讀 閱讀內容並完成練習

您對於 Google Cloud Platform 的評價如何?

初級 中級 專業

自行調整環境設定

如果您還沒有 Google 帳戶 (Gmail 或 Google Apps),請先建立帳戶。登入 Google Cloud Platform 主控台 (console.cloud.google.com),然後建立新專案:

2016-02-10 12:45:26.png 的螢幕擷取畫面

提醒您,專案編號是所有 Google Cloud 專案的不重複名稱 (使用上述名稱後就無法使用,敬請見諒!)此程式碼研究室稍後將稱為 PROJECT_ID

接著,您必須在 Cloud Console 中啟用計費功能,才能使用 Google Cloud 資源。

完成這個程式碼研究室的成本應該不會超過新臺幣 $300 元,但如果您決定繼續使用更多資源,或是讓資源繼續運作 (請參閱本文件結尾的「清除設定」一節),就有可能需要更多成本。

新加入 Google Cloud Platform 的使用者可免費試用 $300 美元

按一下畫面左上角的選單圖示。

從下拉式選單中選取 [API 和服務] 資訊主頁。

按一下 [啟用 API 和服務]

然後在搜尋框中搜尋「語音」。按一下 [Google Cloud Speech API]

按一下 [啟用] 即可啟用 Cloud Speech API:

等待幾秒鐘後再啟用。啟用後,您就會看到以下訊息:

Google Cloud Shell 是在 Cloud 中執行的指令列環境。這款以 Debian 為基礎的虛擬機器會載入您需要的所有開發工具 (gcloudbqgit 等),並提供永久的 5GB 主目錄。我們會使用 Cloud Shell 建立對 Speech API 的要求。

如要開始使用 Cloud Shell,請按一下標題列右上角的「啟用 Google Cloud Shell」圖示Screen Shot 2015-06-08 at 5.30.32 PM.png

系統會在主控台底部的新頁框中開啟 Cloud Shell 工作階段,並顯示指令列提示。等待 user@project:~$ 出現提示

由於我們會使用 curl 向 Speech API 傳送要求,因此必須產生 API 金鑰,以傳入我們的要求網址。如要建立 API 金鑰,請前往專案資訊主頁的「APIs & Services > Credentials」部分:

然後按一下 [Create credentials] (建立憑證)

在下拉式選單中選取 [API 金鑰]

接下來,請複製您剛剛產生的金鑰,然後選取 [關閉] (請勿限制金鑰)。

現在已有 API 金鑰,請將金鑰儲存至環境變數,這樣就不必在每項要求中插入 API 金鑰的值。您可以在 Cloud Shell 中執行這項操作。請務必將 <your_api_key> 替換成您剛剛複製的金鑰。

export API_KEY=<YOUR_API_KEY>

您可以在 request.json 檔案中建構對 Speech API 的要求。如要建立及編輯這個檔案,您可以使用其中一種偏好的指令列編輯器 (nano、vim、emacs) 或使用 Cloud Shell 內建的網頁編輯器:

在主目錄中建立檔案,即可輕鬆參照並新增到 request.json 檔案:

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

要求主體有一個 configaudio 物件。在 config 中,系統會向 Speech API 說明要求的處理方式。encoding 參數可告知 API 您用於傳送至 API 的音訊檔案類型。FLAC 是 .raw 檔案的編碼類型 (如需詳細資訊,請參閱說明文件。您可以在 config 物件中加入其他參數,但 encoding 是唯一的必要參數。如果在要求中離開,languageCode 將預設為英文。

audio 物件中,您可以將 API 中 Cloud 音訊檔案的 URI,或以 Base64 編碼的音訊做為字串傳遞 API。這裡使用的是 Cloud Storage 網址。下一步是呼叫 Speech API!

您現在可以使用以下 curl 指令將要求主體和先前儲存的 API 金鑰環境變數傳送至 Speech API (全部位於一個指令列):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

這項 curl 指令傳回的回應應如下所示:

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

transcript 值會傳回語音 API 的語音轉錄,而 confidence 值會指出 API 的準確轉錄音訊。

您會注意到,我們已在上述要求中呼叫 recognize 方法。Speech API 支援同步和非同步語音轉文字轉錄服務。在本範例中,我們傳送了一個完整的音訊檔案,不過您也可以使用 longrunningrecognize 方法,在使用者仍在說話時,將語音串流處理至文字轉錄。

您是否為多語言使用者?Speech API 支援語音轉文字功能,支援超過 100 種語言!您可以在 request.json 中變更 languageCode 參數。如需支援的語言清單,請參閱這篇文章

試試法文音訊檔案 (如需預覽,請按這裡聆聽)。將您的 request.json 變更為以下內容:

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

畫面會顯示以下回應:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

這是一個熱門法國兒童故事的句子。如果您提供的是其他語言的音訊檔案,可嘗試在 Cloud Storage 中新增這些檔案,並在要求中變更 languageCode 參數。

你已瞭解如何使用 Speech API 執行語音轉文字轉錄功能。本範例中,您會將音訊檔案的 Google Cloud Storage URI 傳送至 API。或者,您也可以傳送採用 Base64 編碼的音訊內容字串。

適用範圍

  • 將語音檔案的 Google Cloud Storage URI 傳遞給 Speech API
  • 建立 Speech API 要求並使用 curl 呼叫 API
  • 使用不同語言的音訊檔案呼叫 Speech API

後續步驟