FVOICE_V2 / README.md
Alazka2503's picture
Update README.md
27236f6 verified

A newer version of the Gradio SDK is available: 6.1.0

Upgrade
metadata
title: FVOICE_V2
emoji: 🎙️
colorFrom: indigo
colorTo: blue
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
# VITS2: Mejora de la Calidad y Eficiencia en Síntesis de Voz en una Sola Etapa mediante Aprendizaje Adversarial y Diseño Arquitectónico

## Jungil Kong, Jihoon Park, Beomjeong Kim, Jeongmin Kim, Dohee Kong, Sangjin Kim

Implementación no oficial del artículo [VITS2 paper](https://arxiv.org/abs/2307.16430), secuela del artículo original [VITS paper](https://arxiv.org/abs/2106.06103).  
Este repositorio está basado en [VITS2 p0p4k](https://github.com/p0p4k/vits2_pytorch).

![Alt text](resources/image.png)

## Descripción

VITS2 es un modelo de síntesis de voz en una sola etapa que mejora significativamente la naturalidad, eficiencia y accesibilidad en comparación con su predecesor. Entre sus ventajas destacan:

- Mayor naturalidad en la voz generada.
- Mejor adaptación a múltiples hablantes.
- Mayor eficiencia en entrenamiento e inferencia.
- Menor dependencia de conversión fonémica (enfoque end-to-end).

## Créditos

- [VITS repo](https://github.com/jaywalnut310/vits)
- [VITS2 p0p4k](https://github.com/p0p4k/vits2_pytorch)

---

## **Requisitos Previos**

1. **Python** >= 3.10  
2. **PyTorch** >= 2.7.0  
3. Crear y activar un entorno virtual  
4. Clonar este repositorio  
5. Instalar las dependencias:

```bash
pip install -r requirements.txt
  1. Instalar espeak-ng

    • En Linux:

      sudo apt-get install espeak-ng
      
    • En Windows: seguir este tutorial


Inferencia (uso del modelo)

Ya no es necesario ejecutar notebooks ni compilar módulos adicionales. Para usar el modelo entrenado, simplemente ejecuta:

python app.py
  • Descarga los modelos desde este Google Drive
  • Colócalo en una carpeta llamada models/

Entrenamiento

Preparación de datos

  1. Asegúrate de que tus audios estén en mono y a 22050 Hz:
ffmpeg -i input.wav -ac 1 -ar 22050 output.wav
  1. Usa la app de segmentación (Audio-segmentation) para dividir los audios largos y generar el metadata.csv.

  2. Ejecuta el script para generar los archivos train.txt y val.txt desde el metadata.csv generado:

python create_train_val.py

Transfer Learning

Si deseas realizar fine-tuning sobre un modelo ya entrenado:

  1. Crea una carpeta llamada logs/NOMBRE_MODELO
  2. Coloca el checkpoint del modelo base dentro de esa carpeta
  3. Renómbralo como:
G_0.pth

Esto reiniciará el contador de pasos a cero, pero conservará los pesos del modelo anterior.


Entrenamiento del modelo

  1. Copia un archivo .json de configuración desde configs/, renómbralo (ej. MYMODEL.json) y modifícalo según tu dataset.
  2. Si es en inglés, usa "english_cleaners". Para español, deja "spanish_cleaners".
  3. Ejecuta:
python -m Train.trainer_engine --config configs/MYMODEL.json -m MYMODEL

Conversión a ONNX (opcional)

Una vez entrenado el modelo, puedes convertirlo a ONNX. Desde src/, usa el módulo import onnx.


Resumen

Objetivo Acción
Usar modelo entrenado python app.py
Entrenar modelo nuevo python -m Train.trainer_engine --config configs/NOMBRE.json -m NOMBRE
Preparar audios Convertir con ffmpeg a 22050Hz mono + segmentación automática
Crear train.txt/val.txt python create_train_val.py usando metadata.csv generado
Transfer learning Crear logs/MODELO/, poner G_0.pth
Convertir a ONNX Usar import onnx desde src/ después del entrenamiento

ToDos

  1. Interfaz gráfica
  2. Video tutorial de uso
  3. Catálogo más amplio de voces
  4. Voces en lenguas originarias
  5. Integración con LLM para chat con voz