Velocity powered by Wavelink

Loading & Unloading Grammar Files

Grammar files must be loaded to a scope in order for Speakeasy to perform speech-to-text recognition. If no file is loaded, then Speakeasy cannot recognize voice responses. When loading grammar files, you can use session, screen, or field scopes.

Loading large or multiple grammar files to a session can severely impact Speakeasy's responsiveness and phrase recognition. Each time you speak to enter a value in a text field, the engine is forced to go through every grammar file loaded and try to identify the closest match. This can prove especially problematic if you have terms similar in sound or the user's utterance is hard to understand.

To prevent such issues, we recommend creating loading scripts that use only select few grammar files restricted to a screen or field scope. This narrows down the number of files the Speakeasy engine must reference to identify a matching term.

Unloading

The most important part of loading grammar files is that you also remember to include the API call to unload the file once the scope is exited. This removes the grammar file from use when the next scope is called. If you don't unload grammar files after scope, the number of grammar files would increase exponentially and greatly slow Speakeasy's performance.

One Grammar File

If a field or screen draws upon a limited number of phrases, you can attach a single grammar file to that scope.

/* Removing one grammar file

*/

Voice.loadGrammars('connected_digits');

.

.

.

Voice.unloadGrammars('connected_digits');

The example above demonstrates how to load a specific grammar file, which can then be applied to a screen or field scope.

Multiple Grammar Files

You can also load multiple grammar files by separating the file names with a comma.

/* Removing two grammar files

*/

Voice.loadGrammars('connected_digits', 'yes_no');

.

.

.

Voice.unloadGrammars('connected_digits', 'yes_no');

Clearing Grammar Files

If you want to ensure that all grammar files in previous scopes are unloaded, you can also insert a parameter to clear all grammar files from Speakeasy's current list. After this, you can add new grammar files.

/* Remove active grammar files and then make one grammar file active.

*/

Voice.clearGrammars();

Voice.loadGrammars('connected_digits');


Was this article useful?    

The topic was:

Inaccurate

Incomplete

Not what I expected

Other