Cette page explique comment obtenir les valeurs d'horodatage pour le contenu audio transcrit par Speech-to-Text.
Speech-to-Text peut inclure des valeurs de décalage temporel (horodatage) dans le texte de réponse de votre requête de reconnaissance. Ces valeurs indiquent le début et la fin de chaque mot prononcé reconnu dans le contenu audio fourni. Une valeur d'horodatage représente la durée écoulée depuis le début du contenu audio, par incréments de 100 ms.
Les décalages temporels sont particulièrement utiles pour analyser des fichiers audio plus longs, dans lesquels vous pourriez avoir besoin de rechercher un mot précis dans le texte reconnu et de le localiser (chercher) dans le contenu audio d'origine. Speech-to-Text permet d'utiliser des décalages temporels avec toutes les méthodes de reconnaissance vocale, à savoir speech:recognize
, speech:longrunningrecognize
et Streaming.
Les valeurs de décalage temporel ne sont incluses que pour la première alternative fournie dans la réponse de reconnaissance.
Pour inclure des décalages temporels dans les résultats de votre requête, définissez le paramètre enableWordTimeOffsets
sur true
dans la configuration de votre requête.
Protocole
Reportez-vous au point de terminaison speech:longrunningrecognize
de l'API pour obtenir des informations complètes.
Pour réaliser une reconnaissance vocale synchrone, exécutez une requête POST
en fournissant le corps de requête approprié. Voici un exemple de requête POST
utilisant curl
. L'exemple utilise Google Cloud CLI pour générer un jeton d'accès. Pour obtenir des instructions sur l'installation de gcloud CLI, consultez le guide de démarrage rapide.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': { 'language_code': 'en-US', 'enableWordTimeOffsets': true }, 'audio':{ 'uri':'gs://gcs-test-data/vr.flac' } }" "https://speech.googleapis.com/v1/speech:longrunningrecognize"
Pour savoir comment configurer le corps de la requête, consultez la documentation de référence sur RecognitionConfig et RecognitionAudio.
Si la requête aboutit, le serveur renvoie un code d'état HTTP 200 OK
et la réponse au format JSON. Si l'opération est incomplète (toujours en cours), la réponse se présente comme suit :
{ "name": "2885768779530032514", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 97, "startTime": "2020-12-14T03:11:54.492593Z", "lastUpdateTime": "2020-12-14T03:15:57.484509Z", "uri": "gs://{BUCKET_NAME}/{FILE_NAME}" } }
Une fois le processus terminé, le résultat ressemble à ce qui suit :
{ "name": "7612202767953098924" }
où name
est le nom de l'opération de longue durée créée pour la requête.
Le traitement du fichier vr.flac
prend environ 30 secondes. Pour récupérer le résultat de l'opération, envoyez une requête GET
au point de terminaison https://speech.googleapis.com/v1/operations/
. Remplacez your-operation-name
par la valeur name
provenant de votre requête longrunningrecognize
.
curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ "https://speech.googleapis.com/v1/operations/your-operation-name"
Si la requête aboutit, le serveur renvoie un code d'état HTTP 200 OK
et la réponse au format JSON :
{ "name": "7612202767953098924", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 100, "startTime": "2017-07-20T16:36:55.033650Z", "lastUpdateTime": "2017-07-20T16:37:17.158630Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "transcript": "okay so what am I doing here...(etc)...", "confidence": 0.96596134, "words": [ { "startTime": "1.400s", "endTime": "1.800s", "word": "okay" }, { "startTime": "1.800s", "endTime": "2.300s", "word": "so" }, { "startTime": "2.300s", "endTime": "2.400s", "word": "what" }, { "startTime": "2.400s", "endTime": "2.600s", "word": "am" }, { "startTime": "2.600s", "endTime": "2.600s", "word": "I" }, { "startTime": "2.600s", "endTime": "2.700s", "word": "doing" }, { "startTime": "2.700s", "endTime": "3s", "word": "here" }, { "startTime": "3s", "endTime": "3.300s", "word": "why" }, { "startTime": "3.300s", "endTime": "3.400s", "word": "am" }, { "startTime": "3.400s", "endTime": "3.500s", "word": "I" }, { "startTime": "3.500s", "endTime": "3.500s", "word": "here" }, ... ] } ] }, { "alternatives": [ { "transcript": "so so what am I doing here...(etc)...", "confidence": 0.9642093, } ] } ] } }
Si l'opération n'est pas terminée, vous pouvez interroger le point de terminaison en exécutant plusieurs fois la requête GET
jusqu'à ce que la propriété done
de la réponse passe à la valeur true
.
gcloud
Reportez-vous à la commande recognize-long-running
pour obtenir tous les détails.
Pour effectuer une reconnaissance vocale asynchrone, servez-vous de Google Cloud CLI en fournissant le chemin d'accès à un fichier local ou une URL Google Cloud Storage. Spécifiez l'option --include-word-time-offsets
.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --include-word-time-offsets --async
Si la requête aboutit, le serveur renvoie l'ID de l'opération de longue durée au format JSON.
{ "name": OPERATION_ID }
Vous pouvez ensuite obtenir des informations sur l'opération en exécutant la commande suivante :
gcloud ml speech operations describe OPERATION_ID
Vous avez également la possibilité d'interroger l'opération jusqu'à ce qu'elle soit terminée en exécutant la commande suivante :
gcloud ml speech operations wait OPERATION_ID
Une fois l'opération terminée, le serveur renvoie une transcription du contenu audio au format JSON.
{ "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "confidence": 0.9840146, "transcript": "how old is the Brooklyn Bridge", "words": [ { "endTime": "0.300s", "startTime": "0s", "word": "how" }, { "endTime": "0.600s", "startTime": "0.300s", "word": "old" }, { "endTime": "0.800s", "startTime": "0.600s", "word": "is" }, { "endTime": "0.900s", "startTime": "0.800s", "word": "the" }, { "endTime": "1.100s", "startTime": "0.900s", "word": "Brooklyn" }, { "endTime": "1.500s", "startTime": "1.100s", "word": "Bridge" } ] } ] } ] }
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Speech-to-Text, consultez la page Bibliothèques clientes Speech-to-Text. Pour en savoir plus, consultez la documentation de référence de l'API Speech-to-Text en langage Go.
Pour vous authentifier auprès de Speech-to-Text, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Speech-to-Text, consultez la page Bibliothèques clientes Speech-to-Text. Pour en savoir plus, consultez la documentation de référence de l'API Speech-to-Text en langage Java.
Pour vous authentifier auprès de Speech-to-Text, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Speech-to-Text, consultez la page Bibliothèques clientes Speech-to-Text. Pour en savoir plus, consultez la documentation de référence de l'API Speech-to-Text en langage Node.js.
Pour vous authentifier auprès de Speech-to-Text, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Speech-to-Text, consultez la page Bibliothèques clientes Speech-to-Text. Pour en savoir plus, consultez la documentation de référence de l'API Speech-to-Text en langage Python.
Pour vous authentifier auprès de Speech-to-Text, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la page Documentation de référence sur Speech-to-Text pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la page Documentation de référence sur Speech-to-Text pour PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur Speech-to-Text pour Ruby.