File size: 2,188 Bytes
425b9a7
ddb4de0
 
8f472c2
1379699
e65b35c
007b414
ac25389
007b414
ac25389
007b414
ac25389
007b414
 
ac25389
007b414
ddb4de0
 
fa8b4be
 
 
5df1b32
fa8b4be
5df1b32
fa8b4be
5df1b32
 
 
 
fa8b4be
5df1b32
 
 
ddb4de0
 
 
 
2b28532
ac25389
ddb4de0
8f472c2
ddb4de0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from presets import *

with gr.Blocks(css=customCSS) as demo:
    exceed_flag = gr.State(value=False)
    tmp_string = gr.Textbox(value="", visible=False)
    character_area = gr.HTML(get_character_html("你好呀!"), elem_id="character_area")
    with gr.Tab("Speak", elem_id="tab-speak"):
        speak_input = gr.Textbox(lines=1, label="Talking Flower will say:", elem_classes="wonder-card input_text", elem_id="speak_input")
        speak_button = gr.Button("Speak!", elem_id="speak_button", elem_classes="main-button wonder-card")
        example_category = gr.Examples(["夸夸你 | Praise", "游戏台词 | Scripts", "玩梗 | Meme"], inputs=[tmp_string], elem_id="examples")
    with gr.Tab("Chat", elem_id="tab-chat"):
        chat_input = gr.Textbox(lines=1, placeholder="Coming Soon...", label="Chat to Talking Flower:", elem_classes="wonder-card input_text", elem_id="chat_input", interactive=False)
        chat_button = gr.Button("Chat!", elem_id="chat_button", elem_classes="main-button wonder-card")
    with gr.Tab("Mimic", elem_id="tab-mimic"):
        gr.Textbox(lines=1, placeholder="Coming Soon...", label="Choose sound to mimic:", elem_classes="wonder-card input_text", elem_id="mimic_input", interactive=False)
        mimic_button = gr.Button("Mimic!", elem_id="mimic_button", elem_classes="main-button wonder-card")
    audio_output = gr.Audio(label="输出音频", show_label=False, autoplay=True, elem_id="audio_output", elem_classes="wonder-card")
    
    demo.load(
        init_fn,
        inputs=[],
        outputs=[audio_output, character_area]
    )
    speak_input.submit(submit_lock_fn, show_progress=False).then(
        speak_fn,
        inputs=[speak_input, exceed_flag],
        outputs=[audio_output, character_area, exceed_flag, speak_button],
    )
    speak_button.click(submit_lock_fn, show_progress=False).then(
        speak_fn,
        inputs=[speak_input, exceed_flag],
        outputs=[audio_output, character_area, exceed_flag, speak_button],
    )


if __name__ == "__main__":
    reload_javascript()
    demo.launch(
        allowed_paths=["./assets", "./javascript", "./css"],
        show_api=False,
        inbrowser=True,
    )