Speech-to-text

Arabic transcription that actually understands dialect.

Hakim Arab v2 transcribes MSA + 14 regional Arabic dialects with dialect-aware decoding, speaker diarisation, and code-switching for bilingual audio.

Hakim Arab v2

How it works

From audio to text in three calls.

The same pipeline that powers our enterprise customers, surfaced through a single endpoint.
  1. Upload the audio

    POST a file up to 100 MB (wav, mp3, flac, m4a, webm) with an optional language hint.

  2. We transcribe

    Hakim Arab v2 detects dialect, applies punctuation, and diarises speakers in a single pass.

  3. Get structured text

    Return plain text, verbose JSON with word timings, or SRT/VTT, one response format flag.

Try it

Drop a file in the playground.

Anonymous uploads aren't supported yet, create a free account to transcribe audio in a few clicks.

Signup required

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

Transcription that survives real Arabic audio.

Built for dialect-heavy, code-switched, and noise-laden recordings, not just studio reads.

Meeting notes

Multi-speaker diarisation, built in.

Get labelled speakers and punctuated transcripts for Arabic + English meetings without stitching tools together.

Media & captions

SRT and VTT in one request.

Caption dialect-specific interviews, news segments, and social clips with word-level timings.

Contact centre

Call transcripts for QA and analytics.

Feed call recordings straight into your analytics stack, dialect-aware Arabic keeps the signal intact.

Technical specs

Shape and limits at a glance.

Model
Hakim Arab v2Arabic-first streaming STT.
Latency p95
90 msFirst-token, real-time mode; rolling 24-hour p95 across our four live regions.
Languages
30+ supported · 15 Arabic dialects.MSA, Khaleeji, Egyptian, Levantine, Maghrebi, Iraqi, Sudanese, Yemeni.
Modes
Batch · real-time streaming.One model, two transport surfaces.
Input formats
wav · mp3 · flac · m4a · webm.Up to 100 MB per file.
Diarisation
Speaker labels returned per segment.Supports 1–8 speakers per track.

API

One upload, one call, one transcript.

Audio goes up, JSON comes back. Python-first because that's where most ingestion pipelines live.

See the full reference in the docs.

python
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?

Start transcribing today.

Free tier includes 5 minutes of STT per month. Move to Starter when the load outgrows it.