# Voice profiles

A voice profile is one named set of settings deciding how a line sounds and behaves. Half of it becomes session parameters the engine enforces exactly — model, voice, silence timers, interruption thresholds. The other half becomes written directions the model follows approximately — pace, warmth, fillers, formality. Connect labels every control with which of the two it is, because a slider that only asks is not a slider that sets.

- **Status:** Available
- **Audience:** both
- **Channels:** phone
- **In the app:** #/calls
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/technology/voice-profile/

## Three kinds of control, and the difference is not cosmetic

A speech-to-speech model has no separate synthesiser, so there is no pitch dial in the sense a text-to-speech product has one. Everything you might want to change about a voice therefore falls into one of three kinds, and an interface that does not say which is lying by omission.

| Kind | How it is applied | How exact it is |
|---|---|---|
| `engine` | A session parameter sent when the model session opens | Exact — a 450 ms silence threshold is 450 ms |
| `prompt` | A sentence in the instructions the model reads | A direction. The model follows it well on some turns and drifts on others |
| `coarse` | Also a sentence, for something the model can only approximate | An approximation, and labelled as one rather than shown as a slider |

The practical consequence: an `engine` control that does not work is a bug, and a `prompt` control that does not work may simply be beyond the model. Two behaviours here were rolled back rather than left in for exactly that reason — a respect-word cadence rule that changed six of eight replies and answered an English sentence in Telugu, and murmur handling, where a prompt sentence changed nothing at all.

## What a session parameter can set

These reach the model as configuration rather than as prose, so they hold for the whole call regardless of what the conversation does: the model and the voice, a pinned language code, temperature, reply length, affective dialog where the model supports it, the model's own end-of-speech silence (the *fast* setting is 450 ms), pre-emptive generation, thinking off, the interruption threshold in both seconds and words, whether a false interruption resumes, noise cancellation, and the silence-check and hang-up timers.

Some of them are model-specific rather than universal. Affective dialog is available on native-audio models and refused by others; a model whose session the SDK marks immutable cannot take a mid-call note at all, so notes and supervisor guidance are recorded as undelivered rather than silently dropped.

## What only a direction can ask for

Speed, pitch, energy, warmth, emotion, pauses, fillers, formality, humanness, accent and pronunciation are written into the instruction block as lines the model reads. So is behaviour: role, goal, tone, style, knowledge, hard rules, what to ask and never ask, objection handling, escalation, the opening and closing, proactiveness, language switching and how memory is used.

Because these cost instruction characters, and instruction size shows up as first-token latency, a whole-person profile is held under roughly 2,500 characters. A 7,500-character instruction measured a 1.2–1.8 s first token here; 9,600 characters measured 2.3–3.4 s. Every sentence added to a personality is paid for on every call it opens.

## Does Connect use voice profiles?

**Used, on the realtime engine, for both audiences, from Phone → Setup → Voice Lab.** Settings resolve narrowest-wins in a fixed order: the workspace, then the default profile, then a profile chosen by purpose, then one attached to a line number, then one on the contact, and finally the Lab's own draft when you are making a test call.

There is no campaign object in the model, so *per campaign* here means *per purpose*, and the purposes are `inbound`, `service`, `transactional` and `promotional`. Whatever the resolution produces is snapshotted onto the call's quality record, so a review judges the settings that actually ran rather than the settings in force when somebody opened the screen a week later.

A separate layer supplies whole people rather than individual knobs: a structured preset of **86 parameters**, each carrying its own kind, and **28 profiles** — a given name and a city, never a real person — whose values come from published speech research rather than from taste. Rate by age band, fillers per hundred words, syllable-timed rhythm for Indian English, politeness markers, older speakers slower and more formal.

## What no profile can set

Anything the stack cannot actually control is listed as unsupported and shown as unsupported — never rendered as a slider that quietly does nothing. That list includes fundamental frequency in hertz, loudness in decibels, jitter and shimmer, formant positions, exact pause lengths in milliseconds, and a deliberate delay before answering.

Refusing to draw those controls is the honest position for a speech-to-speech stack, and it is also the useful one: a person tuning a line learns quickly which levers move the call and stops spending attention on the ones that cannot.

## Questions

### Why can I not set the pitch of the voice?

Because there is no synthesiser in the path to set it on. The realtime engine generates speech directly from the conversation, so pitch can be *asked for* in the instructions and cannot be *set* as a parameter. The control is shown as a direction, and hertz is shown as unsupported rather than as a dial.

### Which profile wins when several apply?

The narrowest. A profile on the contact beats one on the line number, which beats one chosen by purpose, which beats the workspace default. A draft in the Voice Lab beats all of them, but only on a test call from the Lab itself.

### Are the named voice profiles based on real people?

No. Each is a given name and a city, invented for the purpose, with parameter values taken from published speech research. Nothing in them is modelled on an identifiable person.

## Related

- [The Voice Lab](https://connectbyjbrh.com/docs/phone/voice-lab/)
- [Human voice profiles](https://connectbyjbrh.com/docs/phone/human-voice-profiles/)
- [Text to speech](https://connectbyjbrh.com/docs/technology/tts/)
- [Speech-to-speech models](https://connectbyjbrh.com/docs/technology/speech-to-speech/)
- [What a setting cannot change](https://connectbyjbrh.com/docs/phone/model-limits/)
- [Multilingual voice](https://connectbyjbrh.com/docs/technology/multilingual-voice/)

## What this page is based on

- `docs-source/sources/PHONE.md` §6 — the Voice Lab
- `docs-source/sources/PHONE.md` §11 — human voice profiles
- `docs-source/sources/PHONE.md` §7 — instruction size and first token
- Connect capability registry (docs-source/facts.py)
