W3C

Speech Recognition Grammar Specification Version 1.0
Implementation Report Plan

Version: 23 October 2002

Contributors:

Andrew Hunt, SpeechWorks International (lead)
Stefan Krause, Philips (lead)
Dan Burnett, Nuance Communications
Emily Candell, Comverse
Debbie Dahl, Unisys
Dan Evans, Nortel Networks
Debajit Ghosh, Nuance Communications
Jeff Kusnitz, IBM
Sol Lerner, SpeechWorks International
Bruce Lucas, IBM
Scott McGlashan, PipeBeach
Carl Mitchell, Lucent
Stephen Potter, Microsoft
Luc Van Tichelen, ScanSoft
Athos Toniolo, Loquendo
Qiru Zhou, Lucent

Introduction

The Speech Recognition Grammar Specification entered the Candidate Recommendation period on 26th June 2002.

The planned date for exiting Candidate Recommendation is 30 August 2002. Preparation of an Implementation Report is a key Exit Criteria for moving beyond the Candidate Recommendation. This document describes the requirements for the Implementation Report and the process that the Voice Browser Working Group will follow in preparing the report.

Objectives for Implementation Report

  1. Must verify that the specification is implementable
  2. Must demonstrate interoperability of implementations of the specification

Non-objectives for Implementation Report

  1. The IR does not attempt conformance testing of implementations

Work During the Candidate Recommendation Period

During the CR period, the Working Group will carry out the following activities:

  1. Clarification and improvement of the exposition of the specification.
  2. Disposing of Comments that were communicated to the WG during the CR period.
  3. Preparation of an Implementation Report meeting the criteria outlined in this document.

Participating in Implementation Report

You are invited to contribute to the assessment of the W3C Speech Recognition Grammar Specification by participating in the Implementation Report process.

Exit Criteria

The WG established the following exit criteria in the Request for CR:

  1. Sufficient reports of implementation experience have been gathered to demonstrate that Grammar processors based on the specification are implementable and have compatible behavior.
  2. Specific Implementation Report requirements (outlined below) have been met.
  3. Formal responses to all comments received by the Working Group.

Implementation Report Requirements

Detailed requirements for Implementation Report

  1. Testimonials from implementers will be included in the IR when provided to document the utility and implementability of the specification.
  2. Must cover both ABNF and XML forms of the specifications
  3. Conversion between the ABNF and XML forms must be validated
  4. Must cover multiple languages/scripts at least including English, another European language and an Asian language.
  5. IR must cover all specified features in the specification. For each feature the IR should indicate:
  6. Feature status is a factor in test coverage in the report:

Grammar Processor Coverage

Require at least two implementations for each of the following types of Grammar User Agent:

Should have testimonial statement on the following grammar processors and generators.

Notes on Testing Speech Recognition

  1. Each test grammar contains one or more inputs and corresponding outputs. The output format follows the "Logical Parse Structure" (LPS) defined in the Speech Recognition Grammar Specification, Appendix H. To completely perform a test each input specified in the grammar file must be used.
  2. A test report must indicate the outcome of each test. Possible outcomes are "pass", "fail" or "no-lang". "Pass" requires output of the grammar processor that is equivalent to the output specified in the respective test file for all inputs in this test file. Complete LPS is not required. A report must document the way the output was checked against the LPS. "No-lang" means the recognizer does not have the capability to support a specific language or combination of languages required for a grammar.
  3. A test report may contain an additional comment for each test. If a test fails a comment should be added (see also Detailed requirements for Implementation Report).
  4. The test set includes documents with weights on alternatives and probabilities on repeats. Pass/fail testing of these capabilities is not possible. Implementers are requested to provide written description of the implementability and utility of these specification capabilities.
  5. The test set includes documents in a number of languages. Speech recognition is, however, an intrinsically language-specific task so for the majority of test cases US English is used. Testimonials on broad testing of other languages are encouraged.
  6. Some tests contain notes that should be read before executing them. These notes can be found in the contents of the meta properties "info.*" in the grammars.

Out of Scope

  1. IR will not cover Semantic Interpretation.

Systems

Note: The testimonials with pink background from "Acme Labs" and "Beta Inc." are just examples and will be replaced with the actually submitted testimonials.

Acme Labs

Exec Summary

