import gradio as gr # 전역 변수 recordings = {} # 학생들의 음성 녹음 및 저장 @app def record_and_submit_voice(student_name, voice): recordings.setdefault(student_name, []).append(voice) return f"Voice recorded and submitted successfully by {student_name}!" # 코멘트 작성 @app def write_comment(student_name, selected_student_name, comment): if selected_student_name in recordings: comment_list = recordings[selected_student_name] comment_list.append((student_name, comment)) return f"Comment added successfully by {student_name}!" else: return "Selected student's recording not found!" # Gradio 인터페이스 정의 with gr.Blocks() as app: 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_voice_handler(): return record_and_submit_voice(student_name_input.value, voice_input.value) @app def play_recording_handler(selected_student_name): return recordings.get(selected_student_name, []) 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_voice_button.click(submit_voice_handler) submit_comment_button.click(submit_comment_handler) # 인터페이스 실행 app.launch()