Spaces:
Paused
Paused
| # app.py | |
| import gradio as gr | |
| from transformers import pipeline | |
| # ------------------------------- | |
| # Define your TTS models here | |
| # ------------------------------- | |
| # Add model names from Hugging Face Hub | |
| tts_models = { | |
| "Indic Parler TTS (Indian English)": "ai4bharat/indic-parler-tts", | |
| # "Hindi TTS (FuturixAI)": "Futurix-AI/Hindi-TTS", | |
| # "Hinglish TTS (sachin2000keshav)": "sachin2000keshav/hinglish_tts_v1", | |
| # "MMS-TTS Hindi": "facebook/mms-tts-hin" | |
| } | |
| # Load pipelines | |
| pipelines = {} | |
| for name, model_name in tts_models.items(): | |
| print(f"Loading model: {name}") | |
| pipelines[name] = pipeline("text-to-speech", model=model_name) | |
| # ------------------------------- | |
| # Function to run TTS | |
| # ------------------------------- | |
| def generate_speech(text, model_choice): | |
| if model_choice not in pipelines: | |
| return None | |
| tts_pipeline = pipelines[model_choice] | |
| # Generate speech | |
| audio = tts_pipeline(text) | |
| # The output format may vary; handle bytes or dict | |
| if isinstance(audio, dict) and "audio" in audio: | |
| return audio["audio"] | |
| return audio | |
| # ------------------------------- | |
| # Gradio UI | |
| # ------------------------------- | |
| with gr.Blocks() as demo: | |
| gr.Markdown("## Test Multiple Indian TTS Models") | |
| text_input = gr.Textbox(label="Enter text", placeholder="Type text in Hindi, Hinglish, or English", lines=3) | |
| model_dropdown = gr.Dropdown(label="Select TTS Model", choices=list(tts_models.keys())) | |
| output_audio = gr.Audio(label="Generated Speech") | |
| text_input.submit(generate_speech, inputs=[text_input, model_dropdown], outputs=output_audio) | |
| model_dropdown.change(generate_speech, inputs=[text_input, model_dropdown], outputs=output_audio) | |
| demo.launch() | |