Synthèse vocale en React Native : des voix du système à votre propre serveur
Une app React Native peut parler de trois façons : avec les voix du téléphone, avec des fichiers audio préparés à l’avance, ou avec un serveur qui vocalise un nouveau texte à la demande. Les voix du téléphone sont gratuites et hors ligne mais sonnent différemment sur chaque appareil ; les deux autres donnent à votre app une voix reconnaissable.
SuperClonica propose des voix naturelles en 31 langues à essayer gratuitement en ligne, un moteur gratuit pour vocaliser les phrases de l’app sur votre ordinateur et un serveur Docker pour le texte qui change. Ce guide montre chaque approche en React Native et Expo.
Trois façons de faire parler une app
SuperClonica parle 31 langues ; le chinois n’est pas encore pris en charge, une interface en chinois a donc besoin d’une autre voix.
- expo-speech ou react-native-tts : les voix installées sur le téléphone, gratuites et hors ligne, différentes sur chaque appareil, et incapables d’enregistrer l’audio.
- Des fichiers prêts : chaque phrase fixe vocalisée une fois avec SuperClonica et livrée avec l’app.
- Un serveur vocal : l’app envoie le texte à votre serveur SuperClonica et lit la réponse.
- La plupart des apps les combinent : fichiers pour les phrases fixes, serveur pour le texte des utilisateurs, voix du système en secours.
Choisir une voix gratuitement
Sur la page de n’importe quelle voix, saisissez une phrase de votre app, de 30 à 100 caractères, choisissez la langue et cliquez sur le bouton de synthèse. En quelques secondes, vous savez si elle convient, sans compte et même depuis le téléphone.
Des phrases prêtes avec expo-audio
Nommez les fichiers selon la clé que vous utilisez déjà pour les traductions, chaque langue aura les mêmes noms dans son dossier.
- Installez le moteur gratuit sur votre ordinateur : python -m pip install superclonica-cpu.
- Vocalisez chaque phrase : superclonica --text "Bon retour parmi nous !" --voice F1 --lang fr --output assets/voice/welcome.mp3.
- Lisez-la avec expo-audio : const player = useAudioPlayer(require('./assets/voice/welcome.mp3')); player.play();
- Les fichiers fonctionnent hors ligne et sans délai ; en MP3, une phrase pèse quelques dizaines de kilo-octets.
Un serveur vocal pour le texte des utilisateurs
Pour le texte qui change, comme des messages de chat, des notes ou un tuteur qui répond, faites tourner le serveur sur une machine que vous contrôlez : docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. Placez-le derrière HTTPS et définissez SUPERCLONICA_API_KEY pour que seule votre app puisse l’appeler. L’app envoie un JSON avec text, voice et lang à /synthesize et reçoit un WAV ; enregistrez-le dans un fichier avec votre bibliothèque de fichiers et donnez-le au lecteur. Mettez en cache les réponses des textes qui reviennent : même texte, même voix et même graine donnent toujours le même fichier.
Quand la voix du système suffit
La voix du système suffit quand il faut seulement être compris : lire une notification, une aide d’accessibilité ou un prototype qui doit fonctionner sans réseau. Choisissez votre propre voix quand elle fait partie du produit, comme un tuteur, un personnage de jeu ou une méditation guidée. Pour une app publiée, utilisez les dix voix de base, de M1 à M5 et de F1 à F5, gratuites sous la licence OpenRAIL-M, ou votre propre voix entraînée dans le studio SuperClonica ; les voix de personnages faites par des fans ne conviennent pas aux apps des stores.