speaker2 / app.py
subramaniansrc's picture
Create app.py
99befdf verified
Raw
History Blame Contribute Delete
1.59 kB
import gradio as gr
from processing.slide_parser import parse_slides
from agent.planner import explain_slide
from utils.translator import translate
from speech.tts_engine import create_voice
def generate_lecture(ppt_file, language):
slides = parse_slides(ppt_file)
scripts = []
audio_files = []
total = len(slides)
for i, slide in enumerate(slides):
explanation = explain_slide(slide["text"])
translated = translate(explanation, language)
audio = create_voice(translated, language)
scripts.append(
f"Slide {slide['index']}:\n{translated}\n"
)
audio_files.append(audio)
progress = int((i+1)/total*100)
return audio_files, "\n".join(scripts), progress
with gr.Blocks() as demo:
gr.Markdown("""
# ๐ŸŽ“ AI Agentic Slide Lecturer
Upload a PowerPoint presentation.
The AI will:
- Explain each slide
- Generate narration
- Support Tamil / English
""")
ppt_input = gr.File(label="Upload PPTX")
language = gr.Radio(
["English","Tamil"],
value="English",
label="Lecture Language"
)
run_btn = gr.Button("Generate Lecture")
progress = gr.Slider(
0,
100,
value=0,
label="Progress"
)
audio_output = gr.Audio(
label="Slide Narration"
)
script_output = gr.Textbox(
label="Lecture Script",
lines=15
)
run_btn.click(
generate_lecture,
inputs=[ppt_input, language],
outputs=[audio_output, script_output, progress]
)
demo.launch()