Determining speech engine feature support

Last reviewed: 9/10/2008

HOW Article ID: H090801

The information in this article applies to:

  • SpeechKit 6


The SpeechKit ChantSR and ChantTTS components provide common features across the various speech APIs, a unified way to access recognizer- and synthesizer-specific features, and access to API-specific features.

In SpeechKit 6, there is a simple way to verify the features you want to use are supported by the recognizers and synthesizers. An API column has been added to the class, method, event, property, and enumeration constant documentation tables. This column displays images representing the various speech engines APIs for quick visual verification.

IBM SMAPIMicrosoft SAPI 4 Speech RecognitionMicrosoft SAPI 5 Speech RecognitionNuance Dragon NaturallySpeakingNuance VoCon 3200Acapela BabTTSCepstral SWIFTMicrosoft SAPI 4 Text-to-SpeechMicrosoft SAPI 5 Text-to-SpeechNuance RealSpeak SoloNuance Vocalizer for Mobile

More Information

The SpeechKit ChantSR and ChantTTS components provide features such as engine enumeration, property setting, application framework, request queue management, audio management, vocabulary management, and event management that are consistent across the various SDKs even though the speech APIs vary greatly. For example, in vocabulary management, command vocabularies only exist in the IBM SMAPI speech API, yet the feature is implemented for Dragon, SAPI 4, SAPI 5, and VoCon 3200 recognizers even though their speech APIs that do not provide the feature.

To ensure key recognizer- and synthesizer-specific features are available for application use, the SpeechKit ChantSR and ChantTTS components also provide these even though they will fail for some speech engines. For example, Dragon provides a lot of administrative dialogs that do not exists for other speech engines. These dialogs can be displayed via the ShowDialog method. The IsSupported method is a handy way to check at runtime whether a specific feature for the currently selected engine is available. This enables your application to enable and disable features based on user engine selection or ownership.

Some features are API-specific and in the case of Microsoft SAPI, there are no guarantees that the feature is implemented exactly the same way across speech engines. For example, phoneme sets, grammar syntax, markup syntax, dialogs, property value ranges, vary greatly across vendor implementations. The SpeechKit ChantSR and ChantTTS components expose many of the API-specific features where practical and when requested by customers.

If you have a enhancement requirement that you would like to see in SpeechKit, please contact product support.