Genera subtítulos en WebVTT y SRT

En esta página, se describe cómo usar la API de Cloud Speech-to-Text para generar automáticamente subtítulos a partir de archivos de audio en los formatos SRT y WebVTT. Estos formatos se usan para almacenar la información de texto y sincronización del audio, lo que permite mostrar subtítulos sincronizados con el contenido multimedia.

Habilitar salidas de subtítulos en la solicitud a Cloud Speech-to-Text solo se admite en la API V2. En particular, solo puedes usar BatchRecognize para transcribir archivos de audio largos. Las salidas se pueden guardar en un bucket de Cloud Storage o se pueden mostrar intercaladas. Se pueden especificar varios formatos al mismo tiempo para configurar la salida de Cloud Storage, que se escribe en el bucket especificado con diferentes extensiones de archivo.

Habilita las salidas de subtítulos en una solicitud

Para generar salidas de subtítulos en formato SRT o VTT destinadas a tu audio a través de Cloud Speech-to-Text, sigue los pasos que se indican a continuación con el objetivo de habilitar las salidas de subtítulos en la solicitud de transcripción:

  1. Realiza una solicitud al método BatchRecognize de la API de Cloud Speech-to-Text con el campo output_format_config completado. Los valores especificados son los que se indican a continuación:
    • srt, para que la salida siga el formato SRT. vtt, para que la salida siga el formato WebVTT.
    • native, que es el formato de salida predeterminado si no se especifica ningún formato como una solicitud BatchRecognizeResults serializada.
  2. Debido a que la operación es asíncrona, deberás sondear la solicitud hasta que se complete.

Se pueden especificar varios formatos al mismo tiempo para configurar la salida de Cloud Storage. Estas se escriben en el bucket especificado con diferentes extensiones de archivo (ya sea .json, .srt o .vtt).

Si se especifican varios formatos para la configuración de la salida intercalada, cada uno estará disponible como un campo en el mensaje BatchRecognizeFileResult.inline_result.

En el siguiente fragmento de código, se demuestra cómo habilitar las salidas de subtítulos en una solicitud de transcripción para Cloud Speech-to-Text usando archivos locales y remotos:

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

¿Qué sigue?