import gradio as gr from TTS.api import TTS import uuid # Load TTS model (offline) tts = TTS(model_name="tts_models/en/ljspeech/tacotron2-DDC", progress_bar=False, gpu=False) def tts_generate(text, speed): if not text.strip(): return "Please enter some text.", None try: # Generate filename filename = f"output_{uuid.uuid4().hex}.wav" tts.tts_to_file(text=text, file_path=filename, speaker_wav=None, speed=speed) return "Speech generated successfully!", filename except Exception as e: return f"Error: {e}", None iface = gr.Interface( fn=tts_generate, inputs=[ gr.Textbox(label="Enter Text", lines=6, placeholder="Type or paste text here..."), gr.Slider(minimum=0.5, maximum=1.5, value=1.0, step=0.1, label="Speech Speed") ], outputs=[ gr.Text(label="Status"), gr.Audio(label="Generated Speech") ], title="🎙️ Offline TTS with Coqui", description="Generate speech from text using an offline TTS model (Tacotron2-DDC). No API keys. No limits." ) if __name__ == "__main__": iface.launch()