產生 WebVTT 和 SRT 字幕

本頁說明如何使用 Cloud Speech-to-Text API,從音訊檔案自動產生 SRT 和 WebVTT 格式的字幕。這些格式可儲存音訊的文字和時間資訊,因此能同步顯示字幕或隱藏式輔助字幕。

只有 V2 API 支援在 Cloud Speech-to-Text 要求中啟用字幕輸出功能。具體來說,BatchRecognize 只能用於轉錄長音訊檔案。您可以將輸出內容儲存在 Cloud Storage 值區中,也可以內嵌方式傳回。您可以同時為 Cloud Storage 輸出設定指定多種格式,並以不同副檔名寫入指定值區。

在要求中啟用字幕輸出

如要使用 Cloud Speech-to-Text 為音訊產生 SRT 或 VTT 字幕輸出,請按照下列步驟操作,在語音轉錄要求中啟用字幕輸出:

  1. 向 Cloud Speech-to-Text API BatchRecognize 方法發出要求,並填入 output_format_config 欄位。指定的值如下:
    • srt,讓輸出內容採用 SRT 格式。 - vtt,讓輸出內容採用 WebVTT 格式
    • native,如果未指定格式,這就是序列化 BatchRecognizeResults 要求的預設輸出格式。
  2. 由於作業是非同步,請輪詢要求,直到作業完成為止。

您可以同時為 Cloud Storage 輸出設定指定多種格式。這些檔案會寫入指定值區,並使用不同的副檔名 (.json.srt.vtt)。

如果為內嵌輸出設定指定多種格式,每種格式都會以 BatchRecognizeFileResult.inline_result 訊息中的欄位形式提供。

下列程式碼片段會示範如何在「Cloud 語音轉文字」的語音轉錄要求中啟用字幕輸出功能,並使用本機和遠端檔案:

API

  curl -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    https://speech.googleapis.com/v2/projects/my-project/locations/global/recognizers/_:batchRecognize \
    --data '{
      "files": [{
        "uri": "gs://my-bucket/jfk_and_the_press.wav"
      }],
      "config": {
        "features": { "enableWordTimeOffsets": true },
        "autoDecodingConfig": {},
        "model": "long",
        "languageCodes": ["en-US"]
      },
      "recognitionOutputConfig": {
        "gcsOutputConfig": { "uri": "gs://my-bucket" },
        "output_format_config": { "srt": {} }
      }
    }'

後續步驟