The W3C Speech Recognition Grammar Specification is well written, easily implementable and extremly useful. Acme Labs used it to make waffles, transcribe telephone calls, chase roadrunners and straighten the Tower of Piza.

Beta Inc.

Exec Summary

The W3C Speech Recognition Grammar Specification is extremly useful, easily implementable and well written. Beta Inc. used it to make waffles, transcribe telephone calls, chase roadrunners and straighten the Tower of Piza.

Test Results (XML Form)

Note: The "Acme ASR" and "Beta ASR" columns with pink background are just examples and will be replaced with the actually submitted implementation results.

Test ID Ref Description Mode Level Acme Labs Beta Inc.
token-basic.grxml 2.1 basic tokens voice required pass pass
token-quoted.grxml 2.1 quoted tokens voice required pass fail
token-unicode.grxml 2.1 Unicode tokens voice required pass pass
token-element.grxml 2.1 token delimited by "token" element voice required pass pass
ruleref-nonexistent-local.grxml 2.2 reference to a non-existent local rule reference voice required pass pass
duplicated-rulenames.grxml 2.2 duplicate rulenames voice required pass pass
duplicated-special-rulenames.grxml 2.2 redefining special rulenames voice required pass pass
ruleref-local.grxml 2.2.1 local rule reference voice required pass pass
ruleref-ext-rule.grxml 2.2.2 reference to a named rule of a grammar identified by a URI voice required pass pass
ruleref-ext-root.grxml 2.2.2 reference to the root rule of a grammar identified by a URI voice required pass pass
ruleref-ext-rule-mediatype.grxml 2.2.2 reference to a named rule of a grammar identified by a URI with a Media Type voice required pass fail
ruleref-ext-root-mediatype.grxml 2.2.2 reference to the root rule of a grammar identified by a URI with a Media Type voice required pass fail
ruleref-mismatch-modes.grxml 2.2.2 modes do not agree between rulerefs voice required pass pass
ruleref-mismatch-mediatype.grxml 2.2.2 media type specified does not match actual content voice required pass fail
special-null.grxml 2.2.3 special rule definitions ($NULL) voice required pass pass
special-void.grxml 2.2.3 special rule definitions ($VOID) voice required pass pass
special-garbage.grxml 2.2.3 special rule definitions ($GARBAGE) voice required pass pass
sequence-token.grxml 2.3 sequence of tokens voice required pass pass
sequence-ruleref.grxml 2.3 sequence of rule references voice required pass pass
sequence-ruleref-token.grxml 2.3 sequence of tokens and rule references voice required pass pass
sequence-item-empty.grxml 2.3 empty item element voice required pass pass
sequence-item-whitespace.grxml 2.3 element containing only whitespace voice required pass pass
alternatives-no-weights.grxml 2.4 a set of alternatives with no weights voice required pass pass
alternatives-all-weights.grxml 2.4 a set of alternatives with a legal weight on every alternative voice required pass pass
alternatives-some-weights.grxml 2.4 a set of alternatives with legal weights on one or many but not all alternatives voice required pass pass
alternatives-one-with-weight.grxml 2.4 a single alternative with a weight voice required pass pass
alternatives-one-no-weight.grxml 2.4 a single alternative without a weight voice required pass pass
alternative-null.grxml 2.4 alternative reference to NULL voice required pass pass
alternative-one-tag.grxml 2.4 alternative reference to a single tag voice required pass pass
alternative-one-item.grxml 2.4 one-of element containing a single item voice required pass pass
repeat-n-exact.grxml 2.5 2.5 repeat an expansion exactly "n" times voice required pass pass
repeat-m-n-times.grxml 2.5 repeat an expansion between "n" and "m" times voice required pass pass
repeat-m-or-more.grxml 2.5 repeat an expansion "m" or more times voice required pass pass
repeat-optional.grxml 2.5 optional expansion voice required pass pass
repeat-with-probs.grxml 2.5 repeat probabilities voice required pass pass
repeat-optional-void.grxml 2.5 optional VOID equivalent to NULL voice required pass pass
repeat-many-null.grxml 2.5 any number of NULL's is equivalent to a single NULL voice required pass pass
repeat-0-times.grxml 2.5 zero repetitions never matched voice required pass pass
tag-many.grxml 2.6 any number of tags may be included voice required pass pass
tag-repetition.grxml 2.5 any number of possible repetitions of a tag is equivalent to a single instance of the tag voice required fail fail
tag-standalone.grxml 2.6 standalone tags are legal voice required pass pass
xml_lang-token-single-lang.grxml 2.7 xml:lang attribute on token voice optional pass pass
xml_lang-item-single-lang.grxml 2.7 xml:lang attribute on item voice optional pass pass
xml_lang-one-of-single-lang.grxml 2.7 xml:lang attribute on one-of voice optional pass pass
lang-ruleref.grxml 2.7 xml:lang attribute on ruleref voice optional pass pass
lang-sequence.grxml 2.7 xml:lang attribute on sequence voice optional pass pass
rule-basic-def.grxml 3.1 rule definition voice required pass pass
rule-no-empty.grxml 3.1 no empty expansions voice required pass pass
rule-tag.grxml 3.1 single tag expansion voice required pass pass
rule-empty-item.grxml 3.1 empty item expansion voice required pass pass
rule-null.grxml 3.1 NULL expansion voice required pass pass
rule-private.grxml 3.2 declaration of private rule voice required pass pass
rule-public.grxml 3.2 declaration of public rule voice required pass pass
ruleref-ext-private-root.grxml 3.2 external reference to private root rule voice required pass pass
ruleref-ext-private-rule.grxml 3.2 external reference to private non-root rule voice required pass pass
example.grxml 3.3 example phrases voice required pass pass
no-rules.grxml 4 Grammar with no rules voice required pass pass
no-version.grxml 4 Grammar with no version voice required pass pass
no-namespace.grxml 4 XML grammar with no namespace voice required pass pass
no-doctype.grxml 4 XML grammar with no DOCTYPE voice required pass pass
doctype.grxml 4 XML grammar with a DOCTYPE voice required pass pass
korean-yesno-utf16-le.grxml 4.2 UTF16 Little Endian Korean XML grammar voice required pass no-lang
korean-yesno-utf16-be.grxml 4.2 UTF16 Big Endian Korean XML grammar voice required pass no-lang
header-encoding-none.grxml 4.4 no character encoding voice required pass pass
korean-yesno-utf8.grxml 4.4 UTF8 Korean XML grammar voice required pass no-lang
language-missing.grxml 4.5 language declaration missing is an error voice required pass pass
language-en-us.grxml 4.5 language declaration of en-US for mode="voice" voice required pass pass
language-other.grxml 4.5 other language declaration for mode="voice" voice required pass pass
language-dtmf-ignore.grxml 4.5 language declaration ignored for mode="dtmf" dtmf optional pass pass
no-language-no-mode.grxml 4.5 Grammar with no mode and no language voice required pass pass
mode-none.grxml 4.6 no mode declaration implies voice voice required pass pass
mode-voice.grxml 4.6 mode declaration voice voice required pass pass
mode-dtmf.grxml 4.6 mode declaration dtmf dtmf optional pass pass
root-rule-decl.grxml 4.7 root rule declaration voice required pass pass
root-rule-decl-missing.grxml 4.7 root rule declaration missing voice required pass pass
uri-ref-undefined-root-referenced.grxml 4.7 grammar ref with no fragment and no root rule voice required pass pass
uri-ref-undefined-root-referring.grxml 4.7 grammar ref with no fragment and no root rule voice required pass pass
undefined-root.grxml 4.7 reference to undefined root rule voice required pass pass
tag-format-decl.grxml 4.8 tag format declaration voice required pass pass
tag-format-decl-missing.grxml 4.8 omitted tag format declaration voice required pass pass
base-declaration.grxml 4.9 base uri declaration voice required pass pass
metabase-declaration.grxml 4.9.1 meta declaration of base uri voice required pass pass
base-metabase.grxml 4.9.1 base uri precedence voice required pass pass
lexicon-none.grxml 4.10 zero pronunciation lexicon declarations voice required pass pass
lexicon-one.grxml 4.10 one pronunciation lexicon declaration voice required pass pass
lexicon-many.grxml 4.10 many pronunciation lexicon declarations voice required pass pass
meta.grxml 4.11 meta declarations voice required pass pass
meta-http.grxml 4.11 HTTP response headers voice required pass pass
rdf-metadata.grxml 4.11.2 RDF meta data voice required pass pass
comment-xml.grxml 4.12 comments voice required pass pass
conformance-1.grxml 5.4 conforming grammar processor: parse all language declarations voice required pass pass
conformance-2.grxml 5.4 inform hosting environment of unsupported language voice required pass pass
conformance-3.grxml 5.4 activate root, single public rule, set of public rules or roots of one or many grammars directly or indirectly referenced (multiple languages) voice optional pass pass
conformance-4.grxml 5.4 activate root, single public rule, set of public rules or roots of one or many grammars directly or indirectly referenced (same language) voice required pass pass
conformance-5.grxml 5.4 handling of non-standard elements and attributes voice required pass pass
recursion.grxml 5.4 recursive grammar voice optional pass pass
conformance-6.grxml 5.4 inform hosting environment if unable to process content voice required pass pass
conformance-7.grxml 5.7 references to ABNF grammars within XML grammars voice optional pass pass
dtmf-sequence.grxml AppE simple DTMF grammar with a sequence dtmf optional pass pass
dtmf-full.grxml AppE DTMF grammar with alternatives and sequences dtmf optional pass pass
dtmf-pound-star.grxml AppE DTMF grammar with "pound" and "star" as symbols dtmf optional pass pass
dtmf-simple.grxml AppE simple DTMF grammar with one character dtmf optional pass pass
example-1.grxml AppJ.1 Example 1 XML voice required pass pass
example-2-booking.grxml AppJ.2 Example 2 booking voice required pass pass
example-2-places.grxml AppJ.2 Example 2 places voice required pass pass
example-3-korean-yesno-unicode.grxml AppJ.3 Example 3 voice required pass no-lang
example-3-korean-yesno-utf8.grxml AppJ.3 Example 3 voice required pass no-lang
example-4-chinese-digits-unicode.grxml AppJ.4 Example 4 Chinese digits voice required pass no-lang
example-4-chinese-digits-utf8.grxml AppJ.4 Example 4 Chinese digits voice required pass no-lang
example-5-swedish-boolean.grxml AppJ.5 Example 5 Swedish boolean voice required pass pass

