Transcribir voz a texto con la API

En esta página se explica cómo enviar una solicitud de reconocimiento de voz a Speech-to-Text mediante la interfaz REST y el comando curl.

Speech-to-Text permite integrar de forma sencilla las tecnologías de reconocimiento de voz de Google en las aplicaciones de desarrolladores. Puedes enviar datos de audio a la API Speech-to-Text, que devuelve una transcripción de texto de ese archivo de audio. Para obtener más información sobre el servicio, consulta el artículo Conceptos básicos de Speech-to-Text.

Antes de empezar

Antes de enviar una solicitud a la API Speech-to-Text, debes haber completado las siguientes acciones. Consulta la página Antes de empezar para obtener más información.

  • Habilita Speech-to-Text en un proyecto de GCP.
    1. Asegúrate de que la facturación esté habilitada en Speech-to-Text.
  • Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

    gcloud init

    Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  • (Opcional) Crea un segmento de Google Cloud Storage para almacenar tus datos de audio.

Hacer una solicitud de transcripción de audio

Ahora puedes usar Speech-to-Text para transcribir un archivo de audio a texto. Usa el siguiente código de ejemplo para enviar una solicitud REST recognize a la API Speech-to-Text.

  1. Crea un archivo de solicitud JSON con el siguiente texto y guárdalo como archivo de texto sin formato sync-request.json:

    {
      "config": {
          "encoding":"FLAC",
          "sampleRateHertz": 16000,
          "languageCode": "en-US",
          "enableWordTimeOffsets": false
      },
      "audio": {
          "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
      }
    }
      

    Este fragmento de código JSON indica que el archivo de audio tiene un formato de codificación FLAC, una frecuencia de muestreo de 16.000 Hz y que el archivo de audio está almacenado en Google Cloud Storage en el URI indicado. El archivo de audio es de acceso público, por lo que no necesitas credenciales de autenticación para acceder a él.

  2. Usa curl para hacer una solicitud speech:recognize y pásale el nombre del archivo de la solicitud JSON que configuraste en el paso 1:

    El comando curl de ejemplo usa el comando gcloud auth print-access-token para obtener un token de autenticación.

    curl -s -H "Content-Type: application/json" \
        -H "Authorization: Bearer "$(gcloud auth print-access-token) \
        https://speech.googleapis.com/v1/speech:recognize \
        -d @sync-request.json
      

    Ten en cuenta que, para pasar un nombre de archivo a curl, debes usar la opción -d (para "datos") y preceder el nombre de archivo con el signo @. Este archivo debe estar en el mismo directorio en el que ejecutes el comando curl.

    Deberías ver una respuesta similar a la siguiente:

    {
      "results": [
        {
          "alternatives": [
            {
              "transcript": "how old is the Brooklyn Bridge",
              "confidence": 0.98267895
            }
          ]
        }
      ]
    }
      

¡Enhorabuena! Has enviado tu primera solicitud a Speech-to-Text.

Si recibes un error o una respuesta vacía de Speech-to-Text, consulta los pasos para solucionar problemas y mitigar errores.

Limpieza

Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

Siguientes pasos