Voix Supertonic 3 : où trouver des voix personnalisées et comment les utiliser
Supertonic 3 est un petit modèle ouvert de synthèse vocale qui tourne sur un ordinateur ordinaire. Il est livré avec dix voix prédéfinies, et toute autre voix est un seul petit fichier que vous ajoutez vous-même. Avec ce fichier, la parole dans n’importe laquelle des 31 langues du modèle est générée hors ligne, sur votre propre processeur ou GPU.
Ce guide explique ce qu’est une voix Supertonic 3, d’où viennent les voix personnalisées depuis que le projet Supertonic d’origine est archivé, et comment utiliser une voix avec le code officiel, avec le moteur SuperClonica et avec Docker. SuperClonica vend et entraîne de telles voix, nous indiquons donc où il s’agit de notre offre.
Ce qu’est une voix Supertonic 3
Une voix Supertonic 3 est un style de voix : un fichier JSON d’environ 0,3 Mo qui contient deux petits ensembles de nombres. L’un façonne le timbre et la manière de parler, l’autre le rythme et les pauses. Le modèle lui-même, environ 385 Mo de fichiers ONNX, est le même pour toutes les voix et se télécharge une seule fois.
Comme la voix est séparée du modèle, en changer ne coûte rien : la même installation parle avec n’importe quel fichier de voix que vous lui donnez. Une voix fonctionne aussi dans toutes les langues du modèle, de l’anglais, de l’espagnol et de l’allemand au russe, au japonais, au coréen, à l’arabe et au hindi. Elle sonne le plus naturellement dans la langue de l’enregistrement dont elle est issue. Le chinois ne fait pas partie des 31 langues.
Où trouver des voix Supertonic 3
Les dix voix prédéfinies, de M1 à M5 et de F1 à F5, sont fournies avec le modèle. Pour toutes les autres, il existe plusieurs sources.
- Des voix gratuites sur GitHub : le dépôt superclonica/supertonic-voices propose des fichiers de voix gratuits avec des extraits audio en neuf langues.
- Le catalogue SuperClonica : plus de 170 voix, dont des personnages de jeux et de dessins animés, des narrateurs, des voix d’hommes, de femmes et d’enfants. Chaque page de voix propose des démos et vous permet de faire dire gratuitement en ligne une courte phrase ; les voix gratuites se téléchargent sans compte, les voix payantes s’achètent une fois.
- Une voix sur commande : sur la page des commandes, vous décrivez la voix et joignez un enregistrement, et un auteur l’entraîne pour vous.
- Votre propre voix : SuperClonica entraîne gratuitement une voix à partir d’un court enregistrement propre sur votre propre GPU NVIDIA, avec notre programme worker.
- Voice Builder, l’ancien service de Supertone pour les voix personnalisées, ne fait pas partie du projet archivé : on ne peut donc plus y créer de nouvelles voix.
Utiliser une voix avec le code officiel de Supertonic
Le dépôt archivé de Supertonic fonctionne toujours. Clonez-le, créez un environnement virtuel Python 3.11, installez huggingface_hub et téléchargez le modèle dans le dossier assets avec hf download supertone-oss-archive/supertonic-3 --local-dir assets (le démarrage rapide du projet fixe la révision exacte). Installez ensuite les paquets de py/requirements.txt.
Pour parler avec une voix personnalisée, lancez le script d’exemple depuis le dossier py en lui passant le fichier de voix : python example_onnx.py --voice-style ./voice.json --text "Votre texte" --lang fr --n-test 1. Le fichier WAV apparaît dans le dossier results. Pour une autre langue, changez --lang, par exemple en en ou ja.
Utiliser une voix avec le moteur SuperClonica
SuperClonica est notre moteur basé sur Supertonic 3. Il lit les mêmes fichiers de voix sans conversion, est en moyenne 61 % plus rapide sur processeur et 73 % plus rapide sur carte graphique selon nos mesures, supprime le souffle du modèle entre les mots et prononce les nombres en toutes lettres.
Installez un seul paquet : python -m pip install superclonica-cpu, ou superclonica-gpu-cuda pour un GPU NVIDIA. En Python, créez le moteur une fois et appelez tts.synthesize("Bonjour !", voice="voice.json", lang="fr", seed=7), puis tts.save("hello.wav", audio). En ligne de commande : superclonica --text "Bonjour !" --voice voice.json --lang fr --output hello.wav. Le modèle de base se télécharge au premier lancement.
Utiliser une voix dans Docker
L’image superclonica/superclonica sur Docker Hub fait tourner le moteur comme serveur HTTP : docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu, ou l’étiquette cuda avec --gpus all sur un GPU NVIDIA.
Une requête POST /synthesize transmet le texte, la langue et la voix : le contenu du JSON de la voix va directement dans la requête. Comme une voix pèse environ 0,3 Mo, préparez la requête dans un fichier et envoyez-la avec curl -d @request.json. La réponse est un fichier WAV 16 bits.
Conseils pour de bons résultats
Quelques habitudes permettent à une voix de sonner au mieux.
- Indiquez la langue du texte, pas celle de la voix : une voix russe lit un texte anglais avec lang=en.
- Fixez une graine (seed) quand une prise vous plaît : le même texte, la même voix et la même graine redonnent le même audio.
- Avec le code officiel, écrivez les nombres, les dates et les abréviations comme ils doivent sonner ; le moteur SuperClonica prononce lui-même les nombres en toutes lettres.
- Découpez les longs textes en paragraphes. Le moteur SuperClonica le fait tout seul et lit les longs textes par petits morceaux, ce qui évite que des mots soient répétés ou coupés.
- Écoutez les démos avant d’acheter : une voix garde le caractère de son enregistrement, accent compris.
Voix de personnes réelles et règles du modèle
Certaines voix du catalogue s’inspirent de personnes connues. Ce ne sont pas leurs vraies voix, et ces personnes n’y ont pas participé : ne présentez donc pas un tel audio comme leurs vraies paroles.
Supertonic 3 est publié sous la licence BigScience Open RAIL-M, et ses restrictions d’usage s’appliquent à toute voix : n’utilisez pas la parole pour vous faire passer pour quelqu’un sans son accord, pour tromper ou harceler, et signalez que l’audio est généré par une machine quand cela compte.