import gradio as gr import whisper import os from moviepy.editor import VideoFileClip model = whisper.load_model("base") def transcribe_media(file): # 확장자 확인 filename, ext = os.path.splitext(file) # mp4인 경우: 오디오 추출 if ext == ".mp4": video = VideoFileClip(file) audio_path = filename + ".mp3" video.audio.write_audiofile(audio_path) result = model.transcribe(audio_path) os.remove(audio_path) # 임시 파일 정리 else: result = model.transcribe(file) return result["text"] demo = gr.Interface( fn=transcribe_media, inputs=gr.File(label="🎬 mp4 / mp3 / wav 파일 업로드"), outputs="text", title="🎤 Whisper 음성 전사기", description="mp4 영상 또는 mp3/wav 음성 파일을 텍스트로 변환합니다.", allow_flagging="never" ) demo.launch()