Skip to main content

Speech-to-Text Configuration

Speech-to-Text (STT) converts user speech into text that your bot can process. Configure STT settings in the Speech-to-Text tab of the Phone Channel.

Creating an STT Provider​

STT providers are created once on the global Provider Management page and then enabled per bot. The phone channel can only use a provider that is both created there and enabled for the current bot.

1. Create the provider​

  1. In the sidebar's Global section, open Provider Management
  2. Click Create to open the Create a new provider dialog
  3. Under Provider Selection, set Provider type to Speech-to-Text
  4. Choose a Provider (Google Speech-to-Text, Azure Speech Services, or botario Speech)
  5. Fill in General Settings (Title, API Key, and — depending on the provider — URL / Model) and any Provider Options
  6. Click Create

Create STT Provider

2. Enable it for your bot​

  1. Open your bot's Settings > Enabled Providers page
  2. In the Speech-to-Text section, click Enable another speech-to-text provider
  3. Select your provider from the picker

Only providers that are created in Provider Management and enabled for the bot appear in the phone channel's Speech-to-Text dropdown.

See Provider Management for the full create dialog and Enabled Providers for enabling and roles.

Available STT Providers​

ProviderDescription
Google Speech-to-TextGoogle Cloud speech recognition with telephony-optimized models
Azure Speech ServicesMicrosoft's enterprise speech recognition with dictation and semantic segmentation
botario SpeechCustom/self-hosted STT service with alpha-numeric optimization

Phone Channel STT Settings​

After creating a provider, configure it in the Phone Channel:

Selecting a Provider​

In the Speech-to-Text tab, select your STT provider from the dropdown. Only providers that are:

  1. Created in Provider Management with type "Speech-to-Text"
  2. Enabled for this bot in Settings > Enabled Providers

will appear in the list.


Provider-Specific Configuration​

Different providers offer different configuration options. The phone channel allows you to override provider defaults on a per-bot basis.

botario Speech​

botario STT Configuration

SettingDescription
Language OverrideOverride the default language code (e.g., de for German)
Deployment Modeldefault for general speech, alpha_num for alphanumeric input (IBANs, codes, etc.)
Wait Time After Speech OverrideHow long to wait after speech ends before processing
Start Listening OffsetHow early to start listening before bot finishes speaking (0-1.5 seconds)

Azure Speech Services​

Azure STT Configuration

SettingDescription
Language OverrideOverride the default language code (e.g., de-DE)
Wait Time After Speech OverrideHow long to wait after speech ends
Start Listening OffsetHow early to start listening (0-1.5 seconds)
Profanity FilterHow to handle profanity: raw (no filter), masked (replace), removed (delete)
Enable DictationEnable dictation mode for better accuracy with longer speech
Semantic SegmentationEnable semantic segmentation for improved sentence structure

Dictation Mode​

When enabled, dictation mode:

  • Listens longer for user input
  • Better handles natural pauses in speech
  • Adds automatic punctuation
  • Recommended for longer utterances like addresses or detailed descriptions

Semantic Segmentation​

When enabled:

  • Improves sentence boundary detection
  • Better handles complex sentences
  • Recommended for conversational speech

Common Settings Explained​

Start Listening Offset​

This setting controls how early the STT starts listening before the bot's message is fully spoken.

  • Range: 0 to 1.5 seconds
  • Default: 0.5 seconds

Why it matters: Users often start speaking before the bot finishes. A higher offset captures these early responses but may pick up the bot's own speech.

Recommendations:

  • Start with 0.5s (default)
  • Increase to 0.8-1.0s if users report being cut off
  • Decrease if transcriptions include bot speech

Wait Time After Speech​

How long to wait after the user stops speaking before finalizing the transcription.

  • Range: 0 to 5 seconds
  • Default: Varies by provider (typically 0.75s)

Why it matters: Some users pause mid-sentence. Too short a wait cuts them off; too long creates awkward delays.

Recommendations:

  • 0.5-0.75s for quick interactions (menus, yes/no)
  • 1.0-2.0s for complex input (addresses, descriptions)
  • Use dictation mode for very long input instead of increasing this value

Effective Values​

Each setting shows two values:

  • Current value: What you've configured (or empty for provider default)
  • Effective value: The actual value being used (your override or provider default)

The "Effective value" with "(provider default)" indicates the setting is using the provider's default configuration.


Dynamic STT Configuration​

You can change STT settings during a conversation using the tracker API:

from botario_gpt_events.phone_events import AzureSTTConfigUpdatePayload

# Switch to dictation mode for detailed input
tracker_api.update_stt_config(
AzureSTTConfigUpdatePayload(
enable_dictation=True,
language_code="de-DE"
)
)

See Phone API Reference for complete documentation.


Troubleshooting​

Speech Not Being Recognized​

  • Check provider sync status in PhoneServer Providers
  • Verify language settings match user's language
  • Try increasing Wait Time After Speech
  • Check if background noise is too high

User Gets Cut Off​

  • Increase Start Listening Offset
  • Consider enabling Dictation Mode (Azure)
  • Increase Wait Time After Speech

Transcriptions Include Bot Speech​

  • Decrease Start Listening Offset
  • This occurs when the offset is too high

Poor Accuracy​

  • Try a different deployment model
  • Enable Dictation Mode for longer inputs (Azure)
  • Check language code matches user's language and dialect