gusdelact's picture
Upload 10 files
72c93c6 verified
import gradio as gr
import os
from services.transcription import TranscriptionService
from services.summarization import SummarizationService
def process_audio(audio_file):
"""Process uploaded audio file through transcription and summarization pipeline."""
if audio_file is None:
return "Error: Please upload an audio file", "", ""
try:
# Initialize services
transcription_service = TranscriptionService()
summarization_service = SummarizationService()
# Transcribe audio
transcript = transcription_service.transcribe(audio_file)
if not transcript:
return "Error: Failed to transcribe audio", "", ""
# Generate summary
summary = summarization_service.summarize(transcript)
# Extract action items
action_items = summarization_service.extract_action_items(transcript)
return transcript, summary, action_items
except Exception as e:
return f"Error: {str(e)}", "", ""
def create_interface():
"""Create and configure the Gradio interface."""
with gr.Blocks(title="Meeting Audio Processor") as interface:
gr.Markdown("# Meeting Audio Processor")
gr.Markdown("Upload an audio file to get transcript, summary, and action items")
with gr.Row():
audio_input = gr.Audio(
label="Upload Audio File",
type="filepath"
)
process_btn = gr.Button("Process Audio", variant="primary")
with gr.Row():
with gr.Column():
transcript_output = gr.Textbox(
label="Transcript",
lines=10,
placeholder="Transcript will appear here..."
)
with gr.Column():
summary_output = gr.Textbox(
label="Summary",
lines=5,
placeholder="Summary will appear here..."
)
action_items_output = gr.Textbox(
label="Action Items",
lines=5,
placeholder="Action items will appear here..."
)
process_btn.click(
fn=process_audio,
inputs=[audio_input],
outputs=[transcript_output, summary_output, action_items_output]
)
return interface
if __name__ == "__main__":
interface = create_interface()
interface.launch()