File size: 2,111 Bytes
b8d01e0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
44
45
46
47
48
49
50
51
52
53
54
import gradio as gr
from task_manager import get_current_task, select_audio, change_task, tasks
from annotation import save_annotations


def create_ui(init_task, username, annotation_results):
    """ๅˆ›ๅปบ Gradio ็•Œ้ข็ป„ไปถ"""
    init_inst, init_text, init_audioA_data, init_audioA_rate, init_audioB_data, init_audioB_rate, init_prev_dis, init_next_dis, init_task_num = init_task

    gr.Markdown('<div class="center"><h2>๐ŸŽต ้Ÿณ้ข‘ๅฏนๆฏ”ๆ ‡ๆณจๅนณๅฐ</h2></div>')
    user_display = gr.Markdown()

    instruction = gr.Textbox(label="๐ŸŽฏ ๆŒ‡ไปค", value=init_inst, interactive=False)
    text_box = gr.Textbox(label="๐Ÿ“‹ ่ฝฌๅฝ•ๆ–‡ๆœฌ", value=init_text, interactive=False)
    task_number = gr.Markdown(value=f"**ไปปๅŠก็ผ–ๅท: {init_task_num}**", elem_classes="center")

    with gr.Row():
        with gr.Column(elem_classes="audio-container"):
            audioA = gr.Audio(
                label="๐Ÿ”Š ้Ÿณ้ข‘ A",
                value=(init_audioA_rate, init_audioA_data),
                interactive=False,
                type="numpy"
            )
            btn_A = gr.Button("โœ… ้€‰ๆ‹ฉ้Ÿณ้ข‘ A", variant="primary")
        with gr.Column(elem_classes="audio-container"):
            audioB = gr.Audio(
                label="๐Ÿ”Š ้Ÿณ้ข‘ B",
                value=(init_audioB_rate, init_audioB_data),
                interactive=False,
                type="numpy"
            )
            btn_B = gr.Button("โœ… ้€‰ๆ‹ฉ้Ÿณ้ข‘ B", variant="primary")

    with gr.Row():
        btn_prev = gr.Button("โฌ…๏ธ ไธŠไธ€้ข˜", interactive=not init_prev_dis)
        btn_next = gr.Button("โžก๏ธ ไธ‹ไธ€้ข˜", interactive=not init_next_dis)

    return {
        "user_display": user_display,
        "instruction": instruction,
        "text_box": text_box,
        "task_number": task_number,
        "audioA": audioA,
        "audioB": audioB,
        "btn_A": btn_A,
        "btn_B": btn_B,
        "btn_prev": btn_prev,
        "btn_next": btn_next,
        "select_audio": select_audio,
        "change_task": change_task,
        "save_annotations": lambda u, a: save_annotations(u, a, tasks)
    }