Edward Nagy
Set exact gradio version
e3169c4 unverified
raw
history blame
1.56 kB
from transformers import pipeline
import gradio as gr
import requests
from moviepy.editor import *
import os
os.system("pip uninstall -y gradio")
os.system("pip install gradio==4.8.0")
pipe = pipeline(model="esnagy/whisper-small-hu")
def transcribe_audio(audio_file):
print("Transcribing audio: ", audio_file)
text = pipe(audio_file)["text"]
return text
def transcribe_video(video_url):
# Download the video from the URL
video_filename = "temp_video.mp4"
with open(video_filename, "wb") as f:
response = requests.get(video_url)
f.write(response.content)
# Load the video using moviepy
video = VideoFileClip(video_filename)
audio = video.audio
audio_file = "temp_audio.wav"
audio.write_audiofile(audio_file, codec="pcm_s16le")
text = transcribe_audio(audio_file)
# Remove temporary files
os.remove(video_filename)
os.remove(audio_file)
return text
def transcribe(video_url="", audio=None):
if video_url.strip() != "":
return transcribe_video(video_url)
else:
return transcribe_audio(audio)
iface = gr.Interface(
fn=transcribe,
inputs=[
gr.Textbox(label="Enter video URL", placeholder="Or leave empty to use microphone"),
gr.Audio(sources=["microphone"], type="filepath"),
],
outputs="text",
title="Whisper Small Hungarian",
description="Realtime demo for Hungarian speech recognition using a fine-tuned Whisper small model. Enter a video URL or record your voice to transcribe.",
)
iface.launch()