La API de Cloud Speech te permite realizar una transcripción de voz a texto de archivos de audio en más de 80 idiomas.
En este lab, grabaremos un archivo de audio y lo enviaremos a la API de Cloud Speech para su transcripción.
Qué aprenderás
- Cómo crear una solicitud a la API de Speech y llamar a la API con curl
- Cómo llamar a la API de Speech con archivos de audio en diferentes idiomas
Requisitos
¿Cómo usarás este instructivo?
¿Cómo calificarías tu experiencia con Google Cloud Platform?
Configuración del entorno de autoaprendizaje
Si aún no tienes una Cuenta de Google (Gmail o Google Apps), debes crear una. Accede a Google Cloud Platform Console (console.cloud.google.com) y crea un proyecto nuevo:
Recuerde el ID de proyecto, un nombre único en todos los proyectos de Google Cloud (el nombre anterior ya se encuentra en uso y no lo podrá usar). Se mencionará más adelante en este codelab como PROJECT_ID
.
A continuación, deberás habilitar la facturación en la consola de Cloud para usar los recursos de Google Cloud.
Ejecutar este codelab debería costar solo unos pocos dólares, pero su costo podría aumentar si decides usar más recursos o si los dejas en ejecución (consulta la sección “Limpiar” al final de este documento).
Los usuarios nuevos de Google Cloud Platform son aptos para obtener una prueba gratuita de USD 300.
Haz clic en el ícono de menú ubicado en la parte superior izquierda de la pantalla.
Selecciona el panel de APIs y servicios en el menú desplegable.
Haz clic en Habilitar APIs y servicios.
Luego, escribe "speech" en el cuadro de búsqueda. Haz clic en API de Google Cloud Speech:
Haz clic en Habilitar para habilitar la API de Cloud Speech:
Espera unos segundos para que se habilite. Verás este mensaje cuando se habilite:
Google Cloud Shell es un entorno de línea de comandos que se ejecuta en la nube. Esta máquina virtual basada en Debian está cargada con todas las herramientas de desarrollo que necesitarás (gcloud
, bq
, git
y otras) y ofrece un directorio principal persistente de 5 GB. Usaremos Cloud Shell para crear nuestra solicitud a la API de Speech.
Para comenzar a usar Cloud Shell, haz clic en el ícono "Activar Google Cloud Shell" en la esquina superior derecha de la barra de encabezado.
Se abrirá una sesión de Cloud Shell en un marco nuevo en la parte inferior de la consola, que mostrará una línea de comandos. Espera hasta que aparezca el mensaje user@project:~$
Dado que usarás curl
curl para enviar una solicitud a la API de Speech, tendrás que generar una clave de API a fin de pasar la URL de nuestra solicitud. Para crear una clave de API, navega a la sección APIs y servicios > Credenciales del panel de tu proyecto:
Luego, haga clic en Crear credenciales:
En el menú desplegable, selecciona Clave de API:
A continuación, copia la clave que acabas de generar y selecciona Cerrar (no restrinjas la clave).
Ahora que tienes una clave de API, guárdala en una variable de entorno para no tener que ingresar el valor de la clave de API en cada solicitud. Puedes hacer esto en Cloud Shell. Asegúrate de reemplazar <your_api_key>
por la clave que acabas de copiar.
export API_KEY=<YOUR_API_KEY>
Puedes compilar tu solicitud para la API de Speech en un archivo request.json
. Para crear y editar este archivo, puedes usar uno de tus editores de línea de comandos preferidos (nano, vim, emacs) o el editor web integrado en Cloud Shell:
Crea el archivo en tu directorio principal para poder hacer referencia a él fácilmente y agrega lo siguiente a tu archivo request.json
:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
El cuerpo de la solicitud tiene un objeto config
y audio
. En config
, le indicamos a la API de Speech cómo procesar la solicitud. El parámetro encoding
le indica a la API qué tipo de codificación de audio usas para el archivo de audio que envías a la API. FLAC
es el tipo de codificación para archivos sin procesar (consulta la documentación a fin de obtener más detalles sobre el tipo de codificación). Hay otros parámetros que puedes agregar a tu objeto config
, pero encoding
es el único obligatorio. languageCode
estará configurado de forma predeterminada en inglés si se excluye de la solicitud.
En el objeto audio
, puedes pasar la API al URI de nuestro archivo de audio en Cloud Storage o al audio codificado en Base64 como una cadena. Aquí se usaban URLs de Cloud Storage. El siguiente paso es llamar a la API de Speech.
Ahora puedes pasar el cuerpo de tu solicitud, junto con la variable de entorno de la clave de API que guardaste anteriormente, a la API de Speech con el siguiente comando curl
(todo en una sola línea de comandos):
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
La respuesta que muestra este comando curl
debería ser similar a la siguiente:
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
El valor transcript
mostrará la transcripción de texto que la API de Speech realizó del archivo de audio, mientras que el valor confidence
indicará qué tan segura está la API de haber transcrito el audio de forma correcta.
Notarás que llamamos al método recognize
en nuestra solicitud anterior. La API de Speech es compatible con la transcripción de voz a texto síncrona y asíncrona. En este ejemplo, enviamos un archivo de audio completo, pero también puedes utilizar el método longrunningrecognize
para realizar una transcripción de voz a texto a partir de una transmisión de audio, mientras el usuario aún está hablando.
¿Habla varios idiomas? La API de Speech admite la transcripción de voz a texto en más de 100 idiomas. Puedes cambiar el parámetro languageCode
en request.json
. Puedes encontrar una lista de los idiomas admitidos aquí.
Probemos con un archivo de audio en francés (escúchalo aquí si deseas obtener una vista previa). Cambia tu request.json a lo siguiente:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
Deberías ver la siguiente respuesta:
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
Esta es una oración de un popular cuento infantil francés. Si tienes archivos de audio en otro idioma, puedes intentar agregarlos a Cloud Storage y cambiar el parámetro languageCode
de la solicitud.
Aprendió a realizar una transcripción de voz a texto con la API de Speech. En este ejemplo, pasaste a la API el URI del archivo de audio de Google Cloud Storage. De forma alternativa, puede pasar una string codificada en formato base64 del contenido de audio.
Temas abordados
- Cómo pasar a la API de Speech el URI de un archivo de audio de Google Cloud Storage
- Cómo crear una solicitud a la API de Speech y llamar a la API con curl
- Cómo llamar a la API de Speech con archivos de audio en diferentes idiomas
Próximos pasos
- Consulta los instructivos de la API de Speech en la documentación.
- Prueba la API de Vision y la API de Natural Language.