VaniraTTS / app.py
VIZINTZOR's picture
Update app.py
d78a8d0 verified
Raw
History Blame Contribute Delete
2.78 kB
import gradio as gr
from vaniratts import VaniraTTS
TTS = VaniraTTS()
def generate_tts(text, speaker, volume, speed):
output_path = "output.wav"
TTS.infer(
text,
speaker=voices[speaker],
output=output_path,
volume=volume,
speed=speed,
)
return output_path
voices = {"เสียงผู้หญิง 1":1, "เสียงผู้หญิง 2":2, "เสียงผู้ชาย 1":3, "เสียงผู้ชาย 2":4, "เสียงผู้หญิง 3(ASMR)":5, "เสียงผู้ชาย 3(ASMR)":6}
voices_list = ["เสียงผู้หญิง 1", "เสียงผู้หญิง 2", "เสียงผู้ชาย 1", "เสียงผู้ชาย 2", "เสียงผู้หญิง 3(ASMR)", "เสียงผู้ชาย 3(ASMR)"]
examples = [
["ฉันชอบกินข้าวผัดกับไข่ดาว เพราะมันอร่อย ทำง่าย และเป็นเมนูที่กินได้ทุกวัน","เสียงผู้หญิง 1", 1.0, 0.85],
["สวัสดีครับ วันนี้อากาศดีมาก ท้องฟ้าแจ่มใส เหมาะกับการออกไปเดินเล่นและพักผ่อน", "เสียงผู้ชาย 2", 1.0, 0.85],
]
with gr.Blocks(title="VaniraTTS-TH") as demo:
gr.Markdown(f"""
# VaniraTTS
Text to Speech ภาษาไทย รวดเร็วและใช้งานง่าย.
""")
with gr.Row():
with gr.Column(scale=2):
text_input = gr.Textbox(label="📝 ใส่ข้อความ", placeholder="พิมพ์ข้อความที่นี่...", lines=4)
voice_dropdown = gr.Dropdown(choices=voices_list, value="เสียงผู้หญิง 1", label="🎤 Speaker")
volume_slider = gr.Slider(0.5, 2.0, value=1.0, step=0.05, label="🔊 ระดับเสียง")
speed_slider = gr.Slider(0.5, 2.0, value=0.85, step=0.05, label="⚡ ความเร็ว")
generate_button = gr.Button("🚀 สร้าง",variant="primary")
with gr.Column(scale=1):
output_audio = gr.Audio(label="🔈 เสียงที่สร้าง", type="filepath")
gr.Examples(
examples=examples,
inputs=[text_input, voice_dropdown, volume_slider, speed_slider],
)
generate_button.click(
fn=generate_tts,
inputs=[text_input, voice_dropdown, volume_slider, speed_slider],
outputs=[output_audio]
)
if __name__ == "__main__":
demo.launch(ssr_mode=False)