Shift your applications into high gear with speech recognition grammars.
A speech recognition grammar is a collection of rules comprised of words and phrases to be recognized from speech. A speech recognition engine (i.e., recognizer) uses a grammar to enhance its ability to recognize specific combinations of spoken words and phrases.
With dictation recognition, a recognizer matches from all the word possibilities in a large dictionary and asserts contextual analysis to ensure it returns the correct word (i.e., spelling) for homonyms (e.g., right or write).
Unlike dictation recognition, grammar recognition is context-free. A recognizer only matches against the rule definitions in the grammar.
Context-free grammar recognition enables your applications to capture data very efficiently. Grammars also enable your applications to assert domain constraints to elevate data capture accuracy automatically.
What is Grammar Management?
Grammar management enables you to:
- design and test grammars for high-performance recognition,
- compile static grammars to deploy binary with applications, and
- integrate dynamic grammar generation and compilation as part of deployed applications.
Applications benefits include:
- enhanced performance with optimized grammars,
- added flexibility to run with information unknown until application configuration or runtime, and
- expanded adaptability to run with available technology on the deployed system.
What is GrammarKit?
Chant GrammarKit handles the complexities of generating, compiling, and persisting the compiled grammar binary.
It simplifies the process of managing grammars declared with Microsoft SAPI 5 XML Grammar, Nuance BNF+ (VoCon 3200), Java Speech Grammar Format (JSGF), W3C SRGS ABNF, and W3C SRGS XML grammar syntax to use with your favorite speech recognizer.
GrammarKit includes C++, C++Builder, Delphi, Java, .NET Framework, and Silverlight class libraries to support all your programming languages and provides sample projects for popular IDEs—such as the latest Visual Studio from Microsoft and RAD Studio from Embarcadero.
The class libraries can be integrated with 32-bit, 64-bit, and Universal Windows Platform (UWP) applications.
Grammar Management Component Architecture
The GrammarKit class library includes a grammar management class that provides you a simple way to generate and compile speech recognition grammars. Your application can build and compile grammars as part of its runtime operation to enable real-time customization and tailoring of your speech recognition environment.
The grammar management class, ChantGM, enables you to build a grammar independent of grammar syntax. Your application uses the ChantGrammar and adjunct classes to construct and modify grammar objects as needed and generate compiler-specific syntax on demand.
With the ChantGM class, you can select a grammar compiler, compile the grammar, and optionally persist the compiled grammar binary. Your application uses the ChantGM class to manage the activities for compiling the grammar on behalf of your application. The ChantGM class manages the resources and interacts directly with the applicable grammar compiler. The ChantGM class supports the following grammar syntax:
- Microsoft SAPI 5 XML grammar,
- Nuance VoCon 3200 BNF+ V1.0, V1.1, V2.0,
- Java Speech Grammar Format (JSGF),
- W3C SRGS ABNF, and
- W3C SRGS XML.
Your application receives compiled grammar binary, warnings, and error messages through event callbacks.
The ChantGM class encapsulates all of the technologies necessary to make the process of building and compiling grammars simple and efficient for your application. Optionally, it can persist the grammar binary across application invocations.
The ChantGM class simplifies the process of building and compiling grammars by handling the low-level activities directly with the grammar compiler.
You instantiate a ChantGM class object before you want to build or compile a grammar within your application. You destroy the ChantGM class object and release its resources when you no longer want to compile grammars within your application.
The goal of good grammar design is to maximize application performance. With GrammarKit you can:
- Generate syntax-independent and -specific grammars;
- Compile grammar source from buffer, file, resource, stream, and string formats;
- Persist compiled grammar binary to buffer, file, and stream formats;
- Generate pronunciation phonemes; and
- Dynamically switch among grammar compilers and syntax formats.
Chant GrammarKit handles the complexities of constructing, compiling, and persisting grammars. This allows you to distribute compiled grammar binary files with your application, generate and compile grammars as part of your deployed application, and optimize grammar enablement at runtime by using compiled binary files.
Recognizers have their own syntax for expressing grammars. GrammarKit supports the following recognizers and their grammar syntax:
|Recognizer||Speech API||Grammar Syntax|
|Microsoft SAPI 5 (all languages)||SAPI 5||SAPI 5 XML Grammar|
W3C SRGS XML
|Microsoft Speech Platform (all languages)||MSP||W3C SRGS XML|
|Microsoft Universal Windows Platform (all languages)||Windows Media||W3C SRGS XML|
|Nuance VoCon 3200 (all languages)||VoCon 3200||Nuance BNF+ V1.0, V1.1, V2.0|
W3C SRGS ABNF
Java Speech Grammar Format (JSGF)
Within Chant Developer Workbench, you can:
- Create and edit grammars in native grammar syntax;
- Generate word pronunciation phonemes;
- Edit word pronunciation phonemes (requires LexiconKit);
- Compile and debug grammars; and
- Test grammars with live audio (requires SpeechKit).
Grammar Management: Design, compile, test, and debug speech recognition grammars before deployment.
Grammar Editing: Edit speech SAPI 5, L&H BNF+, JSGF, and W3C grammars faster with built-in intelliprompt that suggests valid grammar syntax.
Syntax Error Debugging: Automatic syntax checking displays visual cues and syntax error messages in the Error window. Click on the error to take you to the location of it in the document window.
Grammar Compiling and Testing: Compile and test grammars with a click of a button. Review compiler messages in the output window. Speak into a microphone to test grammar.
Recognition Results: View recognition results in the Output window.
Recognition Events: Browse recognition events in the Events window.
Compilation Error Debugging: Browse compilation errors in the Error window. Click on the error to take you to the location of it in the document window.