# utils.py import os from TTS.api import TTS class VoiceCloner: def __init__(self, model_name: str = "tts_models/multilingual/multi-dataset/xtts_v2"): """ Inicializa el clonador de voz cargando el modelo de TTS. :param model_name: Nombre del modelo preentrenado para TTS. """ self.model_name = model_name self.model = TTS(model_name) def clone_voice(self, text: str, reference_audio_path: str, output_path: str = "output.wav") -> str: """ Genera un archivo de audio con la voz clonada a partir de un audio de referencia. :param text: El texto que se desea sintetizar. :param reference_audio_path: Path del archivo de audio que servirá como referencia de voz. :param output_path: Path de salida para el archivo de audio resultante. :return: Path del archivo de audio generado. """ # 'YourTTS' permite zero-shot voice cloning siempre que se provea speaker_wav con el audio de referencia # Si quieres forzar el idioma a español, puedes usar el parámetro language="es" self.model.tts_to_file( text=text, speaker_wav=reference_audio_path, language="es", file_path=output_path ) return output_path