Taha / app.py
Taha369's picture
Upload 2 files
b69c07c verified
import gradio as gr
from gtts import gTTS
import os
import random
import time
from datetime import datetime
# UI theme
theme = gr.themes.Default(
primary_hue="blue",
secondary_hue="blue",
neutral_hue="gray",
font=["Arial", "sans-serif"]
).set(
button_primary_background_fill="*primary_200",
button_primary_background_fill_hover="*primary_300",
button_primary_text_color="white",
button_secondary_background_fill="*secondary_200",
button_secondary_background_fill_hover="*secondary_300",
button_secondary_text_color="white",
background_fill_primary="#f0f8ff",
background_fill_secondary="white",
border_color_primary="#cfe2f3",
block_background_fill="white",
block_label_background_fill="#e6f0ff",
block_label_text_color="#1a5fb4",
block_title_text_color="#1a5fb4"
)
# Spiritual content
quran_verses = {
"Calm": "Indeed, in the remembrance of Allah do hearts find rest. (Surah Ar-Raโ€™d: 28)",
"Sad": "Indeed, with hardship comes ease. (Surah Ash-Sharh: 6)"
}
hadiths = {
"Calm": "The Prophet ๏ทบ said: Verily, in the remembrance of Allah do hearts find rest.",
"Sad": "The Prophet ๏ทบ said: With hardship comes ease."
}
duas = {
"Calm": "O Allah, place light in my heart.",
"Sad": "O Allah, relieve my distress and ease my affairs."
}
# Get content by feeling
def get_content(emotion):
return quran_verses.get(emotion, ""), hadiths.get(emotion, ""), duas.get(emotion, "")
# Convert text to audio
def text_to_speech(text):
tts = gTTS(text=text, lang='ar')
filename = f"audio_{int(time.time())}.mp3"
tts.save(filename)
return filename
# Build the Gradio app
with gr.Blocks(theme=theme, title="Therapy of Enlightenment") as app:
gr.Markdown("## ๐ŸŒŸ Therapy of Enlightenment")
gr.Markdown("Select your current emotional state to receive personalized spiritual content.")
emotion = gr.Radio(choices=["Calm", "Sad"], label="How do you feel now?")
verse = gr.Textbox(label="๐Ÿ“– Quranic Verse")
hadith = gr.Textbox(label="๐Ÿ“œ Hadith")
dua = gr.Textbox(label="๐Ÿ™ Suggested Supplication (Dua)")
audio = gr.Audio(label="๐ŸŽง Listen to the Dua")
btn = gr.Button("Get Spiritual Content")
def full_process(e):
v, h, d = get_content(e)
audio_file = text_to_speech(d)
return v, h, d, audio_file
btn.click(fn=full_process, inputs=emotion, outputs=[verse, hadith, dua, audio])
app.launch()