Cloud Speech API 可將音訊檔案轉錄成 80 多種語言的文字稿。
在本實驗室中,我們將錄製音訊檔案並傳送到 Cloud Speech API 進行語音轉錄。
課程內容
- 建立 Speech API 要求並使用 curl 呼叫 API
- 使用不同語言的音訊檔案呼叫 Speech API
軟硬體需求
您會如何使用本教學課程?
你對 Google Cloud Platform 的使用體驗滿意嗎?
自行設定環境
如果您還沒有 Google 帳戶 (Gmail 或 Google 應用程式),請先建立帳戶。登入 Google Cloud Platform 主控台 (console.cloud.google.com),然後建立新專案:
請記住專案 ID,這是所有 Google Cloud 專案中不重複的名稱 (上述名稱已遭占用,因此不適用於您,抱歉!)。本程式碼研究室稍後會將其稱為 PROJECT_ID
。
接著,您必須在 Cloud 控制台中啟用帳單,才能使用 Google Cloud 資源。
完成本程式碼研究室的費用不應超過數美元,但如果您決定使用更多資源,或是將資源繼續執行 (請參閱本文件結尾的「清除」一節),則可能會增加費用。
Google Cloud Platform 新使用者享有價值 $300 美元的免費試用期。
按一下畫面左上方的「選單」圖示。
從下拉式選單中選取「API 和服務」 資訊主頁。
按一下「啟用 API 和服務」。
然後在搜尋框中搜尋「語音」。按一下「Google Cloud Speech API」:
按一下「啟用」來啟用 Cloud Speech API:
稍待片刻,等待按鈕重新啟用。啟用後,畫面會顯示以下內容:
Google Cloud Shell 是 在雲端執行的指令列環境,這種以 Debian 為基礎的虛擬機器,搭載各種您需要的開發工具 (包括 gcloud
、bq
、git
等等),而且主目錄提供 5 GB 的永久儲存空間。我們會使用 Cloud Shell 建立 Speech API 的要求。
如要開始使用 Cloud Shell,請按一下標題列右上角的「啟用 Google Cloud Shell」圖示 。
系統會在控制台底部的新頁框中開啟 Cloud Shell 工作階段,並顯示指令列提示。等待 user@project:~$ 提示出現
我們會使用 curl
將要求傳送至 Speech API,因此需要產生 API 金鑰,才能傳入要求網址。如要建立 API 金鑰,請前往專案資訊主頁的「APIs & Services」(API 和服務) >「Credentials」(憑證) 部分:
然後按一下「建立憑證」:
在下拉式選單中選取「API 金鑰」:
接下來,請複製您剛產生的金鑰並選取「Close」(關閉) (不要限制金鑰)。
您現在已擁有 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 的音訊檔案是使用哪種音訊編碼類型。FLAC
是 .raw 檔案的編碼類型 (詳情請參閱編碼類型說明文件)。您也可以新增其他參數至 config
物件,但 encoding
是唯一必填項目。如果未在要求中填寫此項目,則 languageCode
預設值為英文。
在 audio
物件中,您可以將 Cloud Storage 音訊檔案的 URI 傳送給 API,或是將 Base64 編碼的音訊以字串形式傳送。我們這裡採用 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
值會傳回 Speech API 轉錄音訊檔案的文字成果,confidence
值則表示 API 對正確轉錄音訊的信心程度。
您會發現上述要求中我們呼叫了 recognize
方法。Speech API 支援同步和非同步的語音轉文字作業。在這個例子中,我們將完整的音訊檔案傳送至 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!