Skip to main content
Advanced configuration — This page covers complex platform settings. We recommend completing PolyAcademy Level 1 before proceeding.
Use speech recognition settings when your agent consistently mishears specific words — brand names, product codes, medical terms, or domain-specific vocabulary. Poor transcription leads to wrong function calls, failed lookups, and frustrated callers. This page provides two tools:
  • Keyphrase Boosting nudges the ASR model toward recognizing specific words at transcription time.
  • Transcript Corrections post-processes the transcript after transcription using string or regex replacement.
Use keyphrase boosting when the ASR model consistently fails to hear a term. Use transcript corrections when the model hears something close but produces the wrong text. In some cases you may need both — for example, boosting a brand name and adding a correction for a common misspelling of that name.

Overview

Keyphrase Boosting improves ASR recognition of domain-specific terms like product names, locations, or technical jargon. It biases the ASR model toward recognizing specific words during transcription.
Biasing the ASR can cause unwanted side effects. Adding too many keyphrases or setting bias too high may cause the model to over-correct natural speech. For example, boosting the word flimsy at Maximum strength could cause unrelated words like Lindsay to be transcribed as flimsy. Always test thoroughly in sandbox before deploying changes to production.

Getting started

Configuring keyphrase boosting

  1. Navigate to Channels > Voice > Speech recognition.
  2. In the Keyphrase Boosting tab, add, edit, or remove keyphrases.
  3. Use the Keyphrase column to input domain-specific terms.
  4. Adjust the bias strength for each keyphrase using the slider.
  5. Save your changes. Updated keyphrases are applied immediately.

Bias strength levels

LevelBehavior
DefaultLight bias. Balances recognition accuracy with overall ASR performance.
BoostedModerate bias. Increases recognition of the keyphrase without heavily impacting general transcription.
MaximumStrong bias. Prioritizes the keyphrase but may interfere with natural speech patterns.
Maximum bias does not always produce better results. In some cases it can cause the model to misrecognize unrelated words. Start with Default or Boosted and only escalate to Maximum after testing confirms it is needed.

Example keyphrases

KeyphraseUse caseSuggested strength
flexi-accessFinancial product nameBoosted
BlueStarBrand name frequently misheard as “blue star”Maximum
hablas españolSpanish phrase in an English-language agentBoosted
isotretinoinMedical termMaximum
pensionDomain-specific termDefault

Global vs. per-step vs. dynamic biasing

The Speech Recognition page configures global keyphrase boosting, which applies to every turn of the conversation. Two additional levels of biasing are available for more targeted control:
  • Per-step biasing — configure ASR biasing on individual flow steps for contextual precision (e.g. biasing for doctor names only during a name-collection step). See ASR biasing in flows.
  • Dynamic biasing from functions — set biasing at runtime using conv.set_asr_biasing() when you need to bias toward values retrieved from an API or database. See ASR biasing from functions.

Precedence rules

When multiple levels of biasing are active, they are merged with the following priority (highest first):
  1. Dynamic — biasing set via conv.set_asr_biasing() in functions
  2. Per-step — biasing configured on individual flow steps
  3. Global — biasing configured on this Speech Recognition page
If the same phrase appears at multiple levels, the highest-priority setting takes precedence. This means per-step biasing overrides global settings, and dynamic biasing overrides both.

Per-step biasing options

Flow steps also support structured ASR biasing modes for common input types. These are configured in the step editor and include options like:
  • Alphanumeric — booking references, confirmation codes
  • Name — full personal names
  • Name spelling — phonetically spelled names
  • Numeric — ages, short numbers
  • Party size — group bookings
  • Precise date — specific calendar dates
  • Relative date — flexible time references
  • Single number — one-digit responses
  • Time — spoken times
  • Yes/No — confirmation-style responses
  • Address — postcodes, street names
See ASR biasing in flows for the full list and configuration details.

Diacritics

If your agent operates in a language that uses diacritics — such as č, ć, š, ž, đ — additional configuration is required before the features on this page will work correctly. These characters are common in languages like Croatian, Serbian, Bosnian, Slovak, Czech, and Slovenian. ASR models may strip or misinterpret diacritical marks, and an English-biased model may fail to detect non-English speech entirely.
Diacritics and multilingual ASR configuration cannot be self-served. Contact your PolyAI representative before making changes — they will configure the correct ASR language model, language codes, and any necessary preprocessing for your target language. Attempting to fix diacritics issues with keyphrase boosting or transcript corrections alone is unlikely to resolve the underlying problem.
Transcript corrections can help with minor post-processing (e.g. fixing ZeljkoŽeljko) once the correct ASR model is in place, but they are not a substitute for proper language configuration.

ASR biasing in flows

Configure per-step biasing for structured input collection.

Annotations

Flag transcription errors during conversation review to track ASR issues.

Conversation diagnosis

Verify transcript corrections are applied in individual conversations.
Last modified on March 26, 2026