GUIDE

Voix personnalisée dans Twilio : jouez votre propre audio de synthèse

Le verbe Say de Twilio lit du texte pendant un appel avec les voix intégrées d’Amazon Polly et de Google. C’est pratique, et c’est pourquoi votre SVI, vos rappels et votre message d’attente ressemblent à ceux de milliers d’entreprises.

Le verbe Play joue à la place n’importe quel fichier audio. Avec le moteur gratuit SuperClonica, vous vocalisez les messages hors ligne, avec une voix de base, une voix entraînée sur votre propre locuteur ou un personnage, et Twilio les joue pendant l’appel. Ce guide montre comment créer des fichiers adaptés au téléphone, les servir pour que Twilio les mette en cache, et quand Say reste le bon outil.

Say ou Play

Utilisez Play pour chaque message identique pour tous, et gardez Say pour le texte qui change à chaque appel, comme un numéro de commande.

  • Say : Twilio prononce le texte pendant l’appel avec ses voix intégrées ; rien à héberger.
  • Play : Twilio télécharge un fichier audio depuis votre URL et le joue, avec la voix de votre choix.
  • Play accepte le MP3, le WAV, l’AIFF, le GSM et le μ-law, et peut répéter un fichier jusqu’à ce que l’appelant raccroche.
  • SuperClonica parle 31 langues ; le chinois n’est pas encore pris en charge.

Écouter les voix gratuitement

Sur la page de n’importe quelle voix, saisissez l’un de vos messages, 30 à 100 caractères, choisissez la langue et cliquez sur le bouton de synthèse. En quelques secondes, vous entendez comment votre ligne pourrait sonner, sans compte.

Créer des fichiers pour le téléphone

Un WAV μ-law 8 kHz d’un message de dix secondes pèse environ 80 Ko, si bien que même un grand menu se télécharge en un instant.

  • Installez le moteur : python -m pip install superclonica-cpu.
  • En Python, créez le moteur une fois avec tts = Superclonica(), puis vocalisez un message et enregistrez-le pour le téléphone : audio, rate = tts.synthesize("Merci de votre appel. Tous nos conseillers sont occupés, veuillez patienter.", "F1", "fr"); sf.write("hold.wav", resample_poly(audio, 8000, rate), 8000, subtype="ULAW").
  • Il faut pour cela soundfile et resample_poly de scipy.signal, tous deux installés avec le moteur.
  • Twilio transcode tout l’audio des appels ; sa documentation prévient qu’un MP3 à 128 kbit/s peut sonner moins bien qu’un fichier sans perte à faible débit, ce qu’est un WAV μ-law 8 kHz.

Servir et jouer les messages

Hébergez les fichiers en HTTPS, sur votre serveur ou dans un stockage objet, avec des en-têtes ETag ou Last-Modified pour que Twilio les mette en cache après la première lecture. Avec la bibliothèque Python de Twilio, le TwiML tient en deux lignes : r = VoiceResponse(); r.play('https://example.com/audio/hold.wav', loop=0), et la valeur loop 0 répète le fichier jusqu’à la fin de l’appel. Pour du texte qui change à chaque appel, faites tourner le serveur HTTP SuperClonica à côté de votre application et vocalisez la phrase avant de répondre au webhook : une phrase courte prend bien moins d’une seconde sur un processeur de bureau, mettez donc en cache ce qui se répète.

Règles pour les appels automatisés

Aux États-Unis, la FCC a jugé en 2024 que les voix générées par IA dans les appels automatisés sont des voix artificielles au sens du TCPA : ces appels exigent donc le même consentement que tout message préenregistré. Utilisez une voix dont vous avez les droits, comme les dix voix de base du modèle ou votre propre voix entraînée sur un locuteur qui a donné son accord, jamais une voix qui imite une personne réelle, et indiquez que l’appelant parle à un système automatisé.