Solshine's picture
Update app.py
04bcda5 verified
raw history blame
No virus
1.69 kB
import streamlit as st
from gtts import gTTS
from io import BytesIO
from PyPDF2 import PdfReader
st.image('OIG3 (4).jpeg', caption='Your host on this PDF-to-Speech adventure!')
st.markdown("## Ready for an Epic PDF Adventure? πŸš€")
st.markdown("Buckle up! Upload your PDF, set your preferences, and let's explore the text together!")
# Sliders for page range selection
start_page = st.slider('Select the starting page', min_value=1, max_value=400, value=1)
end_page = st.slider('Select the number of pages you wish to transcribe', min_value=1, max_value=400, value=100)
uploaded_file = st.file_uploader("Choose a PDF file", type="pdf")
if uploaded_file is not None:
reader = PdfReader(uploaded_file)
total_pages = len(reader.pages)
st.write(f"The uploaded PDF has {total_pages} pages.")
if start_page <= total_pages:
for i in range(start_page - 1, min(end_page, total_pages)):
page = reader.pages[i]
text = page.extract_text()
sound_file = BytesIO()
tts = gTTS(text, lang='en')
tts.write_to_fp(sound_file)
st.audio(sound_file)
st.write(f"Page {i + 1} of {total_pages} has been read aloud.")
st.write("πŸŽ‰ Adventure complete! Have a fantastic day! πŸŽ‰")
else:
st.write("⚠️ The starting page exceeds the total number of pages in the PDF.")
prompt = st.chat_input("Copy/Paste or type in text to have read aloud")
if prompt:
st.write(prompt)
with st.popover("✨ Open your text-to-speech from text input ✨"):
sound_file = BytesIO()
tts = gTTS(prompt, lang='en')
tts.write_to_fp(sound_file)
st.audio(sound_file)