File size: 1,193 Bytes
a7cfe13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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)