Créer une appli web de synthèse vocale avec Gradio
Une petite page où l’on tape un texte et l’entend avec une voix naturelle, c’est un premier projet d’IA classique, un outil interne pratique et une bonne démo produit. Gradio transforme une fonction Python en une telle page en quelques lignes, et le moteur gratuit SuperClonica fournit la voix sur un processeur ordinaire.
Ce guide montre l’appli minimale, comment ajouter des voix et des réglages, et comment l’héberger gratuitement ; notre propre démo sur Hugging Face Spaces est construite exactement ainsi.
Ce que vous construisez
Tout tourne dans votre processus Python : les textes ne sont envoyés à aucun service de synthèse.
- Une zone de texte, un choix de voix et un lecteur avec bouton de téléchargement.
- Dix voix de base et toute voix du catalogue que vous possédez.
- Tourne sur un portable, un serveur ou un CPU gratuit dans le cloud.
- Ni carte graphique ni API payante.
Écouter d’abord les voix
Avant de coder, écoutez les voix sur leurs pages : saisissez une réplique de 30 à 100 caractères, choisissez la langue et cliquez sur le bouton de synthèse. En quelques secondes, vous savez quelles voix proposer dans votre appli.
L’appli minimale
La sortie Audio de Gradio prend une paire fréquence d’échantillonnage et tableau audio, renvoyez donc (rate, audio), dans cet ordre.
- Installez les deux paquets : python -m pip install superclonica-cpu gradio.
- Écrivez l’appli : import gradio as gr; from superclonica import Superclonica; tts = Superclonica(); def speak(text, voice): audio, rate = tts.synthesize(text, voice=voice, lang="fr"); return (rate, audio) — puis gr.Interface(fn=speak, inputs=[gr.Textbox(label="Text"), gr.Dropdown(["F1", "F2", "M1", "M2"], label="Voice")], outputs=gr.Audio()).launch().
- Lancez le fichier avec Python et ouvrez l’adresse locale qu’affiche Gradio.
- Au premier lancement, le modèle Supertonic 3 est téléchargé, environ 385 Mo ; ensuite, il démarre en quelques secondes.
Voix, vitesse et utilisateurs multiples
Ajoutez des voix du catalogue en passant le chemin d’un fichier de voix au lieu de F1 ou F2, et proposez une liste de langues avec les codes des 31 langues prises en charge. La vitesse se règle sur le moteur, par exemple tts.speed = 1.1, de 0.7 à 2.0. Créez le moteur une fois en haut du fichier, et quand plusieurs personnes utilisent l’appli en même temps, entourez l’appel d’un threading lock pour que les requêtes passent chacune leur tour.
L’héberger gratuitement
Hugging Face Spaces fait tourner les applis Gradio sur du CPU gratuit : placez le fichier dans un Space sous le nom app.py avec un requirements.txt qui liste superclonica-cpu, et le Space le construit. Notre propre démo SuperClonica tourne ainsi sur deux cœurs de CPU partagés. Limitez la longueur du texte dans une appli publique et ne proposez que des voix que vous avez le droit de partager : les voix de base sont gratuites sous la licence du modèle, tandis que les voix achetées au catalogue sont destinées à vos propres projets.