File size: 1,300 Bytes
52937bd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# utils.py

import os
from TTS.api import TTS

class VoiceCloner:
    def __init__(self, model_name: str = "tts_models/multilingual/multi-dataset/your_tts"):
        """
        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