MH0386's picture
Upload folder using huggingface_hub
7f44fc3 verified
raw
history blame
2.32 kB
from gradio import (
Audio,
Blocks,
Button,
Checkbox,
Column,
Dropdown,
Number,
Row,
Slider,
Textbox,
)
from vocalizr import CHOICES, CUDA_AVAILABLE, DEBUG
from vocalizr.model import generate_audio_for_text
def app_block() -> Blocks:
"""Create and return the main application interface.
:return: Blocks: The complete Gradio application interface
"""
with Blocks() as app:
with Row():
with Column():
text: Textbox = Textbox(label="Input Text", info="Enter your text here")
with Row():
voice: Dropdown = Dropdown(
choices=list(CHOICES.items()),
value="af_heart",
label="Voice",
info="Quality and availability vary by language",
)
Dropdown(
choices=[("GPU πŸš€", True), ("CPU 🐌", False)],
value=CUDA_AVAILABLE,
label="Current Hardware",
interactive=CUDA_AVAILABLE,
)
char_limit: Number = Number(label="Character Limit", value=-1)
with Row():
save_file: Checkbox = Checkbox(label="Save Audio File")
debug: Checkbox = Checkbox(value=DEBUG, label="Debug")
speed: Slider = Slider(
minimum=0.5,
maximum=2,
value=1,
step=0.1,
label="Speed",
)
with Column():
out_audio: Audio = Audio(
label="Output Audio",
interactive=False,
streaming=True,
autoplay=True,
)
with Row():
stream_btn: Button = Button(value="Generate", variant="primary")
stop_btn: Button = Button(value="Stop", variant="stop")
stream_event = stream_btn.click(
fn=generate_audio_for_text,
inputs=[text, voice, speed, save_file, debug, char_limit],
outputs=[out_audio],
)
stop_btn.click(fn=None, cancels=stream_event)
return app