Logo Lanfrica

Bosonaa/learn-afaan-oromo

Domaine:

natural language processingeducation

Type de record:

software
Créateur:
Bos
Hôte:
# learn-afaan-oromo A Duolingo-style app for teaching Afaan Oromo to English-fluent kids (15 and under). Two parts: a content pipeline that turns open dictionary data into reviewable unit word lists, and a Next.js PWA that drills those words. The word lists are still an unreviewed draft — the app says so on every screen until a fluent speaker signs them off. ## How the content is produced ``` kaikki.org Oromo JSONL content/curriculum.ts (open lexicon) (authored teaching order) \ / npm run draft:units | content/units/*.yaml review/ .csv (draft, unreviewed) (for a fluent speaker to correct) ``` The lexicon supplies Oromo↔English glosses, IPA and native-speaker audio; the curriculum supplies which English concepts are taught, in which unit, in which order. A dictionary is not a curriculum, so the two are kept separate on purpose. ## Running the app ```bash npm install npm run dev # localhost ``` Unit YAML and mirrored audio are committed, so the app runs without regenerating content. DEPLOY.md walks through building it, putting it on a phone and deploying. Progress (XP, streak, spaced-repetition schedule) is stored in `localStorage` only: no accounts, no server, no analytics, nothing about a child leaves the device. Lessons are 10 prompts drawn from four exercise kinds — English→Oromo choice, Oromo→English choice, listen-and-choose (only for words with a recording), and type-the-word. Words due for review lead the lesson; a miss resets its interval so it returns the same day. ## Recording the missing words About half the vocabulary has no Wikimedia recording, so `/record` (dev only) walks through exactly those words and captures a clip per word straight into `public/audio/recorded/`, listed in `content/recordings.json`. Commit both; the listening exercises then use a family voice wherever no licensed native clip exists. `ffmpeg`, if installed, transcodes the take to mp3 so iOS can play it. The r …