import gradio as gr DEMO_ORIGINAL = "SIWIS_fr_neut_parl_s01_0001_ref.wav" DEMO_CORRECTED = "SIWIS_fr_neut_parl_s01_0001_corrected.wav" def process_audio(audio): if audio is None: return None, "⚠️ Please upload audio first" return None, "🚧 Full model coming soon! See demo below ↓" with gr.Blocks(title="VoiceClean 🎙️") as demo: gr.HTML("""

🎙️ VoiceClean

AI that fixes your French pronunciation while keeping your voice

⚡ 0.38x RTF — faster than real-time

""") with gr.Row(): audio_in = gr.Audio(label="🔴 Your Voice", type="filepath", sources=["upload","microphone"]) audio_out = gr.Audio(label="🟢 Corrected Voice") status = gr.Markdown("Upload audio to start") btn = gr.Button("🚀 Fix Pronunciation", variant="primary") btn.click(process_audio, inputs=audio_in, outputs=[audio_out, status]) gr.HTML("

🎧 Listen to Demo

") with gr.Row(): gr.Audio(value=DEMO_ORIGINAL, label="🔴 Before — Original") gr.Audio(value=DEMO_CORRECTED, label="🟢 After — Corrected") gr.HTML("""
GitHub | Full model deployment coming soon
""") demo.launch()