Gere legendas WebVTT e SRT

Esta página descreve como usar a API Speech-to-Text V2 para gerar automaticamente legendas a partir de ficheiros de áudio, nos formatos SRT e VTT.

Vista geral

Pode usar o poder da API Speech-to-Text V2 para gerar automaticamente legendas precisas nos formatos SubRip (.srt) e WebVTT (.vtt). Estes formatos são usados para armazenar o texto e as informações de tempo do áudio, o que permite apresentar legendas sincronizadas com o conteúdo multimédia para legendagem e legendas.

A ativação das legendas na sua solicitação à API Google Speech-to-Text só é suportada na API V2. Em concreto, só pode usar o BatchRecognize para transcrever ficheiros de áudio longos. Pode guardar os resultados num contentor do Cloud Storage ou podem ser devolvidos inline. Podem ser especificados vários formatos em simultâneo para a configuração de saída do Cloud Storage, que é escrita no contentor especificado com extensões de ficheiros diferentes.

Ative as saídas de legendas num pedido

Para gerar resultados de legendas SRT ou VTT para o seu áudio através do Google Speech-to-Text, siga os passos seguintes para ativar os resultados de legendas no seu pedido de transcrição:

  1. Faça um pedido ao método BatchRecognize da API Speech-to-Text V2 com o campo output_format_config preenchido. Os valores especificados são:
    • srt para que a saída siga o formato SubRip(.srt).
    • vtt para que a saída siga o formato WebVTT(.vtt).
    • native, que é o formato de saída predefinido se não for especificado nenhum formato como um pedido BatchRecognizeResults serializado.
  2. Uma vez que a operação é assíncrona, sondar o pedido até estar concluído.

É possível especificar vários formatos em simultâneo para a configuração de saída do Cloud Storage. São escritos no contentor especificado com extensões de ficheiros diferentes. São .json para o suporte nativo, .srt para o SRT e .vtt para o WebVTT, respetivamente.

Se forem especificados vários formatos para a configuração de saída inline, cada formato vai estar disponível como um campo na mensagem BatchRecognizeFileResult.inline_result.

O seguinte fragmento de código demonstra como ativar as saídas de legendas num pedido de transcrição para o Speech-to-Text através de ficheiros locais e 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": {} }
      }
    }'

O que se segue?