|
|
|
import cohere |
|
import gradio as gr |
|
from pypdf import PdfReader |
|
import os |
|
from loguru import logger |
|
import promptic |
|
|
|
|
|
cohere_client = cohere.Client(os.getenv("vSS2Z6Jw3R73yh7XJpnZFttq1oTE0U94iFWdw6wG")) |
|
|
|
|
|
def extract_text_from_pdf(pdf_file): |
|
reader = PdfReader(pdf_file) |
|
text = "" |
|
for page in reader.pages: |
|
text += page.extract_text() |
|
return text |
|
|
|
|
|
def pdf_to_audio(pdf_file): |
|
try: |
|
text = extract_text_from_pdf(pdf_file) |
|
|
|
|
|
response = cohere_client.generate( |
|
model='xlarge', |
|
prompt=text, |
|
max_tokens=500 |
|
) |
|
generated_text = response.generations[0].text.strip() |
|
|
|
|
|
|
|
return generated_text |
|
except Exception as e: |
|
logger.error(f"Error during PDF to audio conversion: {e}") |
|
return "An error occurred while processing the PDF." |
|
|
|
|
|
def gradio_interface(pdf_file): |
|
return pdf_to_audio(pdf_file) |
|
|
|
|
|
gr.Interface(fn=gradio_interface, inputs="file", outputs="text", title="PDF to Audio using Cohere").launch() |
|
|