f5
f5 tts/F5-TTS
main 1 Zweig 22 Tags
f f5 tts Ressourcen, Beispiele und Dokumentation zur Sprachsynthese Projektdateien Verlauf
.githubProjekt-Workflows und KonfigurationVerzeichnis
ckptsInformationen zu ModellprüfpunktenVerzeichnis
dataHinweise zu lokalen TrainingsdatenVerzeichnis
srcRessourcen für Inferenz, Training und LaufzeitVerzeichnis
.gitignoreEntwicklungskonfigurationDatei
.gitmodulesHinweise zum optionalen Vocoder-SubmodulDatei
.pre-commit-config.yamlPrüfungen für Formatierung und CodequalitätDatei
DockerfileOption für die ContainerinstallationDatei
LICENSEInformationen zur Code-LizenzierungDatei
README.mdProjektübersicht und VerwendungDatei
pyproject.tomlKonfiguration des Python-PaketsDatei
ruff.tomlFormatierungskonfigurationDatei

F5 TTS: Flüssige, originalgetreue Sprache mit Flow Matching

Mit dem Dienst zur Spracherstellung fortfahren; auf dieser Seite wird kein Audio generiert.
Python3.10+ arXiv2410.06885 ProjektDemo SpracheBeispiele ModellRessourcen CodeMIT

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/cu128
AMD-GPU
# Select a PyTorch build matched to your ROCm version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/rocm7.2
Intel-GPU
# 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

Dann kannst du eines der folgenden auswählen:

1. Als pip-Paket (wenn nur für die Inferenz)

pip install f5-tts

2. 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.

ModellParallelitätDurchschn. LatenzRTFModus
F5 TTS Base (Vocos)2253 ms0.0394Client-Server
F5 TTS Base (Vocos)1 (Batchgröße)—0.0402Offline TRT-LLM
F5 TTS Base (Vocos)1 (Batchgröße)—0.1467Offline 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: 7860

2. 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-gradio

Informationen 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.

Sprache erstellen
Sprache erstellen