Je clone la voix de Cartman avec Python, PyTorch et TTS

Je clone la voix de Cartman avec Python, PyTorch et TTS
Alexandre P. dans Dev - mis à jour le 07-12-2024

On va apprendre à utiliser Text-To-Speech en Python pour cloner une voix. Ceci est un exemple avec les samples et le résultat pour que vous puissiez voir à quel point les outils IA d'aujourd'hui sont puissants.

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.

#ia#python#tts#pytorch

user picture

Alexandre P.

Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.


Nous utilisons des cookies sur ce site pour améliorer votre expérience d'utilisateur.