Logo Lanfrica

aidyai/SAY-IT

Domaine:

natural language processing

Type de record:

softwaretools
Créateur:
aid
Hôte:
Voice-Pronunciation Checker Api for Ibibio -- Etimbuk by Usem AI SayIt Real-time pronunciation engine for Efik and Ibibio. The ASR backbone of Etimbuk by Usem AI. --- ## The problem Google, Azure, and AWS have speech recognition for dozens of languages. Efik and Ibibio — the 4th most spoken language group in Nigeria, with over 15 million speakers across West Africa, the UK, the US, and Canada — are not among them. There is no off-the-shelf solution. There is no fallback. Etimbuk is a language learning platform built to keep Efik and Ibibio alive for the next generation of speakers. For it to work, learners need to hear a word, say it, and know immediately whether they got it right. That feedback loop is SayIt. --- ## What it does A learner inside Etimbuk sees a phrase on screen. They tap the microphone and speak. SayIt: - Accepts audio in any format the browser produces (WebM, MP4, OGG, WAV) - Converts it to 16 kHz mono and runs it through a TensorRT-LLM–accelerated Whisper model - Scores the result character-by-character against the expected phrase - Returns word-level feedback — each word marked correct or incorrect, with what was actually heard All of this happens in under a second, for up to 300 learners at once. --- ## How it's built Everything is in `say_it.py` — one file, deployed to Modal. ``` Browser (Etimbuk) │ ▼ api() lightweight router, no GPU · validates input fails fast with clean 4xx errors · assigns request ID for session tracking in Etimbuk │ ▼ SayIt A100-80GB · TRT-LLM Whisper · 20 containers 320 parallel slots total · single drain loop no race conditions under concurrent load · 300s warm window stays hot between learner sessions · 120s hard timeout never hangs, always returns ``` The scoring algorithm is character-level, not word-level. This matters for Efik and Ibibio because ASR models trained on limited data sometimes merge or split words differently than written form. Character-level matching absorbs tha …