Mensajes de error

Aprende a solucionar algunos errores que genera Speech-to-Text Este tema analiza errores cuyas resoluciones requieren más pasos de los que se pueden describir fácilmente en un mensaje de error.

"Las credenciales predeterminadas de la aplicación no están disponibles".

Si recibes este mensaje, haz lo siguiente:

The Application Default Credentials are not available. They are
available if running in Google Compute Engine. Otherwise, the
environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined
pointing to a file defining the credentials.
See https://developers.google.com/accounts/docs/application-default-credentials
for more information.

En Speech-to-Text, se usan credenciales predeterminadas de la aplicación para la autenticación.

Debes tener una cuenta de servicio para tu proyecto, descargar la clave (archivo JSON) para tu cuenta de servicio en tu entorno de desarrollo y, luego, establecer la ubicación de ese archivo JSON en una variable de entorno llamada GOOGLE_APPLICATION_CREDENTIALS.

Además, la variable de entorno GOOGLE_APPLICATION_CREDENTIALS debe estar disponible dentro del contexto en que llamas a la API de Speech-to-Text. Por ejemplo, si configuras la variable a partir de una sesión de terminal, pero ejecutas tu código en el depurador del IDE, el contexto de ejecución del código podría no tener acceso a la variable. En ese caso, tu solicitud a Speech-to-Text podría fallar por falta de autenticación adecuada.

Para obtener más información sobre cómo configurar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS, consulta las Guías de inicio rápido de Speech-to-Text o la documentación sobre cómo usar las credenciales predeterminadas de la aplicación.

“El archivo… (indicado por la variable de entorno GOOGLE_APPLICATION_CREDENTIALS) no existe”.

Si recibes este mensaje:

ERROR: (gcloud.auth.application-default.print-access-token) File /path/to/key.json
(pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}

Verifica que tienes un archivo JSON de clave de cuenta de servicio válido en la ubicación almacenada en la variable de entorno de GOOGLE_APPLICATION_CREDENTIALS y que la variable apunta al lugar correcto.

Para diagnosticar este error, prueba abrir el archivo de claves de la cuenta de servicio desde la carpeta a partir de la que intentas llamar a la API de Speech-to-Text.

cat $GOOGLE_APPLICATION_CREDENTIALS

Prohibido: 403 POST la API no se usó o está inhabilitada

Si recibes el siguiente mensaje:

Forbidden: 403 POST Speech-to-Text API has not been used in
project # before or it is disabled.
Enable it by visitng [url] then retry.
If you enabled this API recently, wait a few minutes for the action to
propagate to our systems and retry.

  1. Visita el vínculo especificado en el mensaje de error y habilita la API de Speech-to-Text. Espera varios minutos y vuelve a intentarlo.
  2. Verifica que tienes un archivo JSON de clave de cuenta de servicio válido almacenado en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS. Para diagnosticar este error, prueba abrir el archivo de claves de la cuenta de servicio desde la carpeta a partir de la que intentas llamar a la API de Speech-to-Text.
    cat $GOOGLE_APPLICATION_CREDENTIALS
    

"Se debe usar audio monocanal (mono)".

Si recibes este mensaje, haz lo siguiente:

Must use single channel (mono) audio, but WAV header indicates 2
channels.

Tu archivo de audio contiene más de un canal. Para transcribir este archivo de audio, debes declarar que tu audio tiene varios canales.

"Se deben usar muestras de 16 bits para LINEAR_PCM".

Si recibes este mensaje, haz lo siguiente:

INVALID_ARGUMENT: Must use 16 bit samples for LINEAR_PCM, but the WAV
header indicates 8 bits per sample

Es posible que debas cambiar la codificación que especificaste en RecognitionConfig. Para leer acerca de las codificaciones compatibles con Speech-to-Text, consulta la guía Introducción a la codificación de audio.

“La entrada de sincronización es demasiado larga”.

Si recibes este mensaje, haz lo siguiente:

Sync input too long. For audio longer than 1 min use
LongRunningRecognize with a 'uri' parameter.

En el método de reconocimiento síncrono para Speech-to-Text, solo se admite la transcripción de datos de audio de hasta 1 minuto de duración. Para datos de audio más largos, usa el reconocimiento asíncrono en su lugar.

"Configuración de reconocimiento no válida: codificación incorrecta".

Si recibes este mensaje, haz lo siguiente:

Invalid recognition 'config': bad encoding.

Es posible que tus datos de audio no estén codificados correctamente o estén codificados con un códec diferente al que declaraste en RecognitionConfig. Comprueba la entrada de audio y asegúrate de que configuraste correctamente el campo encoding.

“El tamaño de la carga útil de la solicitud supera el límite”.

Si recibes alguno de estos mensajes:

Request payload size exceeds the limit.
Inline audio exceeds duration limit. Please use a GCS URI.

Superaste el límite de tamaño de 10 MB para una sola solicitud enviada a la API con un archivo local. Puedes mover tu archivo de audio a un depósito de Google Cloud Storage (GCS) para evitar el límite de 10 MB. Consulta la página de cuotas y límites para obtener más información.

“Se superó la cuota”.

Si recibes este mensaje, haz lo siguiente:

RESOURCE_EXHAUSTED: Quota exceeded.

Alcanzaste el límite de tu cuota diaria o por minuto. Revisa las cuotas y límites para usar Speech-to-Text.

Puedes solicitar un aumento de las cuotas desde Google Cloud Console.