MH0386's picture
Upload folder using huggingface_hub
1fc10f3 verified
raw
history blame
2.49 kB
from gradio import (
Audio,
Blocks,
Button,
Checkbox,
Column,
Dropdown,
Row,
Slider,
Textbox,
)
from vocalizr import CHOICES, CUDA_AVAILABLE
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="Hardware",
info="GPU is usually faster, but has a usage quota",
interactive=CUDA_AVAILABLE,
)
save_file = Checkbox(
label="Save Audio",
info="Save audio to local storage",
)
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],
outputs=[out_audio],
)
stop_btn.click(
fn=None,
cancels=stream_event,
)
return app