f5
f5 tts/F5-TTS
main 1 branche 22 balises
f f5 tts Ressources, exemples et documentation sur la synthèse vocale Fichiers du projet Historique
.githubFlux de travail et configuration du projetRépertoire
ckptsInformations sur le point de contrôle du modèleRépertoire
dataGuide des données d’entraînement localesRépertoire
srcRessources d’inférence, d’entraînement et d’exécutionRépertoire
.gitignoreConfiguration du développementFichier
.gitmodulesNotes sur le sous-module de vocodeur facultatifFichier
.pre-commit-config.yamlVérifications du formatage et de la qualité du codeFichier
DockerfileOption d’installation dans un conteneurFichier
LICENSEInformations sur la licence du codeFichier
README.mdPrésentation du projet et utilisationFichier
pyproject.tomlConfiguration du paquet PythonFichier
ruff.tomlConfiguration du formatageFichier

f5 tts : parole fluide et fidèle avec le flow matching

Accédez au service de création vocale ; l’audio n’est pas généré sur cette page.
Python3.10+ arXiv2410.06885 ProjetDémo ParoleExemples ModèleRessources CodeMIT

F5-TTS: un transformeur de diffusion utilisant ConvNeXt V2 pour la recherche sur la synthèse vocale.

E2 TTS: un transformeur Flat-UNet étudié parallèlement à l’approche F5-TTS.

Sway Sampling: une stratégie d’échantillonnage des étapes de flux lors de l’inférence.

Merci à toutes les personnes qui ont contribué !

Actualités

  • 2025/03/12: Un modèle de base F5-TTS v1 plus récent a apporté des améliorations à l’entraînement et à l’inférence. Explorer l’inférence.
  • 2024/10/08: Des ressources pour les modèles de base F5-TTS et E2 TTS ont été publiées à l’intention de la communauté scientifique. Voir l’installation.

Installation

Créez un environnement distinct si nécessaire

# Create a conda environment with Python 3.10 or newer
conda create -n f5-tts python=3.11
conda activate f5-tts

# Install FFmpeg if needed
conda install ffmpeg

Installez PyTorch avec la prise en charge du matériel adapté

GPU NVIDIA
# Select a PyTorch build matched to your CUDA version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu128
GPU AMD
# Select a PyTorch build matched to your ROCm version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/rocm7.2
GPU Intel
# Check the current PyTorch XPU installation guidance
pip install torch torchaudio --index-url https://download.pytorch.org/whl/test/xpu
Apple Silicon
pip install torch torchaudio

Choisissez ensuite l’une des options ci-dessous :

1. En tant que paquet pip (si c’est uniquement pour l’inférence)

pip install f5-tts

2. Installation locale modifiable (si vous faites également de l’entraînement ou du fine-tuning)

git clone https://github.com/SWivid/F5-TTS.git
cd F5-TTS
# Optional when using BigVGAN as a vocoder:
# git submodule update --init --recursive
pip install -e .

L’utilisation avec Docker est également disponible

# Build from the Dockerfile
docker build -t f5tts:v1 .

# Run the published container with a GPU
docker container run --rm -it --gpus=all -p 7860:7860 ghcr.io/swivid/f5-tts:main

# Launch its web interface
docker container run --rm -it --gpus=all -p 7860:7860 ghcr.io/swivid/f5-tts:main f5-tts_infer-gradio --host 0.0.0.0

Exécution

Le projet documente également le déploiement avec Triton et TensorRT-LLM.

Résultats des benchmarks

Le benchmark publié décrit le décodage sur un seul GPU L20 avec 26 paires audio d’invite et de texte cible à 16 NFE.

ModèleConcurrenceLatence moyenneRTFMode
F5-TTS Base (Vocos)2253 ms0.0394Client-serveur
F5-TTS Base (Vocos)1 (taille du lot)—0.0402TRT-LLM hors ligne
F5-TTS Base (Vocos)1 (taille du lot)—0.1467PyTorch hors ligne

