Skip to main content
Speech-to-text models are trained on general speech. They have never heard your product names, your competitors, or the way your customers say your company’s name down a noisy phone line. Left alone, a model transcribes the nearest common word it knows, and your agent answers the wrong question. Bolna gives you two fields on the transcriber to fix this. They work together. Keywords tell the model what the words are, context tells it what they mean.

Quick config

Both fields are optional and both live in tools_config.transcriber. You can set either, both, or neither. In the dashboard they sit side by side under the agent’s Audio tab.

The difference in practice

A caller says “Hi, I’m calling about my Plivo and Exotel setup on Bolna.” With no biasing, a general model hears:
Every proper noun is wrong, and the LLM now has to answer a question about “clivo”. With keywords set to Bolna, Plivo, Exotel:
This is not a cosmetic improvement. The transcript is what reaches your prompt, your extracted data and your post-call webhooks, so an ASR error propagates through everything downstream.

Writing good keywords

  • Be specific, not exhaustive. 20 to 50 terms that actually get misheard beat a dump of your whole catalogue. Every extra term slightly dilutes the boost, and some providers cap the list.
  • Include the terms callers say, not the ones you write. If your product is “BolnaAI” but people say “Bolna”, list “Bolna”.
  • Multi-word phrases are fine. account number, customer service, order status is three terms, not six.
  • Do not list common words. Boosting “the” or “order” costs you accuracy elsewhere.
  • Spell them as you want them transcribed. The boosted term is what appears in the transcript.

Weights

Some engines accept a per-term weight using term:number:
Higher means a stronger nudge. Only some providers support this, see the table below. On providers that do not, Bolna strips the :number suffix automatically and sends the bare terms, so a config copied from a weighted provider keeps working rather than boosting a term literally named Bolna:5. The dashboard shows a warning when it is going to do this. A colon that is not a weight is left alone, so 3:30 pm stays intact.

Writing good context

Context is free-form prose. Two or three sentences describing the call is usually enough.
  • Describe the situation, not the instructions. This is not a prompt for an LLM. “Callers ask about returns” helps, “always transcribe accurately” does nothing.
  • Mention the shape of what callers will say. Telling the model to expect order numbers, postcodes or dates measurably helps it format them.
  • Keep it short. Providers cap it, and a wall of text dilutes the signal the same way an over-long keyword list does.

Provider support

Not every engine accepts both fields. Bolna sends each provider only what it can use and drops the rest, so an agent stays valid when you switch providers.
Deepgram’s nova-3 and Flux models use keyterm prompting, which takes plain terms and no weights. The nova-2 family uses the older keywords parameter, which does accept term:weight. Bolna picks the right one from the model you choose.
In the dashboard, a field your provider does not support is shown disabled rather than hidden, so you can see what you would gain by switching.

Multilingual agents

Multilingual agents inherit keywords and context from the base transcriber for every language leg. You do not need to repeat them per language, and a term list of brand names is usually correct in every language anyway.

FAQ

Start with the 10 to 20 terms you have actually seen mistranscribed in your call transcripts, rather than guessing. Review your transcripts after a day of calls and add what you find. Lists in the hundreds rarely help and can hurt.
No. Biasing raises the probability the model picks your term over a similar-sounding common word. It does not force it. A term that is acoustically very close to a common word, a two-letter brand name for example, may still be missed.
Bolna rejects the agent save with a message naming the limit, so you find out at configuration time rather than mid-call.
No. Context biases recognition, it is not a prompt. Describe the call and the vocabulary; behavioural instructions belong in your agent prompt.
That provider’s streaming API has no equivalent field. Switch to AssemblyAI, Soniox or Sarvam if context biasing matters for your use case.