Spaces:
Sleeping
Sleeping
import gradio as gr | |
import whisper | |
# Load the Whisper model | |
model = whisper.load_model("base") | |
# Define the waiter prompt in Korean. | |
prompt_text = """ | |
안녕하세요, 손님! | |
오늘 저희 레스토랑에 방문해 주셔서 감사합니다. | |
저는 여러분의 웨이터입니다. | |
메뉴를 보시고 주문하실 음식을 결정해 주세요. | |
예시: "불고기와 콩나물국, 그리고 식혜 하나 부탁드립니다." | |
준비되셨다면, 아래의 녹음 버튼을 눌러 주문 내용을 말씀해 주세요. | |
""" | |
def process_audio(audio_file): | |
if audio_file is None: | |
return "오디오 파일이 없습니다. 다시 시도해 주세요." | |
result = model.transcribe(audio_file, language='ko') | |
transcription = result["text"].strip() | |
return transcription | |
def evaluate_transcription(transcription): | |
if transcription is None or transcription.strip() == "": | |
return "입력된 내용이 없습니다." | |
# Simulated GPT evaluation response. | |
dummy_response = ( | |
"GPT 평가 결과:\n" | |
"주문 내용이 전반적으로 명확합니다. " | |
"더 구체적인 요청이나 추가 정보가 있으면 좋겠지만, 현재 주문은 잘 전달된 것 같습니다." | |
) | |
return dummy_response | |
with gr.Blocks() as demo: | |
gr.Markdown("## 한국어 주문 녹음 앱") | |
# Embed the animated GIF for the waiter animation. | |
gr.Image(value="https://s13.gifyu.com/images/b2NQh.gif", label="웨이터 안내 애니메이션") | |
gr.Markdown(prompt_text) | |
# Audio input (without source parameter) | |
audio_input = gr.Audio(type="filepath", label="녹음: 주문 내용을 말씀해 주세요") | |
# Transcription output | |
transcription_output = gr.Textbox(label="주문 녹취 결과", placeholder="여기에 전사 결과가 나타납니다.") | |
# Evaluation output (simulated GPT feedback) | |
evaluation_output = gr.Textbox(label="GPT 평가 결과", placeholder="여기에 평가 결과가 나타납니다.") | |
# Buttons | |
submit_btn = gr.Button("전송") | |
evaluate_btn = gr.Button("평가") | |
# When clicking "전송", process the audio and display the transcription. | |
submit_btn.click(process_audio, inputs=audio_input, outputs=transcription_output) | |
# When clicking "평가", simulate GPT's evaluation. | |
evaluate_btn.click(evaluate_transcription, inputs=transcription_output, outputs=evaluation_output) | |
demo.launch() | |