963861271fb90725164058f4f70f1a0a11b4baa8
- Document Gitea auth patterns (basic auth vs API tokens) - URL-encoding requirement for passwords with @ - Direct VPS IP vs Cloudflare domain - Agent team roster and capabilities - Audio pipeline quality ratings - Content format template - Repo structure reference
FalahMobile Content Repository
Micro-learning courses for the FalahMobile Islamic lifestyle app.
Repository Structure
falahmobile-content/
├── courses/ # All courses
│ ├── daily-fiqh-beginner/
│ ├── 40-hadith-nawawi/
│ └── tafsir-bites/
├── assets/ # Shared images, fonts, icons
├── scripts/ # Build and generation scripts
│ ├── generate-audio.py # TTS pipeline
│ └── validate-content.mjs # Content quality checks
├── templates/ # Lesson and course templates
└── README.md
Content Format
Every lesson is a Markdown file with YAML frontmatter:
---
id: "course-module-lesson"
title: "Lesson Title"
course: "Course Name"
module: "Module Name"
order: 1
read_time: "3 min"
difficulty: "beginner"
tags: ["fiqh", "prayer"]
source_refs: ["Quran 5:6", "Sahih Muslim 271"]
audio_ready: true
---
Audio Pipeline
⚠️ Quality First — No Robot Voices
FalahMobile learners expect warm, natural, human-like audio. We specifically avoid the "Stephen Hawking" robotic sound of old TTS systems.
Quality Rankings (Naturalness / Calmness)
| Service | Voice | Naturalness | Free Tier | Setup |
|---|---|---|---|---|
| ElevenLabs ★ | Rachel |
9.5/10 | 10K chars/mo | API key |
| Azure Speech ★ | en-US-AriaNeural |
9.0/10 | 500K chars/mo | Azure account |
| Google Cloud | en-US-Neural2-F |
8.0/10 | 1M chars/mo | GCP account |
| Piper TTS | amy |
6.5/10 | Unlimited | Local download |
Recommendation: Use Azure AriaNeural or ElevenLabs Rachel for production. Piper is acceptable for testing but sounds noticeably synthetic.
Generate Audio
# See all engines with quality ratings
python scripts/generate-audio.py --list-engines
# Compare quality with a sample (generates test files)
python scripts/generate-audio.py --quality-check
# Using Azure (recommended — human-like, calm female)
python scripts/generate-audio.py --course daily-fiqh-beginner --engine azure --voice en-US-AriaNeural
# Using ElevenLabs (best quality, limited free tier)
export ELEVENLABS_API_KEY="your-key"
python scripts/generate-audio.py --course daily-fiqh-beginner --engine elevenlabs --voice Rachel
# Using Piper (free, local, acceptable for testing)
python scripts/generate-audio.py --course daily-fiqh-beginner --engine piper --voice amy
SSML Settings for Natural Delivery
The script uses Azure's calm expressive style with gentle prosody:
rate="-5%"— slightly slower than normal speechpitch="-2%"— slightly deeper, more groundedmstts:express-as style="calm"— warm, meditative tone
This is tuned for religious/reflective content. Not robotic. Not rushed. Human.
Gitea Integration
Push content to your Gitea instance:
git remote add gitea https://your-gitea.com/user/falahmobile-content.git
git push gitea main
The FalahMobile app fetches content via the Gitea API or raw file URLs.
Adding a New Course
- Create
courses/<course-id>/manifest.json - Create module directories with lesson
.mdfiles - Run
python scripts/validate-content.mjs - Generate audio with
python scripts/generate-audio.py - Commit and push to Gitea
Description
Languages
Python
100%