Dans ce tuto, nous allons découvrir comment cloner une voix avec Python en utilisant la bibliothèque Text-To-Speech ou encore TTS, basée sur PyTorch.
N'hésitez pas à jeter un oeil au repository
L'objectif est de prendre un fichier audio de la voix de Cartman (de South Park) comme modèle, puis de lui faire dire ce que nous voulons. Le tout, bien sûr, en respectant l'humour et la voix unique de ce personnage emblématique.
Prérequis
Il va falloir utiliser le langage Python. En sachant que Python est le langage pour lequel il y a le plus de librairie IA aujourd'hui.
Assurez-vous que PyTorch et TTS sont installés dans votre environnement Python. Vous pouvez les installer avec les commandes suivantes :
pip install torch
pip install TTS
Préparez un fichier audio
Il vous faut un extrait audio clair de la voix de Cartman, que je vais vous fournir pour l'exemple.
sample voix de cartman - password: dev-freelance
Enregistrez ce fichier dans un répertoire local, par exemple :
./input/cartman.wav
Je vais vous le fournir
Notre code source
Tout ne tiendra qu'en peu de lignes:
import torch
from TTS.api import TTS
device = "cuda" if torch.cuda.is_available() else "cpu"
print(TTS().list_models())
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
text_sample = "Je tiens à vous dire que je vous emmerde et je rentre à ma maison."
input_wav = "./input/cartman.wav"
wav = tts.tts(text=text_sample, speaker_wav=input_wav, language="fr")
tts.tts_to_file(text=text_sample, speaker_wav=input_wav, language="fr", file_path="cm-maison.wav")
On exécute ça avec:
python3 sample.py
Et voici le résultat:
Enjoy 🥳.
Je trouve que le résultat est vraiment pas mal, en sachant qu'on peut encore faire mieux en réessayant plusieurs fois, ou en améliorant le sample en input.