Cloud Speech API 可讓您從音訊檔案使用語音轉錄文字,且支援超過 80 種語言。
在這個研究室中,系統會錄製音訊檔案,並將其傳送至 Cloud Speech API 進行語音轉錄。
課程內容
- 建立 Speech API 要求並使用 curl 呼叫 API
- 使用不同語言的音訊檔案呼叫 Speech API
軟硬體需求
您要如何使用本教學課程?
您對於 Google Cloud Platform 的評價如何?
自行調整環境設定
如果您還沒有 Google 帳戶 (Gmail 或 Google Apps),請先建立帳戶。登入 Google Cloud Platform 主控台 (console.cloud.google.com),然後建立新專案:
提醒您,專案編號是所有 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 為基礎的虛擬機器會載入您需要的所有開發工具 (gcloud
、bq
、git
等),並提供永久的 5GB 主目錄。我們會使用 Cloud Shell 建立對 Speech API 的要求。
如要開始使用 Cloud Shell,請按一下標題列右上角的「啟用 Google Cloud Shell」圖示。
系統會在主控台底部的新頁框中開啟 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"
}
}
要求主體有一個 config
和 audio
物件。在 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
後續步驟
- 請參閱說明文件中的 Speech API 教學課程。
- 歡迎試用 Vision API 和 Natural Language API!