Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available:
6.1.0
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).

## 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
Instalar espeak-ng
En Linux:
sudo apt-get install espeak-ngEn 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
- Asegúrate de que tus audios estén en mono y a 22050 Hz:
ffmpeg -i input.wav -ac 1 -ar 22050 output.wav
Usa la app de segmentación (
Audio-segmentation) para dividir los audios largos y generar elmetadata.csv.Ejecuta el script para generar los archivos
train.txtyval.txtdesde elmetadata.csvgenerado:
python create_train_val.py
Transfer Learning
Si deseas realizar fine-tuning sobre un modelo ya entrenado:
- Crea una carpeta llamada
logs/NOMBRE_MODELO - Coloca el checkpoint del modelo base dentro de esa carpeta
- Renómbralo como:
G_0.pth
Esto reiniciará el contador de pasos a cero, pero conservará los pesos del modelo anterior.
Entrenamiento del modelo
- Copia un archivo
.jsonde configuración desdeconfigs/, renómbralo (ej.MYMODEL.json) y modifícalo según tu dataset. - Si es en inglés, usa
"english_cleaners". Para español, deja"spanish_cleaners". - 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
- Interfaz gráfica
- Video tutorial de uso
- Catálogo más amplio de voces
- Voces en lenguas originarias
- Integración con LLM para chat con voz