Transformar texto escrito en voz natural es una de las capacidades más prácticas de la inteligencia artificial, y IBM Watson Text to Speech lo hace posible con apenas unas líneas de configuración. A continuación se explica paso a paso cómo crear el servicio, configurar las credenciales y ejecutar una petición que genere un archivo de audio a partir de cualquier texto.
¿Qué es Text to Speech y para qué sirve?
Text to Speech es una API que convierte texto en habla [0:08]. Aunque suele implementarse junto con Watson Assistant y Speech to Text para construir asistentes de voz, sus aplicaciones van mucho más allá de los chatbots. Un caso de uso muy valioso es la lectura de contenidos para personas con discapacidad visual [0:25], lo que amplía la accesibilidad de cualquier plataforma digital.
¿Cómo se crea el servicio en IBM Cloud?
El proceso es directo [0:35]:
- Ingresar al catálogo de IBM Cloud, sección de AI.
- Seleccionar Text to Speech.
- Elegir la región y el plan light (gratuito).
- Asignar un nombre al servicio y hacer clic en crear.
Una vez creado, se generan las credenciales en la sección Service Credentials del panel izquierdo [0:55]. Los datos que se necesitan son el API key, la URL y el identificador de idioma y voz.
¿Cuál es la diferencia entre voces Standard y Neural?
Watson ofrece dos tipos de voces [1:25]:
- Standard: basada en grabaciones de audio tradicionales.
- Neural: basada en redes neuronales, identificada como versión tres y con una calidad de síntesis más avanzada y natural.
Los idiomas disponibles incluyen portugués de Brasil, inglés de Estados Unidos, francés, alemán, español de Latinoamérica y español de Norteamérica. Además, cada idioma puede tener voces masculinas y femeninas [2:10].
¿Cómo consumir la API con cURL?
Dentro de los recursos del curso se incluye un archivo cURL listo para usar [2:25]. La estructura de la petición es la siguiente:
bash
curl -X POST
-u "apikey:{API_KEY}"
--header "Content-Type: application/json"
--header "Accept: audio/wav"
--data '{"text": "Hola, Padawan, es un honor poderte compartir mi conocimiento en Platzi"}'
--output hola_pad.wav
"{URL}/v1/synthesize?voice=es-LA_SofiaV3Voice"
Los puntos importantes de esta petición son:
- Se envía un POST con el API key como autenticación.
- El Content-Type indica que el cuerpo es JSON.
- El Accept solicita el formato audio/wav como respuesta.
- En el campo
text se escribe el contenido que se desea convertir en voz.
- El parámetro
voice define el idioma y la voz; en este ejemplo se usa es-LA_SofiaV3Voice, la voz neural en español latinoamericano [2:50].
- El output guarda el resultado en un archivo
.wav.
Un detalle técnico a cuidar: verificar que la URL termine con la diagonal correcta antes de la ruta del endpoint, ya que sin ella la petición falla [3:20].
¿Cómo se ejecuta y verifica el resultado?
Desde la terminal, ubicándose en la carpeta del proyecto [3:35]:
- Ejecutar el comando cURL.
- Esperar a que la petición se complete.
- Confirmar que se generó el archivo hola_pad.wav.
- Reproducir el archivo para escuchar el resultado.
El audio generado reproduce con claridad: "Hola, Padawan. Es un honor poder compartirte mi conocimiento en Platzi" [3:55]. Así de sencillo se logra la transcripción de texto a audio.
Este servicio, combinado con Speech to Text y Watson Assistant, forma un ecosistema completo de voz. La integración de los tres se simplifica con un servicio llamado Voice Agent [4:20], que permite conectar todo a un proveedor SIP e incluso recibir llamadas en plataformas como WhatsApp. ¿Qué tipo de implementación, fuera de un chatbot, se te ocurre para Text to Speech? Comparte tu idea en los comentarios.