Oyatalk is a web-based language learning app that helps users learn English and Nigerian languages (Yoruba, Igbo, Hausa) through speech-driven practice. Built with modern web technologies and powered by the Spitch speech-to-text API, it provides real-time feedback on pronunciation and fluency, making language learning fun, practical, and accessible.
- 🎤 Speak to Learn: Practice phrases by speaking into your mic — Oyatalk listens and gives instant feedback.
- 📚 Bilingual Lessons: Learn English if you’re a Yoruba/Igbo/Hausa speaker, or practice Nigerian languages if you’re learning from English.
- 🏪 Scenario-Based Learning: Lessons are grouped into real-life contexts like Market, Health, Transport, Work, and Polite Expressions.
- ✅ Smart Scoring: Get detailed feedback on each word — see what’s correct, close, or wrong.
- 🔄 Adaptive Practice: Words or phrases you miss get added to a Practice Again deck for repetition.
- 📊 Progress Tracking: Track streaks, XP points, and view your learning history.
- 🏆 Leaderboard: Compete with other learners and climb to the top.
- 🌍 Multilingual UI: Navigate the app in English, Yoruba, Igbo, or Hausa.
- Login/Register – Simple email and password login.
- Choose a Language Goal – Learn English, Yoruba, Igbo, or Hausa.
- Pick a Lesson – Example: At the Market.
- Listen & Repeat – Hear native audio, then speak into your mic.
- Get Feedback – Oyatalk transcribes your speech, scores it, and highlights mistakes.
- Track Progress – Earn XP, streaks, and badges as you improve.
- Climb the Leaderboard – See how you rank against others.
- Frontend: React, TailwindCSS
- Backend: FastAPI (Python) with JWT Auth
- Database: PostgreSQL (via SQLAlchemy / Supabase)
- Speech-to-Text: Spitch API
- Deployment: Vercel (frontend) + Render (backend)
flowchart LR
U[User Browser] --> F[Next.js Frontend]
F -->|JWT + REST| B[FastAPI Backend]
B -->|SQLAlchemy| D[(PostgreSQL)]
B -->|Auth + User Data| FB[Firebase]
B -->|Speech Transcription Requests| S[Spitch API]
-
Create a
.envfile in the repo root with the values your deployment needs (defaults shown):NEXT_PUBLIC_API_URL=http://backend:8000 _DATABASE_URL=postgresql://postgres:postgres@db:5432/oyatalk FIREBASE_CREDENTIALS_JSON=<paste your Firebase service-account JSON as a single line> SPITCH_API_KEY= SPITCH_API_URL=https://api.spitch.app/v1/transcribe
-
Build the images (targets
frontendandbackendlive in the shared Dockerfile):docker compose build
-
Start both services:
docker compose up -d
-
Access the apps:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000/health
-
Notes:
- Default
_DATABASE_URLis PostgreSQL. Set credentials/host for your environment. FIREBASE_CREDENTIALS_JSONmust be valid JSON (minify the service account file or wrap it in single quotes).- Rebuild after dependency changes:
docker compose build --no-cache.
- Default
- English: Hello, how are you?, Where is the bathroom?, I don’t understand.
- Yoruba: Báwo ni?, Mo fẹ́ ra ìrẹsì.
- Igbo: Kedu?, Achọrọ m ịhụ dọkịta.
- Hausa: Sannu, ya ya kake?, Ina tashar mota?
- Tackles real communication problems in Nigeria: healthcare, education, markets, emergencies.
- Bridges the gap between English proficiency and local language preservation.
- Makes learning fun, gamified, and culturally relevant.
v1.0 - actively maintained. Planned improvements include:
- Phoneme-level pronunciation tips.
- Conversation simulations (e.g., doctor–patient roleplay).
- Offline-first mobile support.
MIT License. Free to use and extend.