abersbail's picture
Deploy tiny code-only TTS Space
0a88ee7 verified
import gradio as gr
from mini_tts.service import LocalTTSService
service = LocalTTSService()
def run_tts(text: str, voice: str, speed: float, pitch: float):
return service.synthesize(
text=text,
voice=voice,
speed=speed,
pitch_shift=pitch,
)
with gr.Blocks(title="Tiny Code-Only TTS") as demo:
gr.Markdown(
"""
# Tiny Code-Only TTS
A simple text-to-speech engine built from code only.
- No API key
- No hosted model
- No pretrained checkpoint
- Designed for Hugging Face Spaces
"""
)
with gr.Row():
with gr.Column():
text = gr.Textbox(
label="Text",
value="Hello. This is a simple text to speech demo built only with code.",
lines=8,
)
voice = gr.Dropdown(
label="Voice",
choices=["neutral", "bright", "deep"],
value="neutral",
)
speed = gr.Slider(
label="Speed",
minimum=0.6,
maximum=1.6,
value=1.0,
step=0.1,
)
pitch = gr.Slider(
label="Pitch shift",
minimum=-0.3,
maximum=0.3,
value=0.0,
step=0.05,
)
speak_button = gr.Button("Generate Speech", variant="primary")
with gr.Column():
audio = gr.Audio(label="Audio", type="numpy")
status = gr.Textbox(label="Status", value=service.describe())
normalized = gr.Textbox(label="Normalized Text", lines=8)
speak_button.click(
fn=run_tts,
inputs=[text, voice, speed, pitch],
outputs=[audio, status, normalized],
)
if __name__ == "__main__":
demo.launch()