Skip to main content
Every voice channel turns the caller’s audio into text with a speech recognition (ASR) provider, and turns the agent’s replies into audio with a speech synthesis (TTS) provider. You choose both per channel in integrations.yml, under the channel’s asr: and tts: keys. Recognition and synthesis are chosen separately, so you can mix providers. To use a provider that is not built in, see Custom speech providers.

Choose a provider

Set name on asr: and tts:, and choose models and voices per language in language_map:
integrations.yml
Set the API key in your environment or .env. If a key is missing, Mantle logs the missing variable and the voice conversation can’t start. In the Inspector, you see a “Voice isn’t set up yet” warning.

Defaults

If the Inspector has no asr: or tts: keys, it still works with only DEEPGRAM_API_KEY, using Deepgram’s earlier models: With no asr: or tts: keys, the Inspector uses English Deepgram models, even if agent.language is another language. For another language, set language_map. Telephony channels have no defaults, so you must set both asr: and tts:.

Speech recognition settings

Settings other than name and language_map go next to them, under asr:.

Speech synthesis settings

Settings other than name and language_map go next to them, under tts:. All speech synthesis engines also accept timeout (seconds, default 30). Synthesized replies are cached in memory, so a repeated line, such as a greeting, plays without a new provider request.

Regional endpoints

To keep audio in a region, point endpoint at the provider’s regional host. For Deepgram, the speech recognition endpoint is a host name and the speech synthesis endpoint is a full URL:
Check your provider’s documentation for the hosts available to your account.

Troubleshoot setup

Keep keys out of integrations.yml, shared logs, and source control. When switching providers, preserve the rest of the file, including model_groups. Speech settings belong under the selected channel, not at the file root. Channel settings are read from the live project; restart to pick them up. Changing skills, or which model group agent.yml names, needs rasa train. See integrations.yml for configuration lifecycles. Use Test and monitor voice to distinguish recognition, turn handling, tool, and playback failures before tuning a provider.

See also