| 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) |