Spaces:
Sleeping
Sleeping
metadata
title: NCAIR ASR API
emoji: ποΈ
colorFrom: green
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
NCAIR Nigerian ASR β API backend
An OpenAI-compatible speech-to-text service for the voice assistant. It loads the
right NCAIR Whisper model based on the request's language field, so one endpoint
covers YorΓΉbΓ‘, Igbo, Hausa, and Nigerian-accented English.
POST /v1/audio/transcriptions multipart: file [, model] [, language] -> {"text": "..."}
GET /health
| language value | Model |
|---|---|
yo / yoruba |
NCAIR1/Yoruba-ASR |
ig / igbo |
NCAIR1/Igbo-ASR |
ha / hausa |
NCAIR1/Hausa-ASR |
en / english / nigerian english |
NCAIR1/NigerianAccentedEnglish |
Models load lazily on first use and are cached, so startup is fast and only the languages you use get loaded. CPU is enough (Whisper Small).
Before you deploy
These models are gated and license-restricted:
- Accept the terms for each model you'll use on Hugging Face (Yoruba-ASR, Igbo-ASR, Hausa-ASR, NigerianAccentedEnglish) with the account whose token you'll use.
- Add an
HF_TOKENSecret so the gated weights can download. - License: research/innovation license β not for commercial or large-scale use (>1000 active users) without a separate Awarri agreement. Attribution: "developed by Awarri Technologies in partnership with the Federal Government of Nigeria." (Not legal advice.)
Deploy
- Create a Docker β Blank Space, push
app.py,requirements.txt,Dockerfile,README.md. - Add the
HF_TOKENSecret. - Wait for the build; the first call per language downloads that model.
Wire it into voice-ai-demo
On the voice-ai-demo Space, set per language (Yoruba shown):
| Secret | Value |
|---|---|
ASR_YORUBA_BASE_URL |
https://<this-space>.hf.space/v1 |
The demo sends language=yo, so this service returns Yoruba. For Igbo/Hausa/English,
add those languages to the demo's config.json and set ASR_<LANG>_BASE_URL to the
same URL β the service routes by the language hint.
Local test
curl -X POST http://localhost:7860/v1/audio/transcriptions \
-F "file=@sample.wav" -F "language=yo"
Project Structure
ncair-asr-api/
βββ app.py # FastAPI OpenAI-compatible ASR (multi-language)
βββ requirements.txt # transformers 5.x + serving deps
βββ Dockerfile # CPU image with ffmpeg
βββ README.md # this file