DataLabelingApp / ui_components.py
sunnyzjx's picture
Update ui_components.py
b8d01e0 verified
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)
}