Gepard is now a TTS vendor in jambonz

On this page
jambonz, the open-source telephony platform for voice AI, now ships nineninesix as a built-in TTS vendor: Gepard 1.0, 8 kHz mu-law, $5 per million characters.
jambonz now ships nineninesix as a built-in text-to-speech vendor. It has been in released builds since v1.0.15 of the speech layer, so on a current cluster Gepard 1.0 is a vendor you select, not a plugin you write.
Nothing to install, nothing to patch, no custom speech provider to maintain. It is one speech credential, added in the same place you configure every other vendor on the platform.
If you already run jambonz, skip to how to switch it on. If you have never heard of jambonz and you are building anything that answers a phone, the rest of this is worth ten minutes.
What is jambonz?#
jambonz is an open-source telephony platform for voice AI. It sits between the phone network and your application and handles the part almost nobody wants to build twice: SIP signalling, a session border controller, media, recording, transcoding and call routing.
Your application does not touch any of that. It answers a webhook or holds a WebSocket, and it returns JSON verbs: say, gather, dial, transcribe, listen, agent. jambonz executes them on the call. The model is close to the one Twilio popularised, except the JSON is nicer and the whole stack is yours.

The part that matters here is the three plug-in points. Speech-to-text, the language model and text-to-speech are configured separately, per application, each from its own credential. The jambonz documentation puts it plainly: "jambonz supports 18 different speech vendors at last count, and if you want to work with a vendor that we don't yet support you can use our custom speech API to build in support." There are 14 supported language model providers on the same terms.
Deployment is the other half of the pitch. You can run it in your own VPC, on-premise, in a Kubernetes cluster on EKS, AKS or GKE, or on their hosted cloud. Licensing is flat rate per concurrent session rather than per minute, and there is an OEM path if you resell the whole thing under your own brand.
What can you build on jambonz?#
Anything with a real phone number in it, where you want to own the stack. The shapes that come up most often:
- Inbound voice agents. A caller dials your number, jambonz runs speech-to-text into your language model and speaks the answer back. The
agentverb wires the whole cascade, including voice activity detection and turn-taking, so you are not hand-rolling barge-in. - Outbound calling at volume. Appointment reminders, delivery windows, payment and collections calls, verification codes. These are mostly short utterances with numbers in them, and they live or die on cost per call.
- IVR replacement. The old menu tree becomes an agent, but the carrier configuration, the DTMF handling and the transfer logic stay exactly where they were.
- Contact centre front ends. Deflect, qualify and route before a human picks up, with recording and transcription on the same call.
- White-label CPaaS. You are the platform for someone else, and you need the voice layer to carry your brand and your margin instead of a vendor's.
Because the speech vendors are configuration and not code, you can run a bake-off in production. Point one application at one TTS vendor, a second application at another, and compare them on real calls instead of on marketing pages.
Who is jambonz actually for?#
It is for teams who have a reason not to hand the whole call to a closed platform. In practice that is four groups, and if you are in none of them, a hosted voice API is probably the cheaper answer.
The first is anyone who already buys their own SIP trunks. If you have carrier relationships and wholesale minute pricing, paying a platform a per-minute markup on top of minutes you already own is money set on fire.
The second is regulated and sovereign deployments: health, finance, government, and anyone whose call data cannot leave a country or a VPC. jambonz can run in-country, on hardware you control. That is an answer in a procurement review that a hosted API cannot give.
The third is volume. Flat-rate licensing per concurrent session beats per-minute pricing above a certain amount of traffic, and you can work out where that line falls before you commit to anything.
The fourth is anyone who has been burned by lock-in and wants the speech layer to stay swappable. That property is the reason we could become a vendor here at all.
What is wired up#
nineninesix sits in the text-to-speech layer that every jambonz feature server uses, in the same vendor list as cartesia, deepgram, rimelabs, inworld and resemble. It arrived in v1.0.15 of that layer and is in every release since, so a current cluster already has it and a fresh install picks it up by default.
Both TTS paths are wired, which is the detail that decides whether an integration is real. During a live call the audio streams as it is produced, so the caller hears the start of a sentence before the end of it has been generated. For prompts that repeat, jambonz renders the line once to a cached 8 kHz file and replays it after that without synthesising it again.
Everything else stays where it was. Your carriers, your numbers, your routing, your speech-to-text and your language model are untouched. The only thing that changes is which vendor the say verb hands the text to.
How do you switch Gepard on?#
Three steps, and none of them involve writing code. Get an API key at nineninesix.ai, add a speech credential in jambonz, then point an application at it.
The speech credential wants three things: the vendor, which is nineninesix, your API key, and the model id, which is gepard-1.0. Mark it for TTS. Then either set it as the application default in the portal, or override it for a single utterance with the synthesizer property on a say verb:
{
"verb": "say",
"text": "Your appointment on Tuesday is confirmed.",
"synthesizer": {
"vendor": "nineninesix",
"voice": "<voice id from your account>"
}
}Two practical notes. If your portal does not list us in the vendor menu yet, the interface is behind the speech layer rather than the other way round, so mail hello@nineninesix.ai and we will get you to a working configuration.
The second one applies to every TTS vendor, not just us. When a call reads out an account number, an order number or a one-time code, put spaces between the digits in the text you send. Models handle "4 7 2 9" better than "4729", and on a phone line that is the difference between the caller writing it down and calling back.
Why Gepard fits a phone call#
Because a phone call is 8 kHz, mono, and unforgiving about delay, and Gepard was tuned for exactly that instead of for a demo page.
The output format is the first reason. Our API returns mu-law and a-law at 8000, 16000 and 22050 Hz, alongside 16-bit PCM wav. A SIP call already carries 8 kHz mu-law or a-law, so the audio leaves the model in the codec the call speaks and nothing in the media path has to resample it.
The second is latency. We ran Coval's open-source benchmark harness against our production API and measured 68.7 ms to first audio at p50, with 20.5 ms of silence at the head of the audio, over 30 samples with zero errors. That is lower than everything published on Coval's board, though on a shorter network path than their runner uses, and the full methodology is in the benchmark write-up. Production serves it from a single RTX 4090.
The third is that the weights are Apache 2.0 and published on Hugging Face. If you run jambonz in your own VPC because of a compliance requirement, the TTS does not have to be the one component that phones home. You can put the model on a GPU next to the feature server, and we wrote up when that actually pays off rather than pretending it always does.
What does it cost?#
$5 per million characters, no subscription, no per-minute charge. jambonz does not take a cut: you plug your own key into a speech credential and pay us directly, which is the same arrangement every other vendor on that list has.
| Vendor | Model | $ per 1M characters | Subscription required |
|---|---|---|---|
| nineninesix | gepard-1.0 | $5 | no |
| Deepgram | Aura-2 | $30 | no |
| Cartesia | Sonic (Startup, $39/mo) | ~$31 | yes |
| Gradium | default (M, $340/mo) | ~$38 | yes |
| ElevenLabs | Flash / Turbo v2.5 | $50 | yes |
Rates collected 25 August 2026. The full pricing comparison shows the workings, including the subscription minimums that move the effective rate.
At outbound-calling volumes the gap stops being a rounding error. We measured one hour of speech at about 60,000 characters, so a million characters is roughly 17 hours. A campaign that burns 50 million characters a month costs $250 with us and about $1,500 with a $30 vendor.
The reason we can price there is the same reason the latency number is small. The model is 555M parameters and one retail RTX 4090 serves production, so our cost base is a card you can buy rather than a rack you rent. We wrote about that trade in open weights versus closed vendors.
If you are already on jambonz, this is one credential away. If you are evaluating platforms and you need to own the call path, jambonz is the one we would point you at, and now it speaks with our voice too.
Frequently asked questions
- What is jambonz?
- jambonz is an open-source telephony platform for voice AI. It sits between the phone network and your application: you bring your own SIP carriers and phone numbers, jambonz handles the session border controller, the media and the call control, and your application drives the call by returning JSON verbs over a webhook or a WebSocket. You pick the speech-to-text, the language model and the text-to-speech vendor separately, per application. It can run in your own VPC, on-premise or in a Kubernetes cluster, and there is a hosted cloud if you do not want to run it yourself.
- Can I use nineninesix Gepard as a TTS vendor in jambonz?
- Yes. The vendor key is nineninesix and the model is gepard-1.0. The integration lives in the jambonz speech layer alongside the other supported vendors, so on an up-to-date cluster it is a vendor you select in configuration rather than code you write. Both TTS paths are supported: the streaming one used during a live call, and the cached render used for prompts that repeat, which is synthesised once and replayed after that.
- Which jambonz version do I need?
- Any build whose speech layer is @jambonz/speech-utils v1.0.15 or later. The feature server declares a caret dependency on ^1.0.10, so a fresh install resolves to a release that includes us. If your portal does not show nineninesix in the vendor dropdown yet, the vendor list in the UI is simply behind the speech layer; write to hello@nineninesix.ai and we will point you at a working configuration.
- How much does Gepard cost through jambonz?
- $5 per million characters, with no subscription and no per-minute charge. For comparison, Deepgram Aura-2 and Cartesia Sonic land around $30 per million characters and ElevenLabs Flash is $50. jambonz itself does not take a cut of your TTS spend; you plug your own API key into a speech credential and pay us directly.
- Does Gepard support 8 kHz telephony audio?
- Yes. The API returns mu-law and a-law at 8000, 16000 and 22050 Hz, plus 16-bit PCM in a wav container. A SIP call carries 8 kHz mu-law or a-law, so the audio comes out of the model in the format the call already speaks and nothing on the media path has to resample it.
- Are the Gepard weights open?
- Yes, Apache 2.0, published at huggingface.co/nineninesix/gepard-1.0. That matters for a self-hosted stack: if you already run jambonz in your own VPC for compliance reasons, you can run the model next to it instead of calling our API, and nothing about the licence forces you back to a hosted endpoint later.

Co-founder, nineninesix.ai
Co-author of the Gepard technical report. Works on real-time speech models and the infrastructure that serves them, and writes about the parts of text-to-speech that only show up in production.
Try it on your own text
Gepard is open source under Apache 2.0 and the hosted API starts free. No card, no sales call.
Keep reading
- Benchmarks ·
Coval TTS benchmark: Gepard vs 25 APIs
- Benchmarks ·
TTS latency benchmark: 50 ms to first audio
- Benchmarks ·
TTS API pricing in 2026: the real cost