Developer EditionIf you started building your assistant with the Rasa Developer Edition
before Rasa Pro 3.11 and want to try voice features, please request a new license. Licenses issued
before this version donβt contain the necessary feature scopes to run voice assistants.
Building Voice Assistants
Voice assistants provide a natural and intuitive way to interact with digital devices and services. They are particularly useful for hands-free operation, accessibility, and multitasking. They also offer a familiar and frictionless experience to the customers of contact centers. At the same time, voice solutions present distinct technical challenges and require elaborate user experience design. Rasa provides voice channel connectors that require specialized handling to address nuanced complexities in voice conversations. The connectors are described in detail below.Voice Ready

Voice Stream

How to Start Building a Voice Assistant
To build an optimized voice assistant, it is recommended to develop it separately from text-based assistants. Although a text assistant can serve as a foundation, maintaining and evolving the assistant is easier when voice and text assistants are developed separately. Following CDD best practices, start your voice project with rigorous user research and include iterative user tests in the development process. Make sure to design your voice flows with the unique requirements of the modality in mind. Apart from connecting and configuring your channel connector, you will need to configure the speech services. More information on those here:- Speech Integrations for connecting to Speech Recognition and Text to Speech Services
- Voice connectors:
- Audiocodes VoiceAI Connect Channel connector (Voice Ready)
- Audiocodes Voice Stream Channel connector (Voice Stream)
- Jambonz Channel connector (Voice Ready)
- Twilio Voice Channel connector (Voice Ready)
- Twilio Media Streams Channel connector (Voice Stream)
- Genesys Cloud Channel connector (Voice Stream)
Voice-Specific Primitives and Conversation Repair
Voice assistants rely on the same core building blocks as text-based assistants (like responses, actions, and flows), but they require additional configuration and design adjustments to handle the nuances of spoken interactions. These include:- Fine-tuning how conversations are initiated and ended
- Managing voice-specific metadata
- Handling silence or no-input cases
- Repeating or rephrasing messages when users donβt respond
Handling User Silence
In voice conversations, silence can signal confusion, hesitation, or distraction. With the silence timeout setting, you can control how long the assistant waits before responding β and tweak what it does when that happens. π How to configure user silence parametersCollecting Input via DTMF (Keypad)
For voice assistants, you can collect user input through DTMF (Dual-Tone Multi-Frequency) signals β the tones generated when users press keys on their phone keypad. This is particularly useful for:- High-accuracy input: Account numbers, PINs, or numeric codes where speech recognition errors could be problematic
- PCI DSS compliance: Securely collecting sensitive information like credit card numbers or passwords
- Accessibility: Providing an alternative input method for users who prefer or need keypad entry
collect steps in your flows, allowing you to specify:
- Fixed-length input (auto-submit after a specific number of digits)
- Variable-length input (user presses a termination key like
#to submit) - Whether to allow voice input alongside keypad input
Using Channel-Specific Responses
Tailor your responses for voice channels like phone calls using channel-specific response variations. π How to configure channel-specific responsesMultilingual Voice Assistants
If your assistant needs to support users in more than one language, you can configure both your assistant and speech services accordingly. Define a primary language and any additional languages in your assistant configuration, then use supported speech integrations with language-specific settings for speech recognition and text-to-speech. All of our speech integrations supportlanguage_map, which maps the languages defined in your assistant to provider-specific language, model, or voice settings.
π Enabling multiple languages in your voice assistant
π How to design multilingual agents
Using Filler Responses for Slow Operations
When certain operations may take time (such as certain custom actions), include βfillerβ responses to keep users informed about the ongoing process. These responses confirm that the system is processing the request, reducing user uncertainty and abandonment. This technique is especially important for voice-based channels like phone calls, where users donβt have visual UI indicators of progress. This is an example of a filler response:flows.yml