En esta página, se describe cómo obtener valores de compensación de tiempo para el audio transcrito por Speech-to-Text.
En Speech-to-Text, se pueden incluir valores de compensación horaria (marca de tiempo) en el texto de respuesta para tu solicitud de reconocimiento. Los valores de compensación horaria muestran el principio y el final de cada palabra hablada que se reconoce en el audio suministrado. Un valor de compensación horaria representa la cantidad de tiempo que ha transcurrido desde el comienzo del audio, en incrementos de 100 ms.
Las compensaciones horarias son especialmente útiles para analizar archivos de audio más largos, en los que es posible que necesites buscar una palabra en particular en el texto reconocido y ubicarla (buscarla) en el audio original. Speech-to-Text es compatible con las compensaciones horarias para todos los métodos de reconocimiento de voz: speech:recognize
, speech:longrunningrecognize
y transmisión.
Los valores de compensación horaria solo se incluyen para la primera alternativa proporcionada en la respuesta de reconocimiento.
Para incluir las compensaciones horarias en los resultados de tu solicitud, configura el parámetro enableWordTimeOffsets
como true
en la configuración de la solicitud.
Protocolo
Consulta el extremo de la API de speech:longrunningrecognize
para obtener más detalles.
Para realizar un reconocimiento de voz síncrono, haz una solicitud POST
y proporciona el cuerpo de la solicitud apropiado. A continuación, se muestra un ejemplo de una solicitud POST
con curl
. En el ejemplo, se usa Google Cloud CLI para generar un token
de acceso. Para obtener instrucciones sobre cómo instalar gcloud CLI,
consulta la guía de inicio rápido.
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"
Consulta la documentación de referencia de RecognitionConfig y RecognitionAudio para obtener más información sobre cómo configurar el cuerpo de la solicitud.
Si la solicitud se completa de forma correcta, el servidor muestra un código de estado HTTP 200 OK
y la respuesta en formato JSON. Si la operación está incompleta (aún en procesamiento), la respuesta será similar a la siguiente:
{ "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}" } }
Cuando se complete el proceso, el resultado será similar al siguiente:
{ "name": "7612202767953098924" }
donde name
es el nombre de la operación de larga duración creada para la solicitud.
El procesamiento del archivo vr.flac
toma alrededor de 30 segundos. Para recuperar el resultado de la operación, realiza una solicitud GET
al extremo https://speech.googleapis.com/v1/operations/
. Reemplaza your-operation-name
con el name
recibido de tu solicitud 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 solicitud se completa correctamente, el servidor muestra un código de estado HTTP 200 OK
y la respuesta en formato 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 la operación no se completó, puedes encuestar al extremo mediante la repetición de la solicitud GET
hasta que la propiedad done
de la respuesta sea true
.
gcloud
Consulta el comando recognize-long-running
para obtener todos los detalles.
Para realizar el reconocimiento de voz asíncrono, usa Google Cloud CLI, mediante el suministro de la ruta de acceso de un archivo local o una URL de Google Cloud Storage. Incluye la marca --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 solicitud es exitosa, el servidor muestra el ID de la operación de larga duración en formato JSON.
{ "name": OPERATION_ID }
A continuación, puedes obtener información sobre la operación mediante la ejecución del siguiente comando.
gcloud ml speech operations describe OPERATION_ID
También puedes encuestar a la operación hasta que finalice mediante la ejecución del siguiente comando.
gcloud ml speech operations wait OPERATION_ID
Una vez que se completa la operación, esta muestra una transcripción del audio en formato 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
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Speech-to-Text, consulta las bibliotecas cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API de Speech-to-Text Go.
Para autenticar en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Speech-to-Text, consulta las bibliotecas cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API de Speech-to-Text Java.
Para autenticar en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Speech-to-Text, consulta las bibliotecas cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API de Speech-to-Text Node.js.
Para autenticar en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Speech-to-Text, consulta las bibliotecas cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API de Speech-to-Text Python.
Para autenticar en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas cliente y, luego, visita la documentación de referencia de Speech-to-Text para .NET
PHP: Sigue las instrucciones de configuración de PHP en la página de bibliotecas cliente y, luego, visita la documentación de referencia de Speech-to-Text para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Speech-to-Text para Ruby.