meetingminute / app.py
Kentlo's picture
Update app.py
955c6aa verified
raw
history blame
1.42 kB
# app.py
import gradio as gr
import speech_recognition as sr
from transformers import pipeline
from datetime import datetime
# μš”μ•½κΈ° μ΄ˆκΈ°ν™”
summarizer = pipeline("summarization", model="t5-small")
# μŒμ„± νŒŒμΌμ„ λ°›μ•„ ν…μŠ€νŠΈ λ³€ν™˜ β†’ μš”μ•½ β†’ 회의둝 생성
def transcribe_and_summarize(audio):
recognizer = sr.Recognizer()
with sr.AudioFile(audio) as source:
audio_data = recognizer.record(source)
try:
text = recognizer.recognize_google(audio_data, language="ko-KR")
except:
return "μŒμ„± 인식 μ‹€νŒ¨", "", ""
summary = summarizer(text, max_length=100, min_length=30, do_sample=False)[0]['summary_text']
now = datetime.now().strftime("%Y-%m-%d %H:%M")
minutes = f"""
# 회의둝
- λ‚ μ§œ: {now}
- 회의 μš”μ•½:
{summary}
- 전체 λ‚΄μš©:
{text}
"""
return text, summary, minutes
# Gradio UI ꡬ성
demo = gr.Interface(
fn=transcribe_and_summarize,
inputs=gr.Audio(type="filepath", label="πŸŽ™ 마이크둜 λ§ν•˜μ„Έμš”"),
outputs=[
gr.Textbox(label="πŸ“„ 전체 ν…μŠ€νŠΈ"),
gr.Textbox(label="🧠 μš”μ•½λ¬Έ"),
gr.Textbox(label="πŸ“‘ 회의둝 (볡사/μ €μž₯ κ°€λŠ₯)"),
],
title="회의둝 μžλ™ 생성기",
description="λ§ν•˜λ©΄ ν…μŠ€νŠΈμ™€ μš”μ•½, νšŒμ˜λ‘μ„ μžλ™μœΌλ‘œ μƒμ„±ν•΄μ€λ‹ˆλ‹€. iPad/PC λͺ¨λ‘ μ‚¬μš© κ°€λŠ₯.",
)
if __name__ == "__main__":
demo.launch()