En esta página se muestra cómo transcribir archivos de audio largos (de más de 1 minuto) a texto mediante la API Speech-to-Text y el reconocimiento de voz asíncrono.
Acerca del 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 audio de más de 60 segundos. En el caso de los audios más cortos, el reconocimiento de voz síncrono es más rápido y sencillo. El límite superior del reconocimiento de voz asíncrono es de 480 minutos.
Speech-to-Text y procesamiento asíncrono
El contenido de audio se puede enviar directamente a Speech-to-Text desde un archivo local para procesarlo de forma asíncrona. Sin embargo, el límite de tiempo de audio para los archivos locales es de 60 segundos. Si intentas transcribir archivos de audio locales de más de 60 segundos, se producirá un error. Para usar el reconocimiento de voz asíncrono para transcribir audio de más de 60 segundos, debes tener tus datos guardados en un segmento de Google Cloud Storage.
Puedes obtener los resultados de la operación mediante el método google.longrunning.Operations. Los resultados estarán disponibles para su recuperación durante 5 días (120 horas). También puede subir los resultados directamente a un segmento de Google Cloud Storage.
Transcribir archivos de audio largos con un archivo de Google Cloud Storage
En estos ejemplos se usa un segmento de Cloud Storage para almacenar la entrada de audio sin procesar del proceso de transcripción de larga duración. Para ver un ejemplo de una respuesta de operación longrunningrecognize
típica, consulta la documentación de referencia.
Protocolo
Consulta todos los detalles en el endpoint de la API speech:longrunningrecognize
.
Para realizar el reconocimiento de voz síncrono, haz una solicitud POST
y proporciona el cuerpo de la solicitud adecuado. A continuación, se muestra un ejemplo de una solicitud POST
que utiliza 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' }, 'audio':{ 'uri':'gs://cloud-samples-tests/speech/brooklyn.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 realiza de forma correcta, el servidor devuelve un código de estado HTTP 200 OK
y la respuesta en formato JSON:
{ "name": "7612202767953098924" }
En este comando, 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 en función del audio de origen. En la mayoría de los casos, obtendrás resultados en la mitad del tiempo que dure el audio de origen.
Para obtener el estado de una operación de larga duración, haz una GET
solicitud al endpoint https://speech.googleapis.com/v1/operations/
. Sustituye your-operation-name
por el name
devuelto por 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 realiza de forma correcta, el servidor devuelve 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": "how old is the Brooklyn Bridge", "confidence": 0.96096134, } ] }, { "alternatives": [ { ... } ] } ] } }
Si la operación no se ha completado, puedes sondear el endpoint haciendo repetidamente la solicitud GET
hasta que la propiedad done
de la respuesta sea true
.
gcloud
Consulta todos los detalles sobre el comando
recognize-long-running
.
Para realizar el reconocimiento de voz asíncrono, usa la CLI de Google Cloud y proporciona la ruta 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 se realiza la petición de forma correcta, el servidor devuelve 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 ejecutando el siguiente comando.
gcloud ml speech operations describe OPERATION_ID
También puedes sondear la operación hasta que finalice ejecutando el siguiente comando.
gcloud ml speech operations wait OPERATION_ID
Una vez completada la operación, se devuelve 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" } ] } ] }
Go
Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Go Speech-to-Text.
Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Java Speech-to-Text.
Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Node.js Speech-to-Text.
Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Python Speech-to-Text.
Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta 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 de cliente y, a continuación, consulta la documentación de referencia de Speech-to-Text para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Speech-to-Text para Ruby.
Subir los resultados de la transcripción a un segmento de Cloud Storage
Speech-to-Text permite subir los resultados de reconocimiento de larga duración directamente a un segmento de Cloud Storage. Si implementas esta función con activadores de Cloud Storage, las subidas de Cloud Storage pueden activar notificaciones que llamen a Cloud Functions y eliminar la necesidad de sondear Speech-to-Text para obtener resultados de reconocimiento.
Para que los resultados se suban a un segmento de Cloud Storage, proporciona la configuración de salida TranscriptOutputConfig
opcional en tu solicitud de reconocimiento de larga duración.
message TranscriptOutputConfig {
oneof output_type {
// Specifies a Cloud Storage URI for the recognition results. Must be
// specified in the format: `gs://bucket_name/object_name`
string gcs_uri = 1;
}
}
Protocolo
Consulta todos los detalles en el endpoint de la API longrunningrecognize
.
En el siguiente ejemplo se muestra cómo enviar una solicitud POST
mediante curl
, donde el cuerpo de la solicitud especifica la ruta a un cubo de Cloud Storage. Los resultados se suben a esta ubicación como un archivo JSON
que almacena SpeechRecognitionResult
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': {...}, 'output_config': { 'gcs_uri':'gs://bucket/result-output-path.json' }, 'audio': { 'uri': 'gs://bucket/audio-path' } }" "https://speech.googleapis.com/v1p1beta1/speech:longrunningrecognize"
El campo LongRunningRecognizeResponse
incluye la ruta al segmento de Cloud Storage en el que se ha intentado realizar la subida. Si la subida no se ha realizado correctamente, se devolverá un error de salida. Si ya existe un archivo con el mismo nombre, la subida escribe los resultados en un archivo nuevo con una marca de tiempo como sufijo.
{ ... "metadata": { ... "outputConfig": {...} }, ... "response": { ... "results": [...], "outputConfig": { "gcs_uri":"gs://bucket/result-output-path" }, "outputError": {...} } }
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Speech-to-Text en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Probar Speech-to-Text gratis