This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The SpeechGrammar interface of the Web Speech API represents a set of words or patterns of words that we want the recognition service to recognize.

Grammar is defined using JSpeech Grammar Format (JSGF.) Other formats may also be supported in the future.

Constructor

SpeechGrammar.SpeechGrammar()
Creates a new SpeechGrammar object.

Properties

SpeechGrammar.src
Sets and returns a string containing the grammar from within in the SpeechGrammar object instance.
SpeechGrammar.weight Optional
Sets and returns the weight of the SpeechGrammar object.

Examples

var grammar = '#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;'
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;


console.log(speechRecognitionList[0].src); // should return the same as the contents of the grammar variable
console.log(speechRecognitionList[0].weight); // should return 1 - the same as the weight set in line 4.

Specifications

Specification Status Comment
Web Speech API
The definition of 'SpeechGrammar' in that specification.
Draft  

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic support
Experimental
Chrome Full support 25
Prefixed
Full support 25
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge No support NoFirefox Full support 44
Notes Disabled
Full support 44
Notes Disabled
Notes Note that currently only the speech synthesis part is available in Firefox Desktop — the speech recognition part will be available soon, once the required internal permissions are sorted out.
Disabled From version 44: this feature is behind the media.webspeech.recognition.enable preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 27Safari No support NoWebView Android No support NoChrome Android Full support 64
Prefixed
Full support 64
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge Mobile No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
SpeechGrammar() constructor
Experimental
Chrome Full support 25
Prefixed
Full support 25
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge No support NoFirefox Full support 44
Notes Disabled
Full support 44
Notes Disabled
Notes Note that currently only the speech synthesis part is available in Firefox Desktop — the speech recognition part will be available soon, once the required internal permissions are sorted out.
Disabled From version 44: this feature is behind the media.webspeech.recognition.enable preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 27Safari No support NoWebView Android No support NoChrome Android Full support 64
Prefixed
Full support 64
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge Mobile No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
src
Experimental
Chrome Full support 25Edge No support NoFirefox Full support 44
Notes Disabled
Full support 44
Notes Disabled
Notes Note that currently only the speech synthesis part is available in Firefox Desktop — the speech recognition part will be available soon, once the required internal permissions are sorted out.
Disabled From version 44: this feature is behind the media.webspeech.recognition.enable preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 27Safari No support NoWebView Android No support NoChrome Android Full support 64Edge Mobile No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
weight
Experimental
Chrome Full support 25Edge No support NoFirefox Full support 44
Notes Disabled
Full support 44
Notes Disabled
Notes Note that currently only the speech synthesis part is available in Firefox Desktop — the speech recognition part will be available soon, once the required internal permissions are sorted out.
Disabled From version 44: this feature is behind the media.webspeech.recognition.enable preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 27Safari No support NoWebView Android No support NoChrome Android Full support 64Edge Mobile No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

See also

Document Tags and Contributors

Contributors to this page: fscholz, chrisdavidmills
Last updated by: fscholz,