# app.py import streamlit as st import tempfile from utils import VoiceCloner def main(): st.title("Clonación de Voz en Español") st.write(""" Esta aplicación de ejemplo utiliza **Coqui TTS** (YourTTS) para realizar clonación de voz en español mediante zero-shot. """) # Creamos una instancia del clonador de voz voice_cloner = VoiceCloner() # Entrada de texto text_input = st.text_area("Ingresa el texto a reproducir:", "") # Carga de archivo de audio (WAV o MP3) uploaded_audio = st.file_uploader("Sube una nota de voz o audio de referencia", type=["wav", "mp3"]) # Botón para generar la voz clonada if st.button("Generar voz clonada"): # Validaciones básicas if not text_input: st.warning("Por favor, ingresa un texto.") elif not uploaded_audio: st.warning("Por favor, sube un archivo de audio de referencia.") else: # Guardamos temporalmente el audio subido with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp: tmp.write(uploaded_audio.read()) reference_audio_path = tmp.name # Definimos un archivo de salida output_path = "cloned_voice.wav" # Llamamos a la función que clona la voz result_audio_path = voice_cloner.clone_voice( text=text_input, reference_audio_path=reference_audio_path, output_path=output_path ) st.success("¡Voz clonada generada con éxito!") # Leemos el audio generado y lo reproducimos with open(result_audio_path, "rb") as audio_file: audio_bytes = audio_file.read() st.audio(audio_bytes, format="audio/wav") if __name__ == "__main__": main()