Consultez la documentation du projet sur l’exécution pour obtenir des détails sur le benchmark et les conditions de configuration.

Inférence

  • Lisez les instructions d’inférence avant d’évaluer les performances du modèle.
  • Recherchez dans les discussions existantes du projet lorsque vous tentez de résoudre un problème spécifique.

1. Application Gradio

Les fonctionnalités documentées incluent :

  • TTS de base avec inférence par segments
  • Génération multi-style et multi-locuteur
  • Conversation vocale avec Qwen2.5-3B-Instruct
  • Inférence personnalisée avec prise en charge de langues supplémentaires
# Launch the Gradio web interface
f5-tts_infer-gradio

# Specify a port and host
f5-tts_infer-gradio --port 7860 --host 0.0.0.0

# Request a share link
f5-tts_infer-gradio --share
Exemple de fichier Docker Compose pour les appareils NVIDIA
services:
  f5-tts:
    image: ghcr.io/swivid/f5-tts:main
    ports:
      - "7860:7860"
    environment:
      GRADIO_SERVER_PORT: 7860

2. Inférence CLI

# Run with a reference recording and a new text prompt
f5-tts_infer-cli --model F5TTS_v1_Base \
--ref_audio "provide_prompt_wav_path_here.wav" \
--ref_text "The words spoken in the reference audio." \
--gen_text "The words to generate."

# Run with the project's default settings
f5-tts_infer-cli

# Or provide your own TOML settings
f5-tts_infer-cli -c custom.toml

# A multi-voice example
f5-tts_infer-cli -c src/f5_tts/infer/examples/multi/story.toml

Entraînement

1. Avec Hugging Face Accelerate

Consultez les recommandations du projet concernant l’entraînement et l’affinage pour connaître les pratiques recommandées.

2. Avec l’application Gradio

# Start the finetuning web interface
f5-tts_finetune-gradio

Consultez les instructions d’entraînement pour la configuration et les indications relatives aux jeux de données.

Évaluation

Développement

Pre-commit peut exécuter les formateurs et les contrôles qualité du projet :

pip install pre-commit
pre-commit install

Avant de soumettre des modifications, exécutez les contrôles sur l’ensemble des fichiers :

pre-commit run --all-files

Certains composants du modèle bénéficient d’exceptions de linting pour la notation des tenseurs.

Remerciements

  • E2-TTS pour ses travaux de recherche connexes sur le flow matching
  • Les jeux de données Emilia, WenetSpeech4TTS, LibriTTS et LJSpeech
  • Lucidrains et ses collaborateurs pour les premières structures CFM et les discussions
  • Stable Diffusion 3 et Hugging Face Diffusers pour les références de code des transformeurs
  • Torchdiffeq, Vocos et BigVGAN pour les travaux sur les solveurs et les vocodeurs
  • FunASR, faster-whisper, UniSpeech et SpeechMOS pour les outils d’évaluation
  • Aligneur forcé CTC pour l’évaluation de l’édition vocale
  • Membres de la communauté ayant créé des démonstrations vocales
  • L’implémentation MLX et ses mainteneurs
  • L’implémentation ONNX Runtime et ses mainteneurs
  • Contributeurs à la prise en charge de Triton et TensorRT-LLM

Citation

Si la recherche et la base de code vous sont utiles, veuillez citer l’article original :

@article{chen-etal-2024-f5tts,
  title={F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching},
  author={Yushen Chen and Zhikang Niu and Ziyang Ma and Keqi Deng
          and Chunhui Wang and Jian Zhao and Kai Yu and Xie Chen},
  journal={arXiv preprint arXiv:2410.06885},
  year={2024}
}

Licence

Le code du projet original est publié sous licence MIT. Ses modèles préentraînés sont soumis à une licence CC-BY-NC distincte, associée à leurs données d’entraînement. Consultez les conditions du projet original avant d’utiliser l’un ou l’autre dans vos propres travaux.

Générer de la parole
Générer de la parole