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()