ASR and TTS integration

The ASR and TTS components, libraries, and configuration files manage ASR conversations, enable modules to communicate with each other, and allow control of various component settings.

ASR modules are linked to a particular service variant, depending on the ASR technology used to perform the speech recognition. For instance, in the current release of the platform, the service is io-asr-generic. If Nuance technology is used, the service is called io-asr-nuance.

The following ASR modules are io-asr-service_name runtime dependencies:

/usr/sbin/io-asr-generic
Manages ASR conversations. This binary isn't tied to a particular recognition technology. If you use this binary, you can specify the recognition module as a plug-in module. However, if you use a technology-specific module binary, such as io-asr-nuance, you won't be able to switch recognition modules without recompiling.
/lib/libasr-core.so.1
An ASR library that enables inter-module communication.
/etc/asr-car.cfg
The recognition module's configuration file that lets you configure:
  • audio capture characteristics
  • TTS synthesis settings
  • recognition module attributes
  • module ID mapping
/opt/asr
A directory containing resources required by io-asr-generic and its modules.

Prompt modules

asr-offboard_tts-prompt.so
Prompting service for playing text strings or files as audio. These modules are configurable in the asr-car.cfg configuration file.
asr-wav_file-prompt.so
Prompting service for .wav file playback.

Audio modules

capture
Audio capture capability. You can configure this in the audio/capture section in the asr-car.cfg configuration file.
file
Import and save audio files. You can configure this in the audio/file section in the asr-car.cfg configuration file.

Recognition modules

asr-vocon3200-recognition.so
Interpretation of captured audio signals to deduce the words and sentences spoken.

Conversation modules

Conversation modules are independent of each other.

search
Used by other modules to handle search-related commands. For example, the navigation subsystem uses this module to process instructions to navigate to a destination or search for a point of interest.
Provides the capabilities for various conversation modules, including:
  • app launching
  • navigation
  • internet and local media search
  • weather queries
car-media
Processes voice commands for performing media playback actions.
To support these commands, the ASR subsystem uses different back-end plugins in the different HMI versions. By default, the platform is configured to use the plugin for the mm-player service (which works with the HTML5 HMI). If you want to use media voice commands when running the Qt5 HMI, you need to use the mm-control plugin. You can tell the ASR subsystem to load this plugin instead of the one for mm-player by modifying the ASR configuration file, as explained in "Using mm-control to process voice commands" in the User's Guide.
dialer
Process voice-dialing commands.
Note: Third parties implementing ASR can add additional conversation modules to extend ASR capabilities (e.g., calendar).