It has been quiet on this blog since the spring, and that is on us. The team has been heads-down shipping and the writing fell behind. This post catches up. Everything below is live today, and the full list with dates is on the changelog.
Two new voice models
The biggest release of the season: Hakim Faseeh v2 (hakim-v2) and Hakim Mulhim v3 (hakim-v3) are now available to everyone, next to Hakim Saree' v1.3.
- Faseeh v2 is built for premium quality, with non-verbal tags such as
[laugh],[breath]and[whisper]across 41 languages. Pick it when naturalness matters more than the lowest latency. - Mulhim v3 adds voice generation from a plain-language description, through
voice_prompton any speech call or the new Voice Design endpoint, which saves a designed voice to your library.
Both use the same POST /v1/audio/speech and realtime stream, priced per character at 1.5 and 2.0 credits. Read the launch post for the full story, or start with how voice prompting works.
Realtime speech that sounds finished
Most of our work since the summer went into the part of a voice product people notice first: whether the audio still sounds right forty turns into a live conversation.
- No more clicks. Streamed audio is now resampled seamlessly from one chunk to the next, and stray ticks are cleaned out of pauses.
- Steady loudness through long calls. We catch level creep late in a session and reset before it becomes audible. Voices registered from loud reference clips are levelled when they are registered.
- Natural endings. Utterances finish on their full tail instead of stopping on the last syllable.
- Smoother long passages. Long inputs keep a steady pitch, and ordinary sentences are no longer split into short pieces, so the shape of a sentence stays intact.
We wrote up how we found and fixed these in a separate post.
Two new options for realtime TTS
If your agent forwards a language model's output sentence by sentence, two opt-in session options help:
trailing_silence_mssets the pause after each utterance, from0to500. Set0for gapless joins.chunk_chain: falsegenerates each utterance from the voice's own reference, which keeps delivery lively over very long sessions.
Both are off by default, so nothing changes unless you set them. The streaming guide has the details.
Speech-to-text that knows your words
- Custom vocabulary. Realtime sessions accept a
vocabularyobject withterms,notesandhints, so names, brands and acronyms come out right. We wrote a practical guide to getting the most out of it. - Silence trimming. Calls often open with seconds of silence before anyone speaks. With
trim_leading_silence: truewe hold audio back until speech starts. Billing is unchanged. - Warm from the first word. Realtime sessions no longer pay a cold-start delay on the first utterance, and an idle session stays open for up to five minutes with its vocabulary intact.
Better voice clones
Cloning now cleans the reference recording first, removing background noise and harsh sibilance, and uses the reference transcript, which improves pronunciation and likeness. Clones made from phone or room recordings benefit most. Two voices can now share a name, and clone previews play reliably.
Reliability and security
- If a speech host fails mid-request, we retry once on another host automatically. When a host restarts, traffic moves to a healthy one instead of returning an error.
- Realtime sessions connect faster, and the occasional 502 on long-idle connections is gone.
- Webhook URLs can only point at public addresses, browser access to the API is limited to our own sites, and rate limits are tied to the real client address.
A new tryhakim.ai
You may have noticed the site looks different. We rebuilt every public page on a new design system, in Arabic and English, light and dark: a new pricing page, a clearer enterprise page, refreshed sign-in and sign-up, and a phone menu built for touch.
From here
We will keep the changelog current from now on, with a short entry for every release. If something you need is not on it yet, tell us at support@tryhakim.ai.