Spaces:
Runtime error
Runtime error
File size: 2,167 Bytes
8f78501 e7a429e 54638f8 f2b2c12 b009c70 e7a429e a7c3599 e7a429e 3f1a94d 0392745 ef5bfac d7dd4e2 d518652 74fd4af f13b775 ef5bfac 3f1a94d 74fd4af ef5bfac d518652 f13b775 3f1a94d e7a429e c746161 40457d3 e7a429e f2b2c12 e7a429e f2b2c12 8f78501 e7a429e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import os
import subprocess
from huggingface_hub import HfApi, HfFolder, upload_folder, snapshot_download
# === Configuración ===
HF_MODEL_ID = "tu_usuario/xtts-v2-finetuned" # <--- cambia con tu repo en HF
HF_TOKEN = os.environ.get("HF_TOKEN") # Debe estar definido en tu Space/entorno
DATASET_PATH = "/home/user/app/dataset" # Ruta a tu dataset
OUTPUT_PATH = "/tmp/output_model"
BASE_MODEL = "coqui/XTTS-v2"
os.makedirs("/tmp/xtts_cache", exist_ok=True)
os.chmod("/tmp/xtts_cache", 0o777)
os.makedirs("/tmp/xtts_model", exist_ok=True)
os.chmod("/tmp/xtts_model", 0o777)
# Continúa con tu lógica, usando las nuevas rutas de manera consistent
# Base model download
model_dir = snapshot_download(
repo_id="coqui/XTTS-v2",
local_dir="/tmp/xtts_model", # modelo temporal en /tmp
cache_dir="/tmp/xtts_cache", # cache seguro dentro de tu espacio
force_download=False,
)
print(f"✅ Modelo descargado en: {model_dir}")
CONFIG_PATH = "/tmp/xtts_model/config.json"
RESTORE_PATH = "/tmp/xtts_model/model.pth"
# === 2. Editar configuración para tu dataset VoxPopuli ===
print("=== Editando configuración para fine-tuning con VoxPopuli ===")
import json
with open(CONFIG_PATH, "r") as f:
config = json.load(f)
config["output_path"] = OUTPUT_PATH
config["datasets"] = [
{
"formatter": "voxpopuli",
"path": DATASET_PATH,
"meta_file_train": "metadata.json"
}
]
config["run_name"] = "xtts-finetune-voxpopuli"
config["lr"] = 1e-5 # más bajo para fine-tuning
with open(CONFIG_PATH, "w") as f:
json.dump(config, f, indent=2)
# === 3. Lanzar entrenamiento ===
print("=== Iniciando fine-tuning de XTTS-v2 ===")
subprocess.run([
"python", "TTS/bin/train_tts.py",
"--config_path", CONFIG_PATH,
"--restore_path", RESTORE_PATH
], check=True)
# === 4. Subir modelo resultante a HF ===
print("=== Subiendo modelo fine-tuneado a Hugging Face Hub ===")
api = HfApi()
HfFolder.save_token(HF_TOKEN)
upload_folder(
repo_id=HF_MODEL_ID,
repo_type="model",
folder_path=OUTPUT_PATH,
token=HF_TOKEN
)
print("✅ Fine-tuning completado y modelo subido a Hugging Face.")
|