import gradio as gr # 전역 변수 questions = {} recordings = {} # 선생님의 질문 입력 받기 def submit_question(teacher_name, question): questions[teacher_name] = question return f"Question submitted successfully by {teacher_name}!" # 학생들의 음성 녹음 및 저장 def record_and_submit_voice(student_name, voice): recordings.setdefault(student_name, []).append(voice) return f"Voice recorded and submitted successfully by {student_name}!" # 코멘트 작성 def write_comment(student_name, teacher_name, comment): if teacher_name in questions: comment_list = questions.setdefault(teacher_name, []) comment_list.append((student_name, comment)) return f"Comment added successfully by {student_name}!" else: return "No question submitted by teacher yet!" # Gradio 인터페이스 정의 with gr.Blocks() as app: teacher_name_input = gr.Textbox(placeholder="Enter teacher's name", label="Teacher's Name") question_input = gr.Textbox(placeholder="Enter your question here...", label="Teacher's Question") submit_question_button = gr.Button("Submit Question") student_name_input = gr.Textbox(placeholder="Enter your name", label="Your Name") voice_input = gr.Audio(type="numpy", label="Record your voice") submit_voice_button = gr.Button("Submit Voice") play_recording_dropdown = gr.Dropdown(label="Select recording to play") @app def submit_question_handler(): return submit_question(teacher_name_input.value, question_input.value) @app def submit_voice_handler(): return record_and_submit_voice(student_name_input.value, voice_input.value) @app def play_recording_handler(selected_recording): return recordings.get(selected_recording, []) comment_input = gr.Textbox(placeholder="Write your comment here...", label="Write Comment") submit_comment_button = gr.Button("Submit Comment") @app def submit_comment_handler(): return write_comment(student_name_input.value, play_recording_dropdown.value, comment_input.value) submit_question_button.click(submit_question_handler) submit_voice_button.click(submit_voice_handler) submit_comment_button.click(submit_comment_handler) # 인터페이스 실행 app.launch()