f5 tts: Fala fluida e fiel com correspondência de fluxo
F5-TTS: um transformer de difusão que usa ConvNeXt V2 para pesquisa em síntese de fala a partir de texto.
E2 TTS: um transformer Flat-UNet explorado em paralelo com a abordagem F5-TTS.
Sway Sampling: uma estratégia de amostragem de etapas de fluxo durante a inferência.
Agradecemos a todos os colaboradores!
Novidades
- 2025/03/12: Um modelo base F5-TTS v1 mais recente trouxe atualizações no treinamento e na inferência. Explore a inferência.
- 2024/10/08: Recursos dos modelos base F5-TTS e E2 TTS foram publicados para a comunidade de pesquisa. Veja como instalar.
Instalação
Crie um ambiente separado, se necessário
# 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
Instale o PyTorch compatível com seu dispositivo
GPU NVIDIA
# Select a PyTorch build matched to your CUDA version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu128GPU AMD
# Select a PyTorch build matched to your ROCm version
pip install torch torchaudio --index-url https://download.pytorch.org/whl/rocm7.2GPU Intel
# 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
Depois, escolha uma das opções abaixo:
1. Como um pacote pip (se for apenas para inferência)
pip install f5-tts2. Local editável (se também for realizar treinamento e ajuste fino)
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 .
O uso com Docker também está disponível
# 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
Tempo de execução
O projeto também documenta a implantação com Triton e TensorRT-LLM.
Resultados de benchmark
O benchmark publicado descreve a decodificação em uma única GPU L20 com 26 pares de áudio de prompt e texto-alvo a 16 NFE.
| Modelo | Concorrência | Latência média | RTF | Modo |
|---|---|---|---|---|
| F5-TTS Base (Vocos) | 2 | 253 ms | 0.0394 | Cliente-Servidor |
| F5-TTS Base (Vocos) | 1 (tamanho do lote) | — | 0.0402 | TRT-LLM offline |
| F5-TTS Base (Vocos) | 1 (tamanho do lote) | — | 0.1467 | PyTorch offline |
Consulte a documentação de tempo de execução do projeto para obter detalhes do benchmark e das condições de configuração.
Inferência
- Leia as orientações de inferência antes de avaliar o desempenho do modelo.
- Pesquise nas discussões existentes do projeto ao solucionar um problema específico.
1. Aplicativo Gradio
Os recursos documentados incluem:
- TTS básico com inferência em partes
- Geração com múltiplos estilos e múltiplos locutores
- Chat de voz usando Qwen2.5-3B-Instruct
- Inferência personalizada com suporte a idiomas adicionais
# 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
Exemplo de arquivo Docker Compose para dispositivos NVIDIA
services:
f5-tts:
image: ghcr.io/swivid/f5-tts:main
ports:
- "7860:7860"
environment:
GRADIO_SERVER_PORT: 78602. Inferência via 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
Treinamento
1. Com Hugging Face Accelerate
Consulte as orientações de treinamento e ajuste fino do projeto para conhecer as práticas recomendadas.
2. Com o aplicativo Gradio
# Start the finetuning web interface
f5-tts_finetune-gradioConsulte as orientações de treinamento para obter instruções sobre configuração e conjuntos de dados.
Avaliação
Desenvolvimento
O Pre-commit pode executar os formatadores e as verificações de qualidade do projeto:
pip install pre-commit pre-commit install
Antes de enviar alterações, execute as verificações em todos os arquivos:
pre-commit run --all-files
Alguns componentes do modelo têm exceções de linting para a notação de tensores.
Agradecimentos
- Ao E2-TTS por sua pesquisa relacionada a flow matching
- Aos conjuntos de dados Emilia, WenetSpeech4TTS, LibriTTS e LJSpeech
- A Lucidrains e colaboradores pelas primeiras estruturas de CFM e pelas discussões
- Ao Stable Diffusion 3 e ao Hugging Face Diffusers pelas referências de código de transformers
- Ao Torchdiffeq, Vocos e BigVGAN pelo trabalho com solvers e vocoders
- Ao FunASR, faster-whisper, UniSpeech e SpeechMOS pelas ferramentas de avaliação
- Alinhador forçado CTC para avaliação de edição de fala
- Membros da comunidade que criaram demonstrações de fala
- A implementação em MLX e seus mantenedores
- A implementação em ONNX Runtime e seus mantenedores
- Colaboradores do suporte a Triton e TensorRT-LLM
Citação
Se a pesquisa e a base de código forem úteis para você, cite o artigo 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}
}Licença
O código do projeto original é distribuído sob a Licença MIT. Seus modelos pré-treinados têm licenciamento separado sob CC-BY-NC, associado aos dados usados em seu treinamento. Consulte os termos do projeto original antes de usar qualquer um deles em seu próprio trabalho.