import streamlit as st from utils.ai_functions import clone_voice from utils.data_processing import process_audio_samples, extract_personality_traits def show_voice_cloning(): st.title("Voice Cloning") st.write("Upload voice samples and define personality traits to recreate lifelike voices.") samples = st.file_uploader("Upload voice samples (WAV files)", accept_multiple_files=True, type=['wav']) traits = st.text_area("Enter personality traits (comma-separated)") if st.button("Clone Voice"): if samples and traits: with st.spinner("Processing voice samples..."): processed_samples = process_audio_samples(samples) with st.spinner("Extracting personality traits..."): processed_traits = extract_personality_traits(traits) with st.spinner("Cloning voice..."): result = clone_voice(processed_samples, processed_traits) st.success("Voice cloning complete!") st.audio(result, format='audio/wav') else: st.warning("Please upload samples and enter traits.")