Cascaded voice pipeline
A Cascaded voice pipeline agent runs in three stages, each with its own vendor: speech recognition, a language model and a voice. You can mix vendors, tune each stage, and see the latency of each one on every turn. jambonz runs the pipeline with the agent verb.
You set up the three stages in the agent’s Pipeline section, and how the agent takes turns in its Conversation section.
What it needs
Three credentials in your jambonz account:
- a speech-to-text credential (jambonz portal: Speech services)
- an LLM credential (jambonz portal: LLM Services, Language models)
- a text-to-speech credential from a vendor that streams audio (jambonz portal: Speech services). The agent verb needs streaming text-to-speech; a voice that does not stream blocks publishing.
A new pipeline agent starts with the first credential of each kind in your account. Change any of them in Pipeline.
Realtime voice API, Dialogflow CES, ElevenLabs Agents and harness credentials are not offered as the pipeline’s language model.
Pipeline
The section shows the stages in the order audio flows: Hear, Think, Speak. Each stage card has a credential, its main settings, a status for the credential (passed, failed, or not tested) with a Test button, and an Options fold for the rest. When you have more than one credential for the same vendor, the label picks which one the stage uses.
Hear
Under Options:
- Vendor options (for example Deepgram options): any key from the vendor’s section of the recognizer docs, as JSON. Applied as-is at call time.
- Boost these words: names and product words recognition should listen for, such as
Acme, refill, co-pay. - Fallback vendor if this one fails: another speech-to-text credential to use if this one fails.
Think
Under Options:
Speak
Under Options:
- Vendor options: keys from the synthesizer docs for this vendor, as JSON. Applied as-is at call time.
- Language: the language the agent speaks. Same as Hear keeps it in step with the Hear language; choose another when the agent should speak a different language than it hears.
- Fallback voice and Fallback voice ID: another text-to-speech credential, and the voice to use with it, if this one fails.
- Pronunciations: one per line, written like
Acme → ak-mee. Up to 50. - Caller’s language: see below.
Speaking the caller’s language
Caller’s language, under the Speak card’s Options, lets the agent switch voices when the caller speaks another language:
- Off: always speak the language above (the default)
- Switch once, to the first language the caller speaks
- Switch whenever the caller changes language
With either switch on, select Add a language for each language the agent should answer in, and choose a voice for it (up to 10). The agent starts in the Speak language and switches when Hear reports a different one.
This needs a speech-to-text setup that reports the language it hears: Deepgram with language Multilingual, AssemblyAI with language detection, Google or Azure with alternative languages, Soniox with language identification, or Gladia. The Front desk (multilingual) template starts with this set up for English, Spanish, French, German and Portuguese, where your speech vendors have the languages and voices.
Noise isolation
More voice settings, at the bottom of the section, has Noise isolation: Off, Krisp or RNNoise. It filters background noise from the call audio before the agent hears it. When it is on, set its Level (0 to 100) and what it Applies to: Caller audio or Agent audio. It is on (Krisp) by default for outbound agents and off for inbound agents.
Conversation: turn-taking and interruptions
The Conversation section sets how the agent takes turns, handles interruptions and fills silence. A sentence at the top summarizes the current settings; each value in it links to its control.
End-of-turn detection: Deepgram Flux, AssemblyAI and Speechmatics detect the end of a turn natively. With other speech-to-text vendors, Studio warns that replies will be slower; choose the Krisp turn model, which listens to how the caller speaks rather than only the pause. With Deepgram Flux, you can also set its End-of-turn threshold, Eager end-of-turn threshold and Silence that ends the turn anyway.
Under Options:
Restore all defaults, at the bottom of the section, puts these back.
Next
- Realtime voice API: one vendor runs the whole voice loop
- Custom harness: keep this speech recognition and voice, with your own code deciding what to say