En esta página, se demuestra cómo transcribir archivos de audio largos (de más de 1 minuto) a texto con el reconocimiento de voz asíncrono.
El reconocimiento de voz asíncrono inicia una operación de procesamiento de audio de larga duración. Usa el reconocimiento de voz asíncrono para transcribir audios de más de 1 minuto. Para audios más cortos, el reconocimiento de voz síncrono es más rápido y sencillo.
Puedes recuperar los resultados de la operación mediante el método google.longrunning.Operations. Los resultados permanecen disponibles para su recuperación durante 5 días (120 horas). El contenido de audio se puede enviar directamente a Speech-to-Text desde un archivo local, o la API puede procesar el contenido de audio almacenado en {storage_name}. Los archivos de audio de más de 1 minuto se deben almacenar en un depósito de Cloud Storage para que Speech-to-Text las transcriba. Realizar el reconocimiento de voz asíncrono en un archivo local de más de 1 minuto dará como resultado un error o una transcripción incompleta.
Transcribe archivos de audio largos con un archivo de Google Cloud Storage
En estos ejemplos, se usa un depósito de Cloud Storage a fin de almacenar la entrada de audio sin procesar para el proceso de transcripción de larga duración. Para obtener un ejemplo de una respuesta de operación longrunningrecognize
típica, consulta la documentación sobre Conceptos básicos de Speech-to-Text.
Protocolo
Consulta el extremo de la API de speech:longrunningrecognize
para obtener los detalles completos.
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 utiliza el token de acceso correspondiente a la configuración de una cuenta de servicio para el proyecto con el SDK de Cloud de Google Cloud. Si deseas obtener instrucciones para instalar el SDK de Cloud, configurar un proyecto con una cuenta de servicio y conseguir un token de acceso, 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' }, '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 correctamente, el servidor muestra un código de estado HTTP 200 OK
y la respuesta en formato JSON:
{ "name": "7612202767953098924" }
donde name
es el nombre de la operación de larga duración creada para la solicitud.
Espera a que se complete el procesamiento. El tiempo de procesamiento varía según el audio de la fuente. En la mayoría de los casos, obtendrás resultados en la mitad de la longitud del audio de origen.
Puedes obtener el estado de tu operación de larga duración si haces una solicitud GET
al extremo https://speech.googleapis.com/v1/operations/
. Reemplaza your-operation-name
con el name
recibido de tu solicitud longrunningrecognize
. Puedes obtener el progreso estimado de la solicitud desde el campo progressPercent
.
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.96096134, } ] }, { "alternatives": [ { ... } ] } ] } }
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 la herramienta de línea de comandos de gcloud
, mediante el suministro de la ruta de acceso de un archivo local o una URL de Google Cloud Storage.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --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" } ] } ] }
C#
Go
Java
Node.js
PHP
Python
Ruby
Transcribe archivos de audio largos con un archivo local
En estos ejemplos, se usa un archivo local a fin de almacenar la entrada de audio sin procesar para el proceso de transcripción de larga duración. Para obtener un ejemplo de una respuesta de operación longrunningrecognize
típica, consulta la documentación sobre Conceptos básicos de Speech-to-Text.
C#
Go
Java
Node.js
PHP
Python
Ruby