import gradio as gr from kokoro import KPipeline import soundfile as sf import os # Initialize Kokoro pipeline pipeline = KPipeline(lang_code='a') # Change to 'e' for Spanish, 'f' for French, etc. def synthesize(text, voice, speed): """Generate TTS audio from text input.""" generator = pipeline(text, voice=voice, speed=speed, split_pattern=r'\n+') # Process generated audio output_files = [] for i, (gs, ps, audio) in enumerate(generator): file_path = f"output_{i}.wav" sf.write(file_path, audio, 24000) # Save each audio segment output_files.append(file_path) return output_files[0] if output_files else None # Return first file # Gradio UI for user interaction iface = gr.Interface( fn=synthesize, inputs=[ gr.Textbox(label="Text Input", placeholder="Enter your text..."), gr.Textbox(label="Voice", value="af_heart"), # Default voice gr.Slider(0.5, 2.0, value=1, label="Speed") # Adjust speech speed ], outputs=gr.File(label="Generated Speech"), title="Kokoro TTS API", description="Enter text and get synthesized speech.", ) if __name__ == "__main__": iface.launch(share=True)