import gradio as gr import os # Define available voices voices = [ {"name": "Jessica", "gender": "Female", "country": "US", "file": "jessica.mp3"}, {"name": "Michael", "gender": "Male", "country": "UK", "file": "michael.mp3"}, {"name": "Sophia", "gender": "Female", "country": "Canada", "file": "sophia.mp3"}, {"name": "David", "gender": "Male", "country": "Australia", "file": "david.mp3"}, {"name": "Emma", "gender": "Female", "country": "Germany", "file": "emma.mp3"}, {"name": "Lucas", "gender": "Male", "country": "France", "file": "lucas.mp3"}, {"name": "Liam", "gender": "Male", "country": "India", "file": "liam.mp3"}, {"name": "Olivia", "gender": "Female", "country": "Brazil", "file": "olivia.mp3"}, {"name": "Noah", "gender": "Male", "country": "Japan", "file": "noah.mp3"}, {"name": "Ava", "gender": "Female", "country": "South Korea", "file": "ava.mp3"}, {"name": "Isabella", "gender": "Female", "country": "Italy", "file": "isabella.mp3"}, {"name": "Ethan", "gender": "Male", "country": "Spain", "file": "ethan.mp3"}, {"name": "Mason", "gender": "Male", "country": "Netherlands", "file": "mason.mp3"}, {"name": "Mia", "gender": "Female", "country": "Russia", "file": "mia.mp3"}, {"name": "Charlotte", "gender": "Female", "country": "China", "file": "charlotte.mp3"}, ] # Function to return audio file path def play_audio(file): return f"voices/{file}" # Custom CSS for styling and animations custom_css = """ h2 { text-align: center; color: #ffffff; font-size: 24px; margin-bottom: 20px; } body { background-color: #121212; font-family: Arial, sans-serif; } .gr-box { background: #1e1e1e; border-radius: 10px; padding: 15px; text-align: center; } .play-btn { background-color: #FF5722 !important; color: white; border-radius: 50px; width: 100px; height: 40px; font-size: 14px; } .playing { animation: pulse 1s infinite alternate; } @keyframes pulse { 0% { transform: scale(1); } 100% { transform: scale(1.1); } } """ # Create layout with gr.Blocks(css=custom_css) as demo: gr.Markdown("