Test Results (ABNF Form)

Note: The "Acme ASR" and "Beta ASR" columns with pink background are just examples and will be replaced with the actually submitted implementation results.

Test ID Ref Description Mode Level Acme Labs Beta Inc.
token-basic.gram 2.1 basic tokens voice required pass pass
token-quoted.gram 2.1 quoted tokens voice required pass pass
token-unicode.gram 2.1 Unicode tokens voice required pass pass
token-element.gram 2.1 token delimited by "token" element voice required pass pass
ruleref-nonexistent-local.gram 2.2 reference to a non-existent local rule reference voice required pass pass
duplicated-rulenames.gram 2.2 duplicate rulenames voice required pass pass
duplicated-special-rulenames.gram 2.2 redefining special rulenames voice required pass pass
ruleref-local.gram 2.2.1 local rule reference voice required pass pass
ruleref-ext-rule.gram 2.2.2 reference to a named rule of a grammar identified by a URI voice required pass pass
ruleref-ext-root.gram 2.2.2 reference to the root rule of a grammar identified by a URI voice required pass pass
ruleref-ext-rule-mediatype.gram 2.2.2 reference to a named rule of a grammar identified by a URI with a Media Type voice required pass pass
ruleref-ext-root-mediatype.gram 2.2.2 reference to the root rule of a grammar identified by a URI with a Media Type voice required pass pass
ruleref-mismatch-modes.gram 2.2.2 modes do not agree between rulerefs voice required pass pass
ruleref-mismatch-mediatype.gram 2.2.2 media type specified does not match actual content voice required pass pass
special-null.gram 2.2.3 special rule definitions ($NULL) voice required pass pass
special-void.gram 2.2.3 special rule definitions ($VOID) voice required pass pass
special-garbage.gram 2.2.3 special rule definitions ($GARBAGE) voice required pass pass
sequence-token.gram 2.3 sequence of tokens voice required pass pass
sequence-ruleref.gram 2.3 sequence of rule references voice required pass pass
sequence-ruleref-token.gram 2.3 sequence of tokens and rule references voice required pass pass
sequence-parentheses-empty.gram 2.3 empty parenthetical voice required pass pass
sequence-parentheses.gram 2.3 parenthesis for explicit encapsulation voice required pass pass
alternatives-no-weights.gram 2.4 a set of alternatives with no weights voice required pass pass
alternatives-all-weights.gram 2.4 a set of alternatives with a legal weight on every alternative voice required pass pass
alternatives-some-weights.gram 2.4 a set of alternatives with legal weights on one or many but not all alternatives voice required pass pass
alternatives-one-with-weight.gram 2.4 a single alternative with a weight voice required pass pass
alternative-null.gram 2.4 alternative reference to NULL voice required pass pass
alternative-empty-paren.gram 2.4 alternative reference to "()" voice required pass pass
alternative-one-tag.gram 2.4 alternative reference to a single tag voice required pass pass
repeat-abnf-symbols.gram 2.5 "*" and "?" reserved voice required pass pass
wrong-repeat-abnf-symbols.gram 2.5 illegal use of "*", "+" and "?" voice required pass pass
repeat-n-exact.gram 2.5 2.5 repeat an expansion exactly "n" times voice required pass pass
repeat-m-n-times.gram 2.5 repeat an expansion between "n" and "m" times voice required pass pass
repeat-m-or-more.gram 2.5 repeat an expansion "m" or more times voice required pass pass
repeat-optional.gram 2.5 optional expansion voice required pass pass
repeat-with-probs.gram 2.5 repeat probabilities voice required pass pass
repeat-optional-void.gram 2.5 optional VOID equivalent to NULL voice required pass pass
repeat-many-null.gram 2.5 any number of NULL's is equivalent to a single NULL voice required pass pass
repeat-0-times.gram 2.5 zero repetitions never matched voice required pass pass
tag-many.gram 2.6 any number of tags may be included voice required pass pass
tag-repetition.gram 2.5 any number of possible repetitions of a tag is equivalent to a single instance of the tag voice required fail fail
tag-standalone.gram 2.6 standalone tags are legal voice required pass pass
tag-delimit-1.gram 2.6 tag delimited by "{" and "}" voice required pass pass
wrong-tag-delimit-1.gram 2.6 wrong use of tag delimiters voice required pass pass
tag-delimit-2.gram 2.6 tag delimited by "{!{" and "}!}" voice required pass pass
wrong-tag-delimit-2.gram 2.6 wrong use of tag delimiters voice required pass pass
lang-attachment-token-single-lang.gram 2.7 language attachment on token voice optional no-lang pass
lang-attachment-item-single-lang.gram 2.7 language attachment on item voice optional no-lang pass
lang-attachment-one-of-single-lang.gram 2.7 language attachment on one-of voice optional no-lang pass
lang-ruleref.gram 2.7 language attachment on ruleref voice optional pass pass
lang-sequence.gram 2.7 language attachment on sequence voice optional pass pass
abnf-precedence.gram 2.8 precedence voice required pass pass
rule-basic-def.gram 3.1 rule definition voice required pass pass
rule-no-empty.gram 3.1 no empty expansions voice required pass pass
rule-tag.gram 3.1 single tag expansion voice required pass pass
rule-empty-item.gram 3.1 empty item expansion voice required pass pass
rule-null.gram 3.1 NULL expansion voice required pass pass
rule-private.gram 3.2 declaration of private rule voice required pass pass
rule-public.gram 3.2 declaration of public rule voice required pass pass
ruleref-ext-private-root.gram 3.2 external reference to private root rule voice required pass pass
ruleref-ext-private-rule.gram 3.2 external reference to private non-root rule voice required pass pass
example.gram 3.3 example phrases voice required pass pass
example-end.gram 3.3 comment with example at the end voice required pass pass
no-rules.gram 4 Grammar with no rules voice required pass pass
no-version.gram 4 Grammar with no version voice required pass pass
unrecognized-header.gram 4 Unrecognized ABNF Header voice required pass pass
multiple-header.gram 4 Multiple ABNF Header voice required pass pass
korean-yesno-utf16-le.gram 4.2 UTF16 Little Endian Korean grammar voice required pass no-lang
korean-yesno-utf16-be.gram 4.2 UTF16 Big Endian Korean grammar voice required pass no-lang
byte-order-mark.gram 4.2 byte order mark preceding # voice required pass pass
byte-order-mark-unicode.gram 4.2 byte order mark preceding # voice required pass pass
no-abnf-sih-header.gram 4.2 Invalid ABNF Self-identifying header voice required pass pass
wrong-abnf-sih-version.gram 4.2 Wrong version number in ABNF Self-identifying header voice required pass pass
no-abnf-sih-version.gram 4.2 Missing version number in ABNF Self-identifying header voice required pass pass
abnf-sih-header-no-newline.gram 4.2 No newline after ABNF header voice required pass pass
header-encoding-none.gram 4.4 no character encoding voice required pass pass
korean-yesno-utf8.gram 4.4 UTF8 Korean ABNF grammar voice required pass no-lang
language-missing.gram 4.5 language declaration missing is an error voice required pass pass
language-en-us.gram 4.5 language declaration of en-US for mode="voice" voice required pass pass
language-other.gram 4.5 other language declaration for mode="voice" voice required pass pass
language-dtmf-ignore.gram 4.5 language declaration ignored for mode="dtmf" dtmf optional pass pass
no-language-no-mode.gram 4.5 Grammar with no mode and no language voice required pass pass
mode-none.gram 4.6 no mode declaration implies voice voice required pass pass
mode-voice.gram 4.6 mode declaration voice voice required pass pass
mode-dtmf.gram 4.6 mode declaration dtmf dtmf optional pass pass
root-rule-decl.gram 4.7 root rule declaration voice required pass pass
root-rule-decl-missing.gram 4.7 root rule declaration missing voice required pass pass
uri-ref-undefined-root-referenced.gram 4.7 grammar ref with no fragment and no root rule voice required pass pass
uri-ref-undefined-root-referring.gram 4.7 grammar ref with no fragment and no root rule voice required pass pass
undefined-root.gram 4.7 reference to undefined root rule voice required pass pass
tag-format-decl.gram 4.8 tag format declaration voice required pass pass
tag-format-decl-missing.gram 4.8 omitted tag format declaration voice required pass pass
base-declaration.gram 4.9 base uri declaration voice required pass pass
metabase-declaration.gram 4.9.1 meta declaration of base uri voice required pass pass
base-metabase.gram 4.9.1 base uri precedence voice required pass pass
lexicon-none.gram 4.10 zero pronunciation lexicon declarations voice required pass pass
lexicon-one.gram 4.10 one pronunciation lexicon declaration voice required pass pass
lexicon-many.gram 4.10 many pronunciation lexicon declarations voice required pass pass
meta.gram 4.11 meta declarations voice required pass pass
meta-http.gram 4.11 HTTP response headers voice required pass pass
comment-abnf.gram 4.12 comments voice required pass pass
comment-interspersed.gram 4.12 header with comments interspersed voice required pass pass
abnf-keywords.gram 4.14 grammar using ABNF keywords voice required pass pass
conformance-1.gram 5.6 conforming grammar processor: parse all language declarations voice required pass pass
conformance-2.gram 5.6 inform hosting environment of unsupported language voice required pass pass
conformance-3.gram 5.6 activate root, single public rule, set of public rules or roots of one or many grammars directly or indirectly referenced (multiple languages) voice optional pass pass
conformance-4.gram 5.6 activate root, single public rule, set of public rules or roots of one or many grammars directly or indirectly referenced (same language) voice required pass pass
conformance-5.gram 5.6 inform hosting environment if unable to process content voice required pass pass
recursion.gram 5.6 recursive grammar voice optional pass pass
conformance-6.gram 5.7 references to XML grammars within ABNF grammars voice optional pass pass
dtmf-simple.gram AppE simple DTMF grammar with one character dtmf optional pass pass
dtmf-sequence.gram AppE simple DTMF grammar with a sequence dtmf optional pass pass
dtmf-full.gram AppE DTMF grammar with alternatives and sequences dtmf optional pass pass
dtmf-pound-star-text.gram AppE DTMF grammar with "pound" and "star" as text dtmf optional pass pass
dtmf-pound-and-star.gram AppE DTMF grammar with "pound" and "star" as symbols dtmf optional pass pass
dtmf-star-no-quotes.gram AppE DTMF grammar with "star" unquoted dtmf required pass pass
example-1.gram AppJ.1 Example 1 ABNF voice required pass pass
example-2-booking.gram AppJ.2 Example 2 booking voice required pass pass
example-2-places.gram AppJ.2 Example 2 places voice required pass pass
example-3-korean-yesno-utf8.gram AppJ.3 Example 3 Chinese digits voice required pass no-lang
example-4-chinese-digits-utf8.gram AppJ.4 Example 4 Chinese digits voice required pass no-lang
example-5-swedish-boolean.gram AppJ.5 Example 5 Swedish boolean voice required pass pass