#https://huggingface.co/spaces/diogenemudenge/MDspace import gradio as gr import pdfplumber from transformers import pipeline from gtts import gTTS import speech_recognition as sr import os def extract_abstract(text): # Simple logic to extract text between 'Abstract' and 'Introduction' abstract_start = text.find('Abstract') abstract_end = text.find('Introduction', abstract_start) return text[abstract_start:abstract_end] def summarize_abstract(abstract): summarizer = pipeline('summarization', model='facebook/bart-large-cnn') summary = summarizer(abstract, max_length=130, min_length=30, do_sample=False) return summary[0]['summary_text'] def convert_to_speech(text): tts = gTTS(text) audio_file = 'summary.mp3' tts.save(audio_file) return audio_file def my_app_function(pdf_file): with pdfplumber.open(pdf_file) as pdf: first_page = pdf.pages[0] text = first_page.extract_text() abstract = extract_abstract(text) summary = summarize_abstract(abstract) audio_file = convert_to_speech(summary) return summary, audio_file iface = gr.Interface( fn=my_app_function, inputs=gr.File(), # Updated line outputs=["text", "audio"], title="PDF Abstract Summarizer", description="This app reads PDFs, summarizes the abstract, and converts the summary to speech. Please upload PDFs with abstracts." ) iface.launch(share=True)