
đ Aperçu du Projet
Le script cv6.py implĂ©mente une application de clonage de voix basĂ©e sur la librairie TTS de Coqui, utilisant spĂ©cifiquement le modĂšle XTTS-v2 pour la synthĂšse vocale multilingue. L’application est construite avec Tkinter pour fournir une interface utilisateur graphique (GUI) conviviale, permettant de gĂ©nĂ©rer de l’audio Ă partir d’un fichier texte et d’un Ă©chantillon vocal de rĂ©fĂ©rence.
Elle inclut des fonctionnalitĂ©s avancĂ©es comme la gestion de la configuration, le multithreading pour la gĂ©nĂ©ration audio, l’utilisation optionnelle du GPU (CUDA), et le traitement audio (rééchantillonnage, ajout de silence, normalisation). La langue cible est fixĂ©e au Français (fr).
âïž PrĂ©requis et Configuration
1. Environnement
Ce script nécessite Python 3.x et plusieurs librairies.
2. Installation des Librairies
Tu dois installer les dépendances suivantes dans ton environnement Python :
Note importante : Le paquet
TTS(ettorch) est lourd et peut prendre du temps Ă tĂ©lĂ©charger, car il inclut le modĂšle XTTS-v2 qui sera tĂ©lĂ©chargĂ© lors de la premiĂšre utilisation. Si tu souhaites utiliser le GPU, assure-toi d’avoir la version detorchcompatible avec ton installation CUDA.
3. Fichier de Configuration
Le programme crĂ©e et utilise automatiquement un fichier de configuration nommĂ© xtts_config.ini pour sauvegarder les chemins de fichiers et les rĂ©glages de l’interface (comme l’utilisation du GPU et la gĂ©omĂ©trie de la fenĂȘtre).
đ Utilisation de l’Application (GUI)
Le script est exécuté comme une application autonome :
L’interface utilisateur permet de rĂ©aliser les Ă©tapes suivantes :
- Fichier texte (.txt) :
- Clique sur « Parcourir » pour sélectionner un fichier texte (
.txt) contenant le script Ă lire. - Chaque phrase se terminant par un point (
.), un point d’interrogation (?) ou un point d’exclamation (!) sera traitĂ©e individuellement.
- Clique sur « Parcourir » pour sélectionner un fichier texte (
- Fichier WAV référence :
- Clique sur « Parcourir » pour sélectionner un fichier audio WAV (
.wav) de la voix que tu souhaites cloner. - Recommandation : La durĂ©e de l’Ă©chantillon doit idĂ©alement ĂȘtre comprise entre 3 et 120 secondes. Le fichier sera rééchantillonnĂ© automatiquement Ă 24000 Hz si nĂ©cessaire.
- Clique sur « Parcourir » pour sélectionner un fichier audio WAV (
- Fichier de sortie (.wav) :
- Spécifie le nom du fichier de sortie (
.wav). - Clique sur « Choisir » pour spécifier un emplacement et un nom de fichier différents.
- Spécifie le nom du fichier de sortie (
- Options Avancées :
- Utiliser GPU (CUDA) : Coche cette case pour utiliser le GPU pour la génération, si
torchdétecte une carte compatible. Ceci accélÚre considérablement la génération. - Silence entre phrases (ms) : RÚgle la durée du silence ajouté entre chaque phrase générée (valeur par défaut : 300 ms).
- Utiliser GPU (CUDA) : Coche cette case pour utiliser le GPU pour la génération, si
- Actions :
- « Générer audio » : Démarre le processus de clonage de voix dans un thread séparé.
- « STOP » : Permet d’annuler une gĂ©nĂ©ration en cours.
- « ⶠĂcouter le rĂ©sultat » : Lance la lecture du fichier de sortie gĂ©nĂ©rĂ© (nĂ©cessite la librairie
simpleaudio).
𧱠Structure du Code et Composants Clés
1. Variables Globales
| Variable | Description | Valeur par Défaut |
MODEL_NAME | Chemin du modĂšle XTTS-v2 Ă utiliser. | "tts_models/multilingual/multi-dataset/xtts_v2" |
SPEAKER_SAMPLE_RATE | FrĂ©quence d’Ă©chantillonnage cible pour la voix de rĂ©fĂ©rence et la sortie. | 24000 Hz |
MIN_REF_DURATION | Durée minimale recommandée pour le fichier de référence. | 3.0 s |
GPU_AVAILABLE | Vérifie si CUDA (GPU) est disponible. | torch.cuda.is_available() |
2. Fonctions de Génération (Logique Métier)
start_generation_thread: Lance la tĂąche de gĂ©nĂ©ration dans un thread sĂ©parĂ© pour Ă©viter de bloquer l’interface.stop_generation: Permet l’annulation de la tĂąche via un flag (self.stop_flag).generate_audio_task:- Initialise et charge le modĂšle XTTS (une seule fois).
- Rééchantillonne le fichier de référence à 24000 Hz si sa fréquence est différente.
- Divise le fichier texte en phrases distinctes.
- GĂ©nĂšre l’audio phrase par phrase, en les concatĂ©nant avec des segments de silence. La langue est fixĂ©e Ă Français (
language="fr"). - Normalise le volume du fichier audio final avant l’exportation.
- Fournit une estimation du temps restant et met Ă jour la progression dans la GUI.
_cleanup_on_finish: Supprime le dossier temporaire (./temp_tts_files) une fois la tùche terminée ou annulée.
đĄ Conseils d’ImplĂ©mentation et Outils
1. Amélioration de la Qualité
- Qualité de la référence : Le succÚs du clonage dépend fortement de la qualité (pas de bruit de fond, pas de musique) et de la cohérence de la voix dans le fichier WAV de référence.
- RĂ©vision du texte : Assure-toi que le fichier texte est correctement ponctuĂ©. La division des phrases par l’expression rĂ©guliĂšre dĂ©pend des signes de ponctuation.
2. Conversion MP3 vers WAV (24000 Hz, Mono)
Pour garantir un format idĂ©al pour le fichier de rĂ©fĂ©rence, tu peux utiliser FFmpeg pour convertir des fichiers MP3 (ou autres) vers un fichier WAV mono avec un taux d’Ă©chantillonnage de 24000 Hz.
Commande FFmpeg :
| Option | Description |
-i input_reference.mp3 | SpĂ©cifie le fichier d’entrĂ©e (ton fichier MP3). |
-ac 1 | Force le nombre de canaux audio Ă 1 (canal mono). |
-ar 24000 | Force le taux d’Ă©chantillonnage (sample rate) Ă 24000 Hz. |
output_reference_24k_mono.wav | Spécifie le fichier de sortie au format WAV. |
0 commentaire