生成 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 请求的格式,则这是默认输出格式)。
  2. 由于操作是异步的,因此请轮询请求,直到完成为止。

您可以为 Cloud Storage 输出配置同时指定多种格式。它们会以不同文件扩展名写入指定的存储桶。它们分别是 .json(表示本机)、.srt(表示 SRT)和 .vtt(表示 WebVTT 支持)。

如果为内嵌输出配置指定了多种格式,则每种格式都将作为 BatchRecognizeFileResult.inline_result 消息中的字段提供。

以下代码段演示了如何使用本地和远程文件在向 Speech-to-Text 发出的转录请求中启用字幕输出:

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

后续步骤

  • 了解如何 [转写长音频文件][批量识别]。
  • 了解如何选择最佳转写模型
  • 使用 [Chirp][chirp] 转写音频文件。
  • 如需了解关于最佳性能、准确度和其他方面的提示,请参阅 [最佳实践][最佳实践] 文档。