import gradio as gr import librosa import numpy as np import os from pathlib import Path # Configuraci贸n SAMPLE_RATE = 44100 BASE_DIR = Path(__file__).parent MODEL_FILES = { "model": BASE_DIR / "yebama_e200_s3200.pth", "index": BASE_DIR / "added_IVF403_Flat_nprobe_1_yebama_v2.index", "config": BASE_DIR / "config.json" } def verify_files(): """Verificaci贸n robusta de archivos""" missing = [f.name for f in MODEL_FILES.values() if not f.exists()] if missing: raise FileNotFoundError(f"Archivos faltantes: {', '.join(missing)}") def process_audio(audio_path): try: verify_files() audio, sr = librosa.load(audio_path, sr=SAMPLE_RATE, mono=True) # --- AQU脥 VA TU INFERENCIA RVC --- processed_audio = audio # Placeholder return (sr, processed_audio.astype(np.float32)) # Tipo expl铆cito except Exception as e: raise gr.Error(f"Error: {str(e)}") # Interfaz with gr.Blocks(title="Yebama RVC") as app: gr.Markdown("## 馃帳 Conversor de Voz Yebama RVC") with gr.Row(): input_audio = gr.Audio( sources=["upload"], type="filepath", label="Audio de entrada" ) output_audio = gr.Audio( label="Resultado", type="numpy" # Formato 贸ptimo ) gr.Button("Convertir").click(process_audio, input_audio, output_audio) # Configuraci贸n 贸ptima para Spaces app.launch(server_port=7860, show_error=True)