File size: 2,143 Bytes
7f4441c
 
3e0f3fc
 
7f4441c
5e95e64
7f4441c
3e0f3fc
 
 
c558203
5e95e64
1746c02
cbfbd5b
3e0f3fc
 
 
1746c02
cbfbd5b
 
c558203
 
3e0f3fc
 
 
c558203
 
 
7f4441c
17411ab
 
 
 
 
c558203
17411ab
1746c02
c558203
 
1746c02
 
c558203
 
 
 
 
 
 
17411ab
c558203
3e0f3fc
0846800
c558203
0846800
17411ab
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
55
56
import gradio as gr

# μ „μ—­ μƒνƒœλ₯Ό μœ μ§€ν•˜λŠ” λ³€μˆ˜
state = {"question": "", "recordings": {}, "comments": {}}

# μ„ μƒλ‹˜μ˜ 질문 μž…λ ₯ λ°›κΈ°
def teacher_question(question):
    state["question"] = question
    state["recordings"][question] = []
    state["comments"][question] = []
    return question

# ν•™μƒλ“€μ˜ μŒμ„± λ…ΉμŒ 및 μ €μž₯
def record_student_voice(voice):
    if state["question"]:
        state["recordings"][state["question"]].append(voice)
        return f"Voice recorded successfully for question: {state['question']}"
    else:
        return "Please submit a question first."

# λŒ“κΈ€ μ €μž₯
def write_comment(comment):
    if state["question"]:
        state["comments"][state["question"]].append(comment)
        return f"Comment added successfully for question: {state['question']}"
    else:
        return "Please submit a question first."

# Gradio μΈν„°νŽ˜μ΄μŠ€ μ •μ˜
with gr.Blocks() as demo:
    with gr.Tab("Teacher's Question"):
        question_input = gr.Textbox(lines=2, placeholder="Enter your question here...", label="Teacher's Question")
        submit_question = gr.Button("Submit")
        output_question = gr.Textbox(label="Submitted Question")
        submit_question.click(teacher_question, inputs=question_input, outputs=output_question)

    with gr.Tab("Record Voice"):
        question_display = gr.Textbox(label="Question", interactive=False)
        voice_input = gr.Audio(type="numpy", label="Record your voice")
        submit_voice = gr.Button("Submit Voice")
        output_voice = gr.Textbox(label="Status")
        submit_voice.click(record_student_voice, inputs=[voice_input], outputs=output_voice)

    with gr.Tab("Write Comment"):
        comment_input = gr.Textbox(placeholder="Your comment", label="Comment")
        submit_comment = gr.Button("Submit Comment")
        output_comment = gr.Textbox(label="Status")
        submit_comment.click(write_comment, inputs=[comment_input], outputs=output_comment)

    def update_question_display():
        return state["question"]

    demo.load(update_question_display, outputs=question_display)

demo.launch()