Downloads · 30 days
0
boazsew/Ethio-ASR-medical-api
Ethio-ASR-medical-api is a automatic speech recognition model from boazsew. Use it when you need speech turned into text. The card lists the license as apache-2.0.
Long-form, multi-speaker transcription for Ethiopian languages, packaged for Hugging Face Inference Endpoints.
Downloads · 30 days
0
Access
Public
Updated Jun 21, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.py25.2 KB · 68%
From the Hugging Face model README
Long-form, multi-speaker transcription for Ethiopian languages, packaged for Hugging Face Inference Endpoints.
Pipeline: silero-VAD (chunking) → pyannote/speaker-diarization-3.1 (speaker labels) → boazsew/Ethio-ASR-w2v-bert-2.0-uf (ASR for 5 Ethiopian languages: Amharic, Tigrinya, Oromo, Sidaama, Wolaytta).
Built for a mobile app that records doctor↔patient consultations and returns speaker-labelled transcripts.
Use the Inference Endpoint UI:
boazsew/Ethio-ASR-medical-api).HF_TOKEN = a read token from https://huggingface.co/settings/tokens
(needed to download the gated diarizer).Request format:
curl https://<your-id>.endpoints.huggingface.cloud \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: audio/wav" \
--data-binary @visit.wav
Returns the full transcript JSON when done. Suitable for clips up to ~15 minutes (longer than that, HF's request timeout may fire).
Use this when you want /transcribe/stream (live transcript turns
arriving as they're produced) or multiple endpoints.
docker build -f Dockerfile -t boazsew/ethio-asr-api:0.1 .
docker push boazsew/ethio-asr-api:0.1
docker.io/boazsew/ethio-asr-api:0.180/healthHF_TOKEN (for the diarizer download)API_TOKEN (bearer token your mobile app must present — generate with
openssl rand -hex 24)Request format:
# Sync
curl https://<your-id>.endpoints.huggingface.cloud/transcribe \
-H "Authorization: Bearer $API_TOKEN" \
-F [email protected]
# Streaming (Server-Sent Events)
curl -N https://<your-id>.endpoints.huggingface.cloud/transcribe/stream \
-H "Authorization: Bearer $API_TOKEN" \
-F [email protected]
{
"duration_s": 480.3,
"languages": ["amh", "tir"],
"num_speakers": 2,
"turns": [
{"speaker": "SPEAKER_00", "start_s": 0.0, "end_s": 4.2,
"text": "ሰላም ለዓለም", "language": "amh"},
{"speaker": "SPEAKER_01", "start_s": 4.5, "end_s": 9.1,
"text": "selam le alem", "language": "amh"}
],
"processing_time_s": 42.3
}
For streaming (Path B /transcribe/stream):
event: meta
data: {"duration_s": 480.3, "num_chunks": 32, "num_speakers_initial": 2}
event: turn
data: {"speaker": "SPEAKER_00", "start_s": 0.0, "end_s": 4.2, ...}
event: done
data: {"languages": ["amh", "tir"], "num_speakers": 2, "num_turns_final": 18}
min_replicas=1 if you want always-on (costs more).