Voice tuning
Every voice agent works well out of the box, so most bots need no tuning at all. When you do want to shape the conversation, the bot editor gives you a set of controls grouped into cards. This page walks through every one of them, with its range, its default, and an example of when you would change it.
Two things are true throughout. First, controls appear only when they apply to the engine or voice you have selected, so you will never see a setting that does nothing on the bot in front of you. Second, values are checked when you save. If you enter something outside the allowed range, the save is refused and the message names the field and the range it expects, so you can correct it and try again.
Conversation flow
These turn-taking controls decide when the agent thinks the caller is talking and when it thinks a turn is over. They apply to every realtime engine, and the bot fills each field with the right starting value for the engine you picked.
| Setting | What it does | Range |
|---|---|---|
Sensitivity realtime_vad_threshold | How loud or clear speech must be before the agent treats it as the caller talking. Raise it in noisy places so background sound does not interrupt the agent. | 0.1 to 0.9 |
Silence before responding realtime_vad_silence_ms | How long a pause counts as the end of a turn. Lower feels snappier; higher gives callers room to think. | 0 to 10000 ms |
Speech lead-in realtime_vad_prefix_padding_ms | How much audio is kept from just before speech was detected, so the caller's first syllables are never clipped. | 0 to 10000 ms |
Two engines swap in their own version of the sensitivity control:
- Start and end sensitivity (Gemini). Two dropdowns, each low, medium, or high, both starting at high. They replace the single sensitivity slider. Lower the start sensitivity if background noise keeps waking the agent.
- Minimum speech length (Azure,
realtime_speech_duration_ms). How much continuous speech is needed before the agent reacts. Range 1 to 10000 ms, default 80. Raise it to ignore brief noises like a cough.
Noise suppression (realtime_noise_suppression) is on by default for every realtime engine, and Hania applies each engine's strongest available cleanup. Turn it off only when callers are in studio-quality rooms and you want fully unprocessed audio.
Grok controls
Grok voice offers the widest set of live controls. All of these appear only when Grok is the selected engine.
| Setting | What it does | Range / default |
|---|---|---|
Reasoning effort realtime_reasoning_effort | How hard the model thinks before answering. High gives smarter answers and better tool use; none gives the fastest replies. | High or none, default high |
Speaking speed realtime_speed | How fast the agent talks. 1.0 is normal. | 0.7 to 1.5, default 1.0 |
Language hint realtime_language_hint | A hint about the language callers speak, to steer transcription. Leave empty for automatic detection. | Text, empty by default |
Key terms realtime_keyterms | Words or phrases the agent should recognize accurately, such as product names. Up to 100 entries, each up to 50 characters. | Up to 100 terms |
Re-engagement timer realtime_idle_timeout_ms | After this much silence the agent gently prompts a caller who has gone quiet. Leave empty to switch it off. | Milliseconds, off by default |
Exact greeting realtime_verbatim_greeting | Speaks your greeting word for word instead of paraphrasing it, which also gets the first words out faster. | On or off, off by default |
Echo window realtime_echo_threshold_ms | How aggressively the agent recognizes its own voice echoing back, so it does not mistake itself for the caller. | Milliseconds, default 3000 |
Speech recognition tuning: Scribe
When the recognition engine is Scribe, these appear on the Speech recognition card. They control how quickly a pause becomes the end of a turn.
| Setting | What it does | Range / default |
|---|---|---|
Detection sensitivity scribe_vad_threshold | How clear speech must be before it is treated as the caller talking. | 0 to 1, default 0.4 |
Minimum speech scribe_min_speech_ms | The shortest sound treated as real speech, so brief noises are ignored. | 1 to 5000 ms, default 100 |
Minimum silence scribe_min_silence_ms | The shortest gap treated as a real pause. | 1 to 5000 ms, default 100 |
End-of-turn silence scribe_vad_silence_secs | How long the caller stays quiet before the agent takes its turn. | 0.1 to 5 seconds, default 0.5 |
Speech recognition tuning: Flux
When Flux is the recognition engine you get custom vocabulary (flux_keyterms) and language hints (flux_language_hints). Both are covered on the Speech recognition page.
Voice tuning: ElevenLabs
These appear when the selected voice is an ElevenLabs voice.
| Setting | What it does | Range / default |
|---|---|---|
Style intensity eleven_style | How much expressive style the voice puts into delivery. Higher is more dramatic; the most stable reading is at the low end. | 0 to 1, off by default |
Speaking speed eleven_speed | How fast the agent talks. 1.0 is normal. | 0.7 to 1.2 |
Speaker boost eleven_speaker_boost | Sharpens the voice's resemblance to the original recording. | On or off |
Low-latency mode eleven_auto_mode | Optimizes for the shortest time to the first word. Hania measured it as noticeably faster, so it is worth using on phone agents. | On or off |
Voice tuning: Sonic
These appear when the selected voice is a Sonic voice.
| Setting | What it does | Range / default |
|---|---|---|
| Model | Which Sonic model synthesizes the voice. Sonic 3.5 is the newer option. | Sonic 3 or Sonic 3.5 |
| Language | The language the voice speaks in. | Auto by default |
Speed cartesia_speed | How fast the agent talks. 1.0 is normal. | 0.6 to 1.5 |
Volume cartesia_volume | How loud the voice is. 1.0 is normal. | 0.5 to 2.0 |
Emotion cartesia_emotion | An overall tone for the voice: neutral, calm, angry, content, or sad. | Neutral by default |
| Pronunciation | A list of words paired with how they should sound, so names and jargon are said the way you want. | Optional |
Expressive speech
Expressive speech lets the agent color its delivery to match the moment instead of reading in one flat tone. It shows sympathy when a caller describes a problem, warmth for good news, and a slower, clearer pace when it reads out something like a confirmation number.
The toggle appears for the voices that can act on that direction: Sonic voices, ElevenLabs voices, and Azure high-definition voices. For other voices it is hidden, because it would have nothing to work with.
An example of the difference it makes:
- Caller: "I have been trying to fix this for an hour and I am really frustrated."
- Agent, expressive on: a softer, slower "I am sorry this has taken so long. Let me get it sorted for you right now."
Caller presence
These controls decide what happens when a caller goes quiet, and they apply to both voice modes. Rather than end the call at once, the agent can check in a few times first.
| Setting | What it does | Default |
|---|---|---|
Away timer vad_user_away_ms | How long the line stays silent on both sides before the agent starts checking in. Set it to zero to switch the whole behavior off. | 15 seconds |
| Check-ins | How many times the agent prompts before it ends the call. | 3 |
| Interval | How long it waits between check-ins. | 10 seconds |
| Check-in instruction | What the agent should say each time it checks in. You write the intent and the agent phrases it. | A polite default |
Call limits
Hania always keeps each voice response within a bounded time, so a caller is never left waiting on dead air. That protection is on for every voice bot without any setup.
- Maximum call length (
max_call_seconds) caps how long a single call can run before it wraps up. - The per-response time limit is an advanced setting that only tightens or loosens the bound Hania already applies to each reply. Most bots never need to touch it.