En esta página, se demuestra cómo transcribir archivos de audio largos (de más de 1 minuto) a texto con la API de Cloud Speech-to-Text y el reconocimiento de voz asíncrono.
Información sobre el reconocimiento de voz asíncrono
El reconocimiento de voz asíncrono inicia una operación de procesamiento de datos de audio de larga duración. Usa esta función para transcribir audios de más de 60 segundos. Para audios más cortos, el reconocimiento de voz síncrono es más rápido y sencillo. El límite máximo para el reconocimiento de voz asíncrono es de 480 minutos.
Cloud Speech-to-Text y procesamiento asíncrono
El contenido del audio se puede enviar de forma directa a Cloud Speech-to-Text desde un archivo local para el procesamiento asíncrono. 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. Si deseas usar el reconocimiento de voz asíncrono para transcribir audios de más de 60 segundos, debes guardar los datos en un bucket de Cloud Storage .
Puedes recuperar los resultados de la operación con el método google.longrunning.Operations. Los resultados permanecen disponibles para su recuperación durante 5 días (120 horas). También tienes la opción de subir los resultados de forma directa a un bucket de Cloud Storage.
Transcribe archivos de audio largos con un bucket de Cloud Storage
En estos ejemplos, se usa un bucket de Cloud Storage para almacenar la entrada de audio sin procesar destinada al
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 el extremo de API speech:longrunningrecognize para obtener
todos los 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 la 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 completa correctamente, el servidor devuelve un código de estado HTTP 200 OK y
la respuesta en formato JSON:
{
"name": "7612202767953098924"
}En el ejemplo anterior, name es el nombre de la operación de larga duración que se creó 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 por el name
que se devolvió 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 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 completó, puedes sondear el extremo repitiendo 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 y brinda la ruta de acceso a un archivo local o una URL de 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 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 mediante la ejecución del siguiente comando.
gcloud ml speech operations describe OPERATION_ID
También puedes sondear la operación hasta que se complete ejecutando el comando que se indica a continuación.
gcloud ml speech operations wait OPERATION_ID
Una vez que lo haga, devolverá 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 obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud STT, consulta Bibliotecas cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API de Cloud STT para Go.
Para autenticarte en Cloud STT, configura las credenciales predeterminadas de la aplicación. Para 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 Cloud STT, consulta Bibliotecas cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API de Cloud STT para Java.
Para autenticarte en Cloud STT, configura las credenciales predeterminadas de la aplicación. Para 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 Cloud STT, consulta Bibliotecas cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API de Cloud STT para Node.js.
Para autenticarte en Cloud STT, configura las credenciales predeterminadas de la aplicación. Para 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 Cloud STT, consulta Bibliotecas cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API de Cloud STT para Python.
Para autenticarte en Cloud STT, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Lenguajes adicionales
C#: Sigue las instrucciones de configuración de C# de la página de las bibliotecas cliente y, luego, consulta la documentación de referencia de Cloud STT para .NET.
PHP: Sigue las instrucciones de configuración de PHP de la página de las bibliotecas cliente y, luego, consulta la documentación de referencia de Cloud STT para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby de la página de bibliotecas cliente y, luego, consulta la documentación de referencia de Cloud STT para Ruby.
Sube los resultados de la transcripción a un bucket de Cloud Storage
Cloud Speech-to-Text admite la carga de los resultados de reconocimiento de larga duración de forma directa en un bucket de Cloud Storage. Si implementas esta función con activadores de Cloud Storage, las cargas de Cloud Storage pueden activar notificaciones que llaman a Cloud Functions y quitan la necesidad de sondear Cloud Speech-to-Text en busca de resultados de reconocimiento.
Para que tus resultados se suban a un bucket de Cloud Storage, brinda 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 el extremo de API
longrunningrecognize para obtener todos los detalles.
En el siguiente ejemplo, se muestra cómo enviar una solicitud POST con curl,
en el que el cuerpo de la solicitud especifica la ruta de acceso a un bucket
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/v2/speech:longrunningrecognize"
LongRunningRecognizeResponse
incluye la ruta de acceso al bucket de Cloud Storage en el que se intentó subir el archivo. Si
la carga no se realiza correctamente, se devolverá un error de salida. Si ya existe un
archivo con el mismo nombre, la carga 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 tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud STT en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar e implementar cargas de trabajo.
Probar Cloud STT gratis