Spaces:
Running
Running
# 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 | |