> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vocily.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Transcriber

> Choose the speech recognition model, boost the words it should expect, and set a backup.

The **Transcriber** pill controls speech-to-text - how the agent turns what the caller said into
words. It is the second of the four pills at the top of the agent editor, after
[Language](/building-agents/language).

<Note>
  **This is new.** Speech recognition used to be decided for you by the conversation language: one
  dropdown quietly chose the recognizer, its language, and its settings, and there was no way to
  change any of it. It is now yours to configure.
</Note>

## Choose a model

Open the pill and pick a model. The list is served live from Vocily, ordered **cheapest first**,
and each row shows its provider and its per-minute rate.

| Model                   | Provider  | Good for                                                                                                          |
| ----------------------- | --------- | ----------------------------------------------------------------------------------------------------------------- |
| **Soniox**              | Soniox    | The widest language coverage, and the only model that can be held to exactly the set you configured. Lowest cost. |
| **Nova 2**              | Deepgram  | One language per call.                                                                                            |
| **Saaras v4**           | Sarvam AI | Indian languages, including natural Hinglish. **The default for new agents.**                                     |
| **Flux (English)**      | Deepgram  | English-only agents where turn-taking latency matters.                                                            |
| **Flux (Multilingual)** | Deepgram  | English, Hindi, and the European languages, with Deepgram's own end-of-turn detection.                            |
| **Nova 3**              | Deepgram  | English, Hindi, and the European languages.                                                                       |

Hover any row to see the full list of languages that model covers - not truncated, so you can check
for the one you actually care about.

<Note>
  **Saaras v4 is the default because of Hinglish.** For an agent that mixes an Indian language with
  English in the same sentence, it treats the mix as one language rather than fighting it. That is
  the most common Indian case and the one the default is chosen for.
</Note>

## Why some models are greyed out

A model that cannot serve your language set is still shown, greyed, **with the reason** - because
"Deepgram is missing from the list" and "Deepgram cannot hear Kannada" leave you in very different
positions.

Two rules do the greying, and the difference between them is worth understanding:

<CardGroup cols={2}>
  <Card title="One language: can it hear this?" icon="ear">
    A single-language agent only needs the model to support the language. Most models pass.
  </Card>

  <Card title="Two or more: can it tell them apart?" icon="arrows-split">
    A multilingual agent cannot tell the recognizer which language is coming next, so the model has
    to distinguish them unaided. Far fewer models pass.
  </Card>
</CardGroup>

"Supports 20 languages" and "detects 20 languages" are different claims, and vendors state the
first. The second is the one that matters as soon as your agent speaks more than one language.

You will meet this most often in two shapes:

> **Nova 2** handles one language per call, so it cannot serve an agent that speaks 3.

> **Nova 3** cannot tell Kannada apart from the other languages you selected.

The fix is either to drop the language the message names, or to pick a model that covers it. For
Indian multilingual agents that is normally **Saaras v4** or **Soniox**.

<Warning>
  **Deepgram has no Kannada at all**, in any model - along with Tamil, Telugu, Bengali, Marathi,
  Gujarati, Malayalam, Punjabi, Odia, and Assamese. Hindi is the only Indian language its
  multilingual models carry. An agent serving those languages needs Sarvam or Soniox.
</Warning>

Vocily rejects a save that pairs a model with languages it cannot serve, rather than letting the
agent ship deaf to half its languages.

## Keywords

Under the gear, **Keywords** is where you list names, product codes, SKUs, and jargon the agent
should expect to hear - one per line.

```text theme={"dark"}
Vocily
SKU-1204
Bengaluru
```

On **Saaras v4** the box is labelled **Keyword prompt** and the lines are sent as prose: the
recognizer is told what to expect rather than handed a lookup table. The box works the same way
either side.

<Note>
  **Keywords are never discarded.** If you switch to a model that does not support them, the box
  greys out and says so - but your list is saved and applies again the moment you switch back to a
  model that does.
</Note>

## Backup speech model

Also under the gear: **Backup speech model**, used for the rest of the call if the main one stops
responding.

Two things to know about how it behaves:

