F5 TTS: Flüssige, originalgetreue Sprache mit Flow Matching
F5 TTS: Ein Diffusionstransformer, der ConvNeXt V2 für die Text-to-Speech-Forschung verwendet.
E2 TTS: Ein Flat-UNet-Transformer, der parallel zum F5-TTS-Ansatz untersucht wurde.
Sway Sampling: Eine Flow-Step-Sampling-Strategie zur Inferenzzeit.
Vielen Dank an alle Mitwirkenden!
Neuigkeiten
- 2025/03/12: Ein neueres F5 TTS v1-Basismodell führte Aktualisierungen für Training und Inferenz ein. Inferenz erkunden.
- 2024/10/08: Ressourcen zu den F5 TTS- und E2-TTS-Basismodellen wurden für die Forschungsgemeinschaft veröffentlicht. Installation ansehen.
Installation
Erstelle bei Bedarf eine separate Umgebung
# 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
Installiere PyTorch mit dem passenden Gerät
NVIDIA-GPU
# Select a PyTorch build matched to your CUDA version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu128AMD-GPU
# Select a PyTorch build matched to your ROCm version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/rocm7.2Intel-GPU
# Check the current PyTorch XPU installation guidance
pip install torch torchaudio --index-url https://download.pytorch.org/whl/test/xpuApple Silicon
pip install torch torchaudio
Dann kannst du eines der folgenden auswählen:
1. Als pip-Paket (wenn nur für die Inferenz)
pip install f5-tts2. Lokal editierbar (wenn auch Training oder Finetuning durchgeführt werden soll)
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 .
Docker-Nutzung ebenfalls verfügbar
# 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
Laufzeit
Das Projekt dokumentiert außerdem die Bereitstellung mit Triton und TensorRT-LLM.
Benchmark-Ergebnisse
Der veröffentlichte Benchmark beschreibt die Dekodierung auf einer einzelnen L20-GPU über 26 Paare aus Prompt-Audio und Zieltext bei 16 NFE.
| Modell | Parallelität | Durchschn. Latenz | RTF | Modus |
|---|---|---|---|---|
| F5 TTS Base (Vocos) | 2 | 253 ms | 0.0394 | Client-Server |
| F5 TTS Base (Vocos) | 1 (Batchgröße) | — | 0.0402 | Offline TRT-LLM |
| F5 TTS Base (Vocos) | 1 (Batchgröße) | — | 0.1467 | Offline PyTorch |
Details zum Benchmark und zu den Einrichtungsbedingungen finden Sie in der Laufzeitdokumentation des Projekts.
Inferenz
- Lesen Sie die Hinweise zur Inferenz, bevor Sie die Modellleistung bewerten.
- Durchsuchen Sie bei der Fehlersuche zu einem bestimmten Problem die bestehenden Diskussionen des Projekts.
1. Gradio-App
Zu den dokumentierten Funktionen gehören:
- Einfaches TTS mit Chunk-Inferenz
- Generierung mit mehreren Stilen und Sprechern
- Sprachchat mit Qwen2.5-3B-Instruct
- Benutzerdefinierte Inferenz mit Unterstützung für weitere Sprachen
# 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
Beispiel für eine Docker-Compose-Datei für NVIDIA-Geräte
services:
f5-tts:
image: ghcr.io/swivid/f5-tts:main
ports:
- "7860:7860"
environment:
GRADIO_SERVER_PORT: 78602. Inferenz über die 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
Training
1. Mit Hugging Face Accelerate
Empfohlene Vorgehensweisen finden Sie in der Anleitung des Projekts zu Training und Feinabstimmung.
2. Mit der Gradio-App
# Start the finetuning web interface
f5-tts_finetune-gradioInformationen zur Konfiguration und zu Datensätzen finden Sie in der Trainingsanleitung.
Evaluierung
Entwicklung
Pre-commit kann die Formatierungs- und Qualitätsprüfungen des Projekts ausführen:
pip install pre-commit pre-commit install
Führen Sie vor dem Einreichen von Änderungen die Prüfungen für alle Dateien aus:
pre-commit run --all-files
Für einige Modellkomponenten gelten aufgrund der Tensor-Notation Ausnahmen bei der Lint-Prüfung.
Danksagungen
- E2-TTS für die zugehörige Forschung zum Flow Matching
- Die Datensätze Emilia, WenetSpeech4TTS, LibriTTS und LJSpeech
- Lucidrains und Mitwirkende für frühe CFM-Strukturen und den Austausch darüber
- Stable Diffusion 3 und Hugging Face Diffusers als Referenzen für Transformer-Code
- Torchdiffeq, Vocos und BigVGAN für Arbeiten an Solvern und Vocodern
- FunASR, faster-whisper, UniSpeech und SpeechMOS als Evaluierungswerkzeuge
- CTC-Forced-Aligner zur Evaluierung von Sprachbearbeitung
- Community-Mitglieder, die Sprachdemos erstellt haben
- Die MLX-Implementierung und ihre Maintainer
- Die ONNX-Runtime-Implementierung und ihre Maintainer
- Mitwirkende an der Unterstützung von Triton und TensorRT-LLM
Zitierung
Wenn die Forschung und die Codebasis für dich nützlich sind, zitiere bitte das Originalpapier:
@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}
}Lizenz
Der Code des ursprünglichen Projekts wird unter der MIT-Lizenz veröffentlicht. Für die vortrainierten Modelle gelten separate CC-BY-NC-Lizenzbedingungen, die mit den Trainingsdaten zusammenhängen. Prüfe die Bedingungen des ursprünglichen Projekts, bevor du eines davon in deiner eigenen Arbeit verwendest.