import argparse import sys import os def main(): parser = argparse.ArgumentParser(description="Entrenamiento RVC por Consola") parser.add_argument("--audio", required=True, help="Ruta al archivo de audio (WAV/MP3)") parser.add_argument("--name", required=True, help="Nombre del modelo (sin espacios)") parser.add_argument("--epochs", type=int, default=100, help="Número de epochs (defecto: 100)") parser.add_argument("--batch_size", type=int, default=8, help="Tamaño de lote (defecto: 8 para L4)") parser.add_argument("--f0_method", type=str, default="rmvpe", choices=["rmvpe", "crepe", "fcpe"], help="Método F0") parser.add_argument("--save_every", type=int, default=10, help="Guardar checkpoint cada X epochs") args = parser.parse_args() # Import locally from pipeline.rvc_training import train_rvc_model print(f"\n🚀 Iniciando entrenamiento por consola para el modelo: {args.name}") print(f"📊 Parámetros: Epochs={args.epochs}, Batch={args.batch_size}, F0={args.f0_method}\n") status, download_path = train_rvc_model( audio_path=args.audio, model_name=args.name, epochs=args.epochs, batch_size=args.batch_size, f0_method=args.f0_method, save_every=args.save_every, progress=None ) print("\n✅ ESTADO FINAL:") print(status) if download_path: print(f"📁 Archivo generado en: {download_path}") if __name__ == "__main__": main()