Pushkar0655g's picture
Add Gradio app for video subtitling
ed41184
raw
history blame
1.66 kB
import gradio as gr
from utils import process_video # Import your backend logic
# Define supported languages
language_map = {
"English": None,
"Hindi": "Helsinki-NLP/opus-mt-en-hi",
"Spanish": "Helsinki-NLP/opus-mt-en-es",
"French": "Helsinki-NLP/opus-mt-en-fr",
"German": "Helsinki-NLP/opus-mt-en-de",
"Telugu": "facebook/nllb-200-distilled-600M",
"Portuguese": "Helsinki-NLP/opus-mt-en-pt",
"Russian": "Helsinki-NLP/opus-mt-en-ru",
"Chinese": "Helsinki-NLP/opus-mt-en-zh",
"Arabic": "Helsinki-NLP/opus-mt-en-ar",
"Japanese": "Helsinki-NLP/opus-mt-en-jap"
}
def generate_subtitles(video_file, language):
"""
Process the uploaded video and generate subtitles.
"""
try:
srt_path = process_video(video_file, language)
return srt_path # Return the path to the generated SRT file
except Exception as e:
return f"Error: {str(e)}"
# Define Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("# AI-Powered Video Subtitling")
gr.Markdown("Upload a video and select a language to generate subtitles.")
with gr.Row():
video_input = gr.File(label="Upload Video File", file_types=["mp4", "mkv", "avi"])
language_dropdown = gr.Dropdown(
choices=list(language_map.keys()),
label="Select Subtitle Language",
value="English"
)
generate_button = gr.Button("Generate Subtitles")
output_srt = gr.File(label="Download Subtitles")
generate_button.click(
generate_subtitles,
inputs=[video_input, language_dropdown],
outputs=output_srt
)
# Launch Gradio App
demo.launch()