Générer des sous-titres WebVTT et SRT

Cette page explique comment utiliser l'API Cloud Speech-to-Text pour générer automatiquement des sous-titres à partir de fichiers audio, aux formats SRT et WebVTT. Ces formats peuvent stocker le texte et les codes temporels de l'audio, ce qui permet d'afficher des sous-titres synchronisés avec le contenu multimédia.

L'activation des sorties de sous-titres dans votre requête à Cloud Speech-to-Text n'est prise en charge que dans l'API V2. Concrètement, vous ne pouvez utiliser BatchRecognize que pour transcrire des fichiers audio longs. Vous pouvez enregistrer les sorties dans un bucket Cloud Storage ou les renvoyer en ligne. Plusieurs formats peuvent être spécifiés en même temps pour la configuration de sortie Cloud Storage, qui est écrite dans le bucket spécifié avec différentes extensions de fichier.

Activer les sorties de sous-titres dans une requête

Pour générer des sous-titres SRT ou VTT pour votre contenu audio à l'aide de Cloud Speech-to-Text, procédez comme suit pour activer les sorties de sous-titres dans votre requête de transcription :

  1. Envoyez une requête à la méthode BatchRecognize de l'API Cloud Speech-to-Text avec le champ output_format_config renseigné. Les valeurs spécifiées sont les suivantes :
    • srt pour que la sortie respecte le format SRT. - vtt pour que la sortie respecte le format WebVTT.
    • native, qui est le format de sortie par défaut si aucun format n'est spécifié en tant que requête BatchRecognizeResults sérialisée.
  2. Étant donné que l'opération est asynchrone, interrogez la requête jusqu'à ce qu'elle soit terminée.

Plusieurs formats peuvent être spécifiés en même temps pour la configuration de sortie Cloud Storage. Ils sont écrits dans le bucket spécifié avec différentes extensions de fichier (.json, .srt ou .vtt).

Si plusieurs formats sont spécifiés pour la configuration de sortie intégrée, chacun d'eux sera disponible en tant que champ dans le message BatchRecognizeFileResult.inline_result.

L'extrait de code suivant montre comment activer les sorties de sous-titres dans une requête de transcription envoyée à Cloud Speech-to-Text à l'aide de fichiers locaux et distants :

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

Étapes suivantes