Meeting notes
Multi-speaker diarisation, built in.
Get labelled speakers and punctuated transcripts for Arabic + English meetings without stitching tools together.
Speech-to-text
Hakim Arab v2 transcribes MSA + 14 regional Arabic dialects with dialect-aware decoding, speaker diarisation, and code-switching for bilingual audio.
How it works
POST a file up to 100 MB (wav, mp3, flac, m4a, webm) with an optional language hint.
Hakim Arab v2 detects dialect, applies punctuation, and diarises speakers in a single pass.
Return plain text, verbose JSON with word timings, or SRT/VTT, one response format flag.
Try it
Anonymous uploads aren't supported yet, create a free account to transcribe audio in a few clicks.
The STT anonymous endpoint is deferred, sign up to drop a file, pick a language, and get a transcript in the playground.
Where teams ship this
Built for dialect-heavy, code-switched, and noise-laden recordings, not just studio reads.
Meeting notes
Get labelled speakers and punctuated transcripts for Arabic + English meetings without stitching tools together.
Media & captions
Caption dialect-specific interviews, news segments, and social clips with word-level timings.
Contact centre
Feed call recordings straight into your analytics stack, dialect-aware Arabic keeps the signal intact.
Technical specs
API
Audio goes up, JSON comes back. Python-first because that's where most ingestion pipelines live.
See the full reference in the docs.
from hakim import Hakim
client = Hakim() # reads HAKIM_API_KEY from the environment
with open("call.wav", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="hakim-arab-v2",
file=audio_file,
language="ar",
response_format="verbose_json",
)
print(transcription.text)Ready to ship?