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() | |