CLONE_VOICE / utils.py
Segizu's picture
xtss
5dda7b8
# 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