Descripción general de Cloud Speech-to-Text

Cloud Speech-to-Text es una API que te permite integrar las tecnologías de reconocimiento de voz de Google en tus aplicaciones para desarrolladores. En este documento, se abordan los conceptos básicos para usar Cloud Speech-to-Text, incluidos los tipos de solicitudes que puedes realizar a Cloud STT, cómo construir esas solicitudes y cómo manejar sus respuestas. Antes de comenzar a usar la API, lee esta guía y uno de los instructivos asociados.

Solicitudes de reconocimiento de Cloud Speech-to-Text

Cloud Speech-to-Text (STT) tiene tres métodos principales para realizar el reconocimiento de voz. Los siguientes métodos están disponibles:

  • El reconocimiento síncrono (REST y gRPC) envía datos de audio a la API de Cloud Speech-to-Text, realiza el reconocimiento de esos datos y muestra los resultados luego de procesar todo el audio. Las solicitudes de reconocimiento síncronas procesan datos de audio de 1 minuto o menos.

  • El reconocimiento asíncrono (REST y gRPC) envía datos de audio a la API de Cloud Speech-to-Text y, luego, inicia una operación de larga duración. Esta operación te permite sondear periódicamente los resultados del reconocimiento. Usa solicitudes asíncronas para los datos de audio de cualquier duración hasta 480 minutos.

  • El reconocimiento de transmisión (solo gRPC) realiza el reconocimiento de los datos de audio proporcionados dentro de una transmisión bidireccional de gRPC. Las solicitudes de transmisión continua están diseñadas para fines de reconocimiento en tiempo real, como la captura de audio en vivo de un micrófono. El reconocimiento de transmisión proporciona resultados provisorios a medida que se captura el audio. Por ejemplo, los resultados pueden aparecer mientras un usuario aún está hablando.

Las solicitudes contienen parámetros de configuración, así como datos de audio. Las solicitudes de reconocimiento pueden contener de forma opcional un reconocedor, una configuración de reconocimiento almacenada y reutilizable.

Metadatos de audio

En la mayoría de los archivos de audio, la API de Cloud Speech-to-Text puede deducir automáticamente los metadatos de audio. Cloud STT analiza el encabezado del archivo y lo decodifica según esa información. Consulta la página de codificación para conocer los tipos de archivo compatibles.

En el caso de los archivos de audio sin encabezado, la API de Cloud Speech-to-Text te permite especificar los metadatos de audio de forma explícita en la configuración de reconocimiento. Consulta la página de codificación para obtener más detalles.

Si tienes la opción durante la codificación del material de origen, captura audio con una tasa de muestreo de 16,000 Hz. Los valores más bajos pueden afectar la exactitud del reconocimiento de voz, y los niveles más altos no tienen un efecto apreciable en la calidad del reconocimiento.

Sin embargo, si tus datos de audio ya se grabaron con una tasa de muestreo existente diferente de 16,000 Hz, no vuelvas a realizar un muestreo de tu audio a 16,000 Hz. Por ejemplo, la mayoría del audio de telefonía heredado usa tasas de muestreo de 8,000 Hz, lo que puede dar resultados menos exactos. Si debes usar ese audio, proporciona el audio a la API de Cloud Speech-to-Text a su tasa de muestreo original.

Idiomas

El motor de reconocimiento de Cloud STT admite una variedad de idiomas y dialectos. Especifica el idioma (y el dialecto nacional o regional) de tu audio dentro del campo languageCode de la configuración de la solicitud, con un identificador BCP-47.

En la página Idiomas admitidos, encontrarás una lista completa de los idiomas compatibles con cada función.

Funciones de reconocimiento

La API de Cloud Speech-to-Text tiene funciones de reconocimiento adicionales, como la puntuación automática y la confianza a nivel de palabra. Habilita estas funciones en la configuración de reconocimiento en las solicitudes. Consulta el código de muestra en los vínculos proporcionados y la página de idiomas para conocer la disponibilidad de las funciones.

Selección del modelo

Cloud STT puede usar uno de varios modelos de aprendizaje automático para transcribir tu archivo de audio. Google entrenó estos modelos de reconocimiento de voz para tipos y fuentes de audio específicos. Consulta la documentación sobre la selección de modelos para obtener información sobre los modelos disponibles y cómo seleccionar uno en tus solicitudes.

Contenido de audio incorporado

