Soluciona problemas

Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes dificultades con Speech-to-Text.

No puedes autenticar en Speech-to-Text

Es posible que recibas un mensaje de error que indica que tus “credenciales predeterminadas” de la aplicación no están disponibles, o tal vez te preguntes cómo obtener una clave de API para llamar a Speech-to-Text.

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.

Se muestra una respuesta vacía en Speech-to-Text

Si no se muestra una transcripción (p. ej., recibes una respuesta JSON {} vacía) y no se han producido errores, es probable que el audio no esté utilizando la codificación adecuada.

  1. Reproduce el archivo y escucha el sonido saliente. ¿El audio es claro y la voz inteligible?

    Para reproducir archivos, puedes utilizar el comando play de SoX (Sound eXchange). A continuación, se muestran algunos ejemplos basados en diferentes codificaciones de audio.

    Los archivos FLAC incluyen un encabezado que indica la tasa de muestreo, el tipo de codificación y el número de canales, y se pueden reproducir de la siguiente manera:

    play audio.flac

    Los archivos LINEAR16 no incluyen un encabezado. Para reproducirlos, debes especificar la tasa de muestreo, el tipo de codificación y el número de canales. La codificación LINEAR16 debe ser de 16 bits, número entero con signo y little-endian.

    play --channels=1 --bits=16 --rate=16000 --encoding=signed-integer \
    --endian=little audio.raw

    Los archivos MULAW tampoco incluyen un encabezado y, a menudo, utilizan una tasa de muestreo más baja.

    play --channels=1 --rate=8000 --encoding=u-law audio.raw

    Actualmente el servicio de Speech-to-Text solo admite un canal de audio.

  2. Verifica que la codificación de audio de tus datos coincida con los parámetros que enviaste en RecognitionConfig. Por ejemplo, si tu solicitud especificó "encoding":"FLAC" y "sampleRateHertz":16000, los parámetros de datos de audio enumerados por el comando play de SoX deben coincidir con estos parámetros, de la siguiente manera:

    play audio.flac

    debería enumerar:

    Encoding: FLAC
    Channels: 1 @ 16-bit
    Sampleratehertz: 16000Hz
    

    Si la lista de SoX muestra un Sampleratehertz distinto de 16000Hz, cambia "sampleRateHertz" en InitialRecognizeRequest para que coincida. Si Encoding no es FLAC o Channels no es 1 @ 16-bit, no puedes usar este archivo directamente y tendrás que convertirlo en una codificación compatible (consulta el siguiente paso).

  3. Si tu archivo de audio no posee codificación FLAC, intenta convertirlo en FLAC mediante SoX, y repite los pasos anteriores para reproducir el archivo y verificar la codificación, sampleRateHertz y los canales. Aquí hay algunos ejemplos que convierten varios formatos de archivos de audio en codificación FLAC.

    sox audio.wav --channels=1 --bits=16 audio.flac
    sox audio.ogg --channels=1 --bits=16 audio.flac
    sox audio.au --channels=1 --bits=16 audio.flac
    sox audio.aiff --channels=1 --bits=16 audio.flac
    

    Para convertir un archivo RAW en FLAC, debes conocer la codificación de audio del archivo. Por ejemplo, para convertir estéreo de 16 bits con signo de little-endian a 16000 Hz a FLAC, haz lo siguiente:

    sox --channels=2 --bits=16 --rate=16000 --encoding=signed-integer \
    --endian=little audio.raw --channels=1 --bits=16 audio.flac
    
  4. Ejecuta el ejemplo de la guía de inicio rápido o una de las aplicaciones de muestra con el archivo de audio de muestra suministrado. Una vez que el ejemplo se ejecute con éxito, reemplaza el archivo de audio de muestra con tu archivo de audio.

Resultados inesperados del reconocimiento de voz

Si los resultados que muestra Speech-to-Text no son los esperados, haz lo siguiente:

  • Comprueba la respuesta para los mensajes de error.
  • Observa las cuotas y límites.

  • Para mejorar la precisión del reconocimiento, sigue las pautas de las Recomendaciones.