link-to-text / app.py
Ivan000's picture
Update app.py
262720b verified
# app.py
# =============
# This is a complete app.py file for a web scraping and text-to-speech app using gTTS, BeautifulSoup, langdetect, and Gradio.
import requests
from bs4 import BeautifulSoup
from gtts import gTTS
import os
import gradio as gr
from langdetect import detect
def get_text_from_webpage(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
text = soup.get_text()
return text
def text_to_speech(text, lang='en'):
tts = gTTS(text=text, lang=lang)
tts.save("output.mp3")
return "output.mp3"
def process_url(url):
text = get_text_from_webpage(url)
lang = detect(text)
audio_file = text_to_speech(text, lang)
return audio_file, text
# Create Gradio interface
with gr.Blocks() as demo:
url_input = gr.Textbox(lines=1, placeholder="Enter the URL of the webpage...")
audio_output = gr.Audio(label="Generated Speech")
text_output = gr.Textbox(lines=10, label="Extracted Text")
greet_btn = gr.Button("Submit")
greet_btn.click(fn=process_url, inputs=url_input, outputs=[audio_output, text_output])
if __name__ == "__main__":
demo.launch()
# Dependencies
# =============
# The following dependencies are required to run this app:
# - requests
# - beautifulsoup4
# - gtts
# - langdetect
# - gradio
#
# You can install these dependencies using pip:
# pip install requests beautifulsoup4 gtts langdetect gradio