Para incluir audio incorporado en la solicitud de reconocimiento de voz, debes transferir un parámetro content en el campo audio_source de la solicitud. En el caso del audio incorporado que proporciones como contenido dentro de una solicitud de gRPC, el audio debe ser compatible con la serialización Proto3 y proporcionarse como datos binarios. Para el audio incorporado que proporcionas como contenido dentro de una solicitud de REST, el audio debe ser compatible con la serialización JSON y, primeramente, se debe codificar en Base64. Para obtener más información, consulta Codifica tu audio en Base64.

Cuando construyes una solicitud con una biblioteca cliente de Google Cloud, por lo general, escribes estos datos binarios (o codificados en Base64) directamente en el campo content.

Transfiere audio cuya referencia es un URI

Con más frecuencia, pasarás un parámetro uri dentro del campo audio_source de la solicitud a la API de Cloud Speech-to-Text y dirigirás a un archivo de audio (en formato binario, no Base64) ubicado en Cloud Storage de la siguiente forma:

gs://bucket-name/path/to/audio/file

Speech-to-Text usa una cuenta de servicio para acceder a tus archivos en Cloud Storage. De forma predeterminada, la cuenta de servicio tiene acceso a los archivos de Cloud Storage en el mismo proyecto.

La siguiente es la dirección de correo electrónico de la cuenta de servicio:

service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com

Para transcribir archivos de Cloud Storage en otro proyecto, puedes otorgar a esta cuenta de servicio el rol [Agente de servicio de Speech-to-Text][speech-service-agent] en el otro proyecto:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
    --role=roles/speech.serviceAgent

Para obtener más información sobre la política del IAM del proyecto, consulta [Administra el acceso a proyectos, carpetas y organizaciones][manage-access].

También puedes otorgar acceso a una cuenta de servicio más detallada si le das permiso a un bucket de Cloud Storage específico:

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
    --role=roles/storage.admin

Para obtener más información sobre la administración del acceso a Cloud Storage, consulta [Crea y administra listas de control de acceso][buckets-manage-acl] en la documentación de Cloud Storage.

Respuestas de la API de Cloud Speech-to-Text

Después de que la API de Cloud Speech-to-Text procesa el audio, muestra los resultados de la transcripción en mensajes SpeechRecognitionResult para solicitudes síncronas y por lotes, y en mensajes StreamingRecognitionResult para las solicitudes de transmisión. En las solicitudes síncronas y por lotes, la respuesta de RPC contiene una lista de resultados. La lista de audio reconocido aparece en orden contiguo. Para las respuestas de transmisión, todos los resultados marcados como is_final aparecen en orden contiguo.

Selecciona alternativas

Cada resultado dentro de una respuesta de reconocimiento síncrono correcto puede contener una o más alternatives (si max_alternatives es mayor que 1). Si Cloud STT determina que una alternativa tiene un valor de confianza suficiente, Cloud STT incluye esa alternativa en la respuesta. La primera alternativa en la respuesta siempre es la mejor alternativa (con más probabilidades).

La configuración de max_alternatives como un valor mayor que 1 no implica o garantiza que se mostrarán varias alternativas. En general, más de una alternativa es lo más apropiado para proporcionar opciones en tiempo real a los usuarios que obtienen los resultados a través de una solicitud de reconocimiento de transmisión.

Maneja las transcripciones

Cada alternativa en la respuesta contiene un transcript con el texto reconocido. Cuando recibas alternativas secuenciales, concatena estas transcripciones.

Valores de confianza

El valor confidence es una estimación entre 0.0 y 1.0. Se calcula agregando los valores de "probabilidad" asignados a cada palabra en el audio. Un número más alto indica una mayor probabilidad estimada de que las palabras individuales se reconozcan correctamente. Por lo general, este campo solo se proporciona para la hipótesis principal y solo para los resultados en los que is_final=true. Por ejemplo, puedes usar el valor de confidence para decidir si deseas mostrar resultados alternativos o pedir tu confirmación.

Sin embargo, ten en cuenta que el modelo determina el "mejor" resultado en función de más señales que la puntuación confidence sola (como el contexto de la oración). Por este motivo, en ocasiones, el resultado superior no tiene la puntuación de confianza más alta. Si no solicitaste varios resultados alternativos, el único "mejor" resultado puede tener un valor de confianza menor al previsto. Por ejemplo, esto puede ocurrir cuando se usan palabras poco comunes. Incluso si el sistema reconoce correctamente una palabra que se usa con poca frecuencia, se le puede asignar un valor bajo de "probabilidad". Si el modelo determina que la palabra poco usada es la opción más probable según el contexto, devuelve ese resultado en la parte superior, aunque el valor confidence del resultado sea menor que las otras opciones.

¿Qué sigue?