f5
f5 tts/F5-TTS
fF5-TTSCódigo abierto
main 1 rama 22 etiquetas
f f5 tts Recursos, ejemplos y documentación sobre síntesis de voz Archivos del proyecto Historial
.githubFlujos de trabajo y configuración del proyectoDirectorio
ckptsInformación sobre los puntos de control del modeloDirectorio
dataGuía para los datos de entrenamiento localesDirectorio
srcRecursos de inferencia, entrenamiento y ejecuciónDirectorio
.gitignoreConfiguración de desarrolloArchivo
.gitmodulesNotas sobre el submódulo opcional del vocodificadorArchivo
.pre-commit-config.yamlComprobaciones de formato y calidad del códigoArchivo
DockerfileOpción de instalación mediante contenedorArchivo
LICENSEInformación sobre la licencia del códigoArchivo
README.mdDescripción general y uso del proyectoArchivo
pyproject.tomlConfiguración del paquete de PythonArchivo
ruff.tomlConfiguración de formatoArchivo

f5 tts: voz fluida y fiel con coincidencia de flujo

Continúa al servicio de creación de voz; el audio no se genera en esta página.
Python3.10+ arXiv2410.06885 ProyectoDemo VozEjemplos ModeloRecursos CódigoMIT

F5-TTS: Un transformador de difusión que utiliza ConvNeXt V2 para la investigación de texto a voz.

E2 TTS: Un transformador Flat-UNet explorado junto con el enfoque F5-TTS.

Muestreo Sway: Una estrategia de muestreo de pasos de flujo durante la inferencia.

¡Gracias a todos los colaboradores!

Novedades

  • 2025/03/12: Un modelo base F5-TTS v1 más reciente introdujo actualizaciones en el entrenamiento y la inferencia. Explorar la inferencia.
  • 2024/10/08: Los recursos de los modelos base F5-TTS y E2 TTS se publicaron para la comunidad investigadora. Ver la instalación.

Instalación

Crea un entorno independiente si es necesario

# 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

Instala PyTorch con el dispositivo correspondiente

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

Luego puedes elegir uno de los siguientes:

1. Como paquete pip (si solo se usará para inferencia)

pip install f5-tts

2. Local editable (si también se realizará entrenamiento o 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 .

También está disponible el uso con Docker

# 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

Entorno de ejecución

El proyecto también documenta el despliegue con Triton y TensorRT-LLM.

Resultados de referencia

El benchmark publicado describe la decodificación en una sola GPU L20 con 26 pares de audio de entrada y texto objetivo a 16 NFE.

ModeloConcurrenciaLatencia promedioRTFModo
F5-TTS Base (Vocos)2253 ms0.0394Cliente-servidor
F5-TTS Base (Vocos)1 (tamaño del lote)—0.0402TRT-LLM sin conexión
F5-TTS Base (Vocos)1 (tamaño del lote)—0.1467PyTorch sin conexión

Consulta la documentación del entorno de ejecución del proyecto para obtener detalles del benchmark y las condiciones de configuración.

Inferencia

  • Lee las instrucciones de inferencia antes de evaluar el rendimiento del modelo.
  • Busca en los debates existentes del proyecto cuando estés solucionando un problema específico.

1. Aplicación de Gradio

Las funciones documentadas incluyen:

  • TTS básico con inferencia por fragmentos
  • Generación multies estilo y multihablante
  • Chat de voz mediante Qwen2.5-3B-Instruct
  • Inferencia personalizada con compatibilidad adicional con idiomas
# 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
Ejemplo de archivo de Docker Compose para dispositivos NVIDIA
services:
  f5-tts:
    image: ghcr.io/swivid/f5-tts:main
    ports:
      - "7860:7860"
    environment:
      GRADIO_SERVER_PORT: 7860

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

Entrenamiento

1. Con Hugging Face Accelerate

Consulta las directrices de entrenamiento y ajuste fino del proyecto para conocer las prácticas recomendadas.

2. Con la aplicación de Gradio

# Start the finetuning web interface
f5-tts_finetune-gradio

Consulta las directrices de entrenamiento para obtener instrucciones sobre la configuración y los conjuntos de datos.

Evaluación

Desarrollo

Pre-commit puede ejecutar los formateadores y las comprobaciones de calidad del proyecto:

pip install pre-commit
pre-commit install

Antes de enviar cambios, ejecuta las comprobaciones en todos los archivos:

pre-commit run --all-files

Algunos componentes del modelo tienen excepciones de linting para la notación de tensores.

Agradecimientos

  • A E2-TTS por su investigación relacionada sobre el flujo de correspondencia
  • A los conjuntos de datos Emilia, WenetSpeech4TTS, LibriTTS y LJSpeech
  • A Lucidrains y sus colaboradores por las primeras estructuras de CFM y los debates
  • A Stable Diffusion 3 y Hugging Face Diffusers por las referencias de código de transformadores
  • A Torchdiffeq, Vocos y BigVGAN por su trabajo en solucionadores y vocoders
  • A FunASR, faster-whisper, UniSpeech y SpeechMOS por las herramientas de evaluación
  • Alineador forzado CTC para la evaluación de edición de voz
  • Miembros de la comunidad que crearon demostraciones de voz
  • La implementación de MLX y sus mantenedores
  • La implementación de ONNX Runtime y sus mantenedores
  • Colaboradores del soporte para Triton y TensorRT-LLM

Cita

Si la investigación y el código base te resultan útiles, cita el artículo 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}
}

Licencia

El código del proyecto original se distribuye bajo la licencia MIT. Sus modelos preentrenados tienen una licencia CC-BY-NC independiente asociada a sus datos de entrenamiento. Consulta los términos del proyecto original antes de utilizar cualquiera de ellos en tu propio trabajo.

Crear discurso
Crear discurso