產生 WebVTT 和 SRT 字幕

本頁面說明如何使用 Speech-to-Text V2 API,自動產生 SRT 和 VTT 格式的音訊檔字幕。

總覽

您可以利用 Speech-to-Text V2 API 的強大功能,自動產生 SubRip (.srt) 和 WebVTT (.vtt) 格式的正確字幕。這些格式用於儲存音訊的文字和時間資訊,可讓字幕或輔助字幕與媒體同步顯示。

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

在要求中啟用字幕輸出功能

如要使用 Google Speech-to-Text 為音訊產生 SRT 或 VTT 字幕輸出內容,請按照下列步驟在轉錄要求中啟用字幕輸出功能:

  1. 向 Speech-to-Text V2 API BatchRecognize 方法提出要求,並填入 output_format_config 欄位。指定的值如下:
    • srt,讓輸出內容採用 SubRip(.srt) 格式
    • vtt,輸出內容會採用 WebVTT(.vtt) 格式
    • native:如果沒有指定格式做為序列化的 BatchRecognizeResults 要求,則預設輸出格式為 native
  2. 由於這項作業是非同步作業,請對要求進行輪詢,直到完成為止。

您可以同時指定多個格式,用於 Cloud Storage 輸出設定。這些檔案會寫入指定的儲存桶,並使用不同的副檔名。分別是 .json (原生)、.srt (SRT) 和 .vtt (WebVTT)。

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

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

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": {} }
      }
    }'

後續步驟