Overview
HakimSTTService transcribes audio into text using Hakim’s
Arabic-first realtime speech-to-text API. It is a WebsocketSTTService that opens
one persistent connection to WSS /v1/audio/transcriptions/stream, forwarding audio
continuously and relying on Pipecat’s own VAD to signal end-of-turn — the same pattern
used by other continuous-streaming STT plugins in this framework (e.g. AssemblyAI,
Deepgram).
Source Repository
Source code, examples, and issues for the Hakim integration
Hakim Docs
Learn more about Hakim’s speech services
API Keys
Create and manage your Hakim API keys from the dashboard (Settings -> API keys)
Installation
This is a community-maintained package distributed separately frompipecat-ai,
built and maintained by the Hakim team. It is not yet published to PyPI, so install
it directly from GitHub:
Prerequisites
Hakim Account Setup
Before using the Hakim STT service, you need:- Hakim Account: Sign up at tryhakim.ai
- API Key: Generate a key (format:
hk_live_...) from the dashboard (Settings -> API keys), with thestt:writescope
Required Environment Variables
HAKIM_API_KEY: Your Hakim API key. Falls back to this environment variable ifapi_keyis not passed to the constructor.
Configuration
Hakim API key. Falls back to the
HAKIM_API_KEY environment variable if not
provided.Language hint for transcription.
Audio format of the input stream. One of
"pcm16", "opus", or "mulaw".
Pipecat’s transport delivers PCM16 by default, so the default matches without
any client-side transcoding.Must match the sample rate of audio frames actually sent to the service.
Pins the session to a specific regional endpoint. One of
"auto", "de",
"uae", or "ksa". "auto" picks the closest healthy region.Overrides the region table entirely (staging / self-hosted). Takes precedence
over
region.Settings
Runtime-updatable configuration passed via thesettings constructor argument
using HakimSTTService.Settings(...).
See the source
repository for the
authoritative, up-to-date configuration options.