f5
f5 tts/F5-TTS
fF5-TTSCódigo aberto
principal 1 Ramificação 22 Etiquetas
f f5 tts Recursos de síntese de fala, exemplos e documentação Arquivos do projeto Histórico
.githubFluxos de trabalho e configuração do projetoDiretório
ckptsInformações sobre os checkpoints do modeloDiretório
dataOrientações sobre dados de treinamento locaisDiretório
srcRecursos de inferência, treinamento e execuçãoDiretório
.gitignoreConfiguração de desenvolvimentoArquivo
.gitmodulesNotas sobre o submódulo opcional do vocoderArquivo
.pre-commit-config.yamlVerificações de formatação e qualidade do códigoArquivo
DockerfileOpção de instalação em contêinerArquivo
LICENSEInformações sobre a licença do códigoArquivo
README.mdVisão geral e uso do projetoArquivo
pyproject.tomlConfiguração do pacote PythonArquivo
ruff.tomlConfiguração de formataçãoArquivo

f5 tts: Fala fluida e fiel com correspondência de fluxo

Continue para o serviço de criação de fala; o áudio não é gerado nesta página.
Python3.10+ arXiv2410.06885 ProjetoDemonstração FalaExemplos ModeloRecursos CódigoMIT

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/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

Depois, escolha uma das opções abaixo:

1. Como um pacote pip (se for apenas para inferência)

pip install f5-tts

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

ModeloConcorrênciaLatência médiaRTFModo
F5-TTS Base (Vocos)2253 ms0.0394Cliente-Servidor
F5-TTS Base (Vocos)1 (tamanho do lote)—0.0402TRT-LLM offline
F5-TTS Base (Vocos)1 (tamanho do lote)—0.1467PyTorch 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: 7860

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

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

Criar fala
Criar fala