* **It latches.** Speech recognition runs over a live connection, so falling back means tearing that
  connection down and committing. A model that failed three seconds ago is not healthy now, so the
  agent does not switch back mid-call.
* **It resets the language.** A backup only has to cover your **primary** language, not the whole
  set, so the conversation returns to the primary language and the agent says so out loud: *"Sorry -
  I'm having a technical problem. Let me continue in Hindi."*

That relaxation is deliberate. Nothing on the roster covers every Indic language, so demanding that
the backup match the main model language for language would leave Indic agents with no backup at
all. The list only offers models that can hear your primary language, and never the model you
already picked as the main one.

<Note>
  **A failed-over call is billed at the model it actually ran on**, not at the one you configured.
  The failover is also recorded on the call in [Conversations](/conversations/history), so a call
  that sounded wrong can be explained afterwards.
</Note>

## Turn taking

The two dials that decide when the agent speaks live at the bottom of the same gear, because
"the agent cuts me off" is a speech problem and this is where you come looking.

| Dial                         | What it changes                                                                                       |
| ---------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Interruption sensitivity** | How readily the agent stops talking when the caller speaks. A slider from `0` to `1`, default `0.5`.  |
| **Response speed**           | How long the agent waits before deciding the caller has finished. Four presets, default **Balanced**. |

**Response speed is four named presets, not a slider**, because the same setting costs a different
amount of time on each speech model - a number in seconds would be wrong for one of them the moment
you changed model:

| Preset         | Use it for                                                         |
| -------------- | ------------------------------------------------------------------ |
| **Fast**       | Short answers and quick confirmations.                             |
| **Responsive** | Everyday conversations.                                            |
| **Balanced**   | The default. Works for most calls.                                 |
| **Patient**    | Callers who pause mid-sentence, or read out numbers and addresses. |

The pill shows the typical wait for the model you have picked, so the promise on screen matches what
the call does. Both dials apply on every model, so changing your speech model never loses the tuning.

<Tip>
  **If callers are being cut off mid-sentence, move towards Patient.** A caller who pauses to think
  is the case the patient end exists for - the agent keeps listening instead of answering half a
  question. On models that judge the end of a sentence themselves, being more patient can even be
  *quicker*, because the model answers on its own rather than waiting to be cut off.
</Tip>

<Note>
  **The Flux models apply Response speed differently.** On **Flux (English)** and **Flux
  (Multilingual)**, Deepgram's own end-of-turn model decides when the caller has finished, so the
  preset sets **how sure it has to be** before answering rather than how long it waits - Fast
  settles for a hunch, Patient waits for strong evidence. The control works normally; only the unit
  changes, which is why no seconds are shown for these two. Interruption sensitivity is unaffected.
</Note>

## What it costs

Speech recognition is the **Stt** line on a call's charge. The rate depends on the model you pick
here, not on the provider, and the picker shows each model's live per-minute rate beside its name.

Cheapest first is also the order the list is in, so the top of the list is the cheapest model that
can serve your languages.

See [Voice call pricing](/account-workspace/voice-pricing) for how the Stt line fits into the rest
of a call's charge.

## Models that are not available

Two models appear in the platform but cannot be selected:

| Model                      | Why                                                                                                                                            |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Scribe v2** (ElevenLabs) | Not available yet. It takes a single language, so it cannot serve an agent that speaks more than one.                                          |
| **Pulse** (Smallest)       | Speech recognition from Smallest is not supported. **Smallest voices are unaffected** and remain available in [Voice](/building-agents/voice). |

## Checklist

After changing the speech model, place a test call and check that:

* Names, product codes, and numbers come back correctly in the transcript.
* The agent does not cut you off, and does not sit in silence after you finish.
* Every language in your set is actually recognised, not just the primary one.
* If you set a backup, you are comfortable with the call returning to the primary language should it
  ever be used.

## What's next

* [Language](/building-agents/language) - the language set this model has to serve.
* [Voice](/building-agents/voice) - the other end of the pipeline.
* [Settings](/building-agents/settings) - duration limits, silence handling, and webhooks.
