kabita-choudhary's picture
Update app.py
a8ee9c9
raw
history blame contribute delete
No virus
1.65 kB
import gradio as gr
import os
import sys
import subprocess
import whisper
model = whisper.load_model("medium")
def video2mp3(video_file, output_ext="mp3"):
filename, ext = os.path.splitext(video_file)
subprocess.call(["ffmpeg", "-y", "-i", video_file, f"{filename}.{output_ext}"],
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT)
return f"{filename}.{output_ext}"
def translate(input_video):
audio_file = video2mp3(input_video)
model = whisper.load_model("base")
audio = whisper.load_audio(audio_file)
#result= model.transcribe(audio)
options = dict(beam_size=5, best_of=5)
translate_options = dict(task="translate", **options)
transcribe_options = dict(task="transcribe", **options)
result_translate = model.transcribe(audio_file,**translate_options)
result_transcribe = model.transcribe(audio_file,**transcribe_options)
return "Transcribe result :"+result_transcribe["text"] +"\n ---Translated text in english ---- "+result_translate["text"]
block = gr.Blocks()
with block:
with gr.Group():
with gr.Box():
with gr.Row().style():
inp_video = gr.Video(
label="Input Video",
type="filepath",
mirror_webcam = False
)
op_video = gr.Textbox()
btn = gr.Button("Generate Subtitle Video")
btn.click(translate, inputs=[inp_video], outputs=[op_video],api_name="view_api")
block.launch(enable_queue = True,debug=True)