Voz propia en Twilio: reproduce tu propio audio de texto a voz
El verbo Say de Twilio lee texto en una llamada con las voces integradas de Amazon Polly y Google. Es cómodo, y por eso tu IVR, tus recordatorios y tu mensaje de espera suenan como los de miles de empresas.
El verbo Play reproduce en cambio cualquier archivo de audio. Con el motor gratuito SuperClonica generas los mensajes sin conexión, con una voz de serie, una voz entrenada con tu propio locutor o un personaje, y Twilio los reproduce en la llamada. Esta guía muestra cómo crear archivos aptos para teléfono, servirlos para que Twilio los guarde en caché y cuándo Say sigue siendo la mejor opción.
Say o Play
Usa Play para cada mensaje que es igual para todos, y deja Say para el texto que cambia en cada llamada, como un número de pedido.
- Say: Twilio pronuncia el texto durante la llamada con sus voces integradas; no hay nada que alojar.
- Play: Twilio descarga un archivo de audio de tu URL y lo reproduce, con la voz que quieras.
- Play acepta MP3, WAV, AIFF, GSM y μ-law, y puede repetir un archivo hasta que la persona cuelgue.
- SuperClonica habla 31 idiomas; el chino aún no está disponible.
Escucha las voces gratis
En la página de cualquier voz, escribe uno de tus mensajes, de 30 a 100 caracteres, elige el idioma y pulsa el botón para generarlo. En unos segundos oyes cómo podría sonar tu línea, sin cuenta.
Crea archivos para teléfono
Un WAV μ-law de 8 kHz de un mensaje de diez segundos pesa unos 80 KB, así que incluso un menú grande se descarga al instante.
- Instala el motor: python -m pip install superclonica-cpu.
- En Python, crea el motor una vez con tts = Superclonica(), y luego genera un mensaje y guárdalo para el teléfono: audio, rate = tts.synthesize("Gracias por llamar. Todos nuestros agentes están ocupados, por favor espere.", "F1", "es"); sf.write("hold.wav", resample_poly(audio, 8000, rate), 8000, subtype="ULAW").
- Para ello necesitas soundfile y resample_poly de scipy.signal, que se instalan con el motor.
- Twilio transcodifica todo el audio de la llamada; su documentación advierte que un MP3 de 128 kbps puede sonar peor que un archivo sin pérdida de baja tasa, y un WAV μ-law de 8 kHz lo es.
Sirve y reproduce los mensajes
Aloja los archivos por HTTPS, en tu servidor o en un almacenamiento de objetos, con cabeceras ETag o Last-Modified para que Twilio los guarde en caché tras la primera reproducción. Con la biblioteca de Python de Twilio, el TwiML son dos líneas: r = VoiceResponse(); r.play('https://example.com/audio/hold.wav', loop=0), y el valor loop 0 repite el archivo hasta que termina la llamada. Para texto que cambia en cada llamada, ejecuta el servidor HTTP de SuperClonica junto a tu app y genera la frase antes de responder al webhook: una frase corta tarda bastante menos de un segundo en un procesador de escritorio, así que guarda en caché lo que se repite.
Reglas para llamadas automáticas
En Estados Unidos, la FCC decidió en 2024 que las voces generadas por IA en llamadas automáticas cuentan como voces artificiales según la TCPA, así que esas llamadas necesitan el mismo consentimiento que cualquier mensaje pregrabado. Usa una voz sobre la que tengas derechos, como las diez voces de serie del modelo o tu propia voz entrenada con un locutor que dio su consentimiento, nunca una voz que imite a una persona real, y di que se está hablando con un sistema automático.