This topic provides developer information for implementing speech support in an Xbox One ADK application.
Speech is a great way for users to control your application without the need for a controller or gestures. If your application supports speech, you need to be aware of the following constraints and recommendations:
Dynamic content that relies on dynamic grammars needs to be carefully handled. When implementing dynamic grammars ensure that the following points are addressed:
Applications that do not address these three important points should instead use static grammars for dynamic content. For example, use phrases such as “Item 1”, “Item 2”, or “Video 1” when selecting specific dynamic content.
Note To support VUI in Japanese, you must configure the pronunciation constituent of the data-win-voice attribute.
It is important that the phrases in your grammar do not contain punctuation, symbols, and accented characters. Passing any of these items to the speech engine will result in silent failures and an inability to recognize the corresponding phrase. There are some cases where automatic handling is provided by the console but you should not depend on this.
Below is the list of what is currently removed by the dash for phrases in their grammars. Your application should also remove these characters.
| Unicode | Character |
|---|---|
| 0x0021 | ! |
| 0x0022 | ” |
| 0x0028 | ( |
| 0x0029 | ) |
| 0x002A | * |
| 0x002D | - |
| 0x002F | / |
| 0x003A | : |
| 0x003B | ; |
| 0x003C | < |
| 0x003E | > |
| 0x003F | ? |
| 0x005B | [ |
| 0x005D | ] |
| 0x005F | _ |
| 0x0060 | ` |
| 0x007B | { |
| 0x007C | | |
| 0x007D | } |
| 0x007E | ~ |
| Unicode | Character |
|---|---|
| 0x00A1 | Upside-down exclamation |
| 0x00A6 | Broken bar |
| 0x00AB | Left typographic double quote |
| 0x00AE | Registered trademark |
| 0x00B4 | Right single quote, back-tick |
| 0x00B7 | Interpunct |
| 0x00BB | Right typographic double quote |
| 0x00BF | Upside down question mark |
| 0x02BC | Right inverted comma |
| 0x02BD | Left inverted comma |
| 0x03B2 | Lowercase Greek beta |
| 0x2013 | Dash |
| 0x2018 | Left single quote |
| 0x2019 | Right single quote |
| 0x201C | Left double quote |
| 0x201D | Right double quote |
| 0x201E | Inverted left double quote, double comma |
| 0x2020 | Dagger |
| 0x2022 | Bullet |
| 0x2026 | Ellipsis |
| 0x2039 | Left typographic single quote |
| 0x203A | Right typographic single quote |
| 0x2117 | Sound recording copyright, published |
| 0x2122 | Trademark |
| Unicode | Character |
|---|---|
| 0x2605 | Black star |
| 0x2606 | White star |
| 0x2665 | Black heart |
| 0x3001 | Ideographic comma |
| 0x3002 | Ideographic full stop |
| 0x3008 | Left angle bracket quote |
| 0x3009 | Right angle bracket quote |
| 0x300A | Left angle bracket double quote |
| 0x300B | Right angle bracket double quote |
| 0x300C | Left corner bracket quote |
| 0x300D | Right corner bracket quote |
| 0x300E | Left white corner bracket quote |
| 0x300F | Right white corner bracket quote |
| 0x3010 | Left black lenticular bracket |
| 0x3011 | Right black lenticular bracket |
| 0x30FB | Katakana middle dot |
| 0xFF01 | Full width exclamation mark |
| 0xFF08 | Full width left parenthesis |
| 0xFF09 | Full width right parenthesis |
| 0xFF0A | Full width asterisk |
| 0xFF0B | Full width plus sign |
| 0xFF0D | Full width minus sign |
| 0xFF0F | Full width forward slash, full width solidus |
| 0xFF1C | Full width less-than, full width left angle bracket |
| 0xFF1E | Full width greater-than, full width right angle bracket |
| 0xFF2F | Full width circle, full width capital O |
| 0xFF38 | Full width capital X |
| 0xFF5E | Full width tilde |
| 0xFFE3 | Full width macron, full width overline |
Text normalization is a process which converts organized patters of symbols, based on a rule-based system, into words that are recognizable by the speech engine. For catalog entries, text normalization is used for the following categories of content:
The examples below are for U.S. English. However, each supported locale has its own set of rules specific to its number system.
The rule for cardinal numbers takes precedence for numbers not in the range of: 1900-2050
| Sample Input | Normalized Format |
|---|---|
| 9,123 | nine thousand one hundred twenty three |
| 123 | one hundred twenty three |
| 10,000 | ten thousand |
| 9,124 | Nine one two four |
| 105 | A hundred and five |
| 105 | A hundred oh five |
| 106 | One oh six |
| 125 | A hundred twenty five |
| 125 | A hundred and twenty five |
| 325 | Three hundred twenty five |
| 425 | Four twenty five |
| 1,500 | A thousand five hundred |
| 2,345 | Two thousand three forty five |
| 9005 | Nine thousand and five |
| 9,305 | nine thousand three hundred and five |
| 50,000 | fifty thousand |
| 100,000 | one hundred thousand |
| 500,000 | Nine thousand and five |
| 1,000,000 | One million |
| 5,000,000 | Five million |
| 10,000,000 | Ten million |
| 50,000,000 | Fifty million |
| Sample Input | Normalized Format |
|---|---|
| 1st | first |
| 2nd | second |
| 3rd | third |
| 4th | fourth |
| 5th | fifth |
| 6th | sixth |
| 7th | seventh |
| 8th | eighth |
| 9th | ninth |
| 10th | tenth |
The rule for years takes precedence for numbers are in the range of: 1900-2050.
| Sample Input | Normalized Format |
|---|---|
| 1940 | nineteen forty |
| 1998 | nineteen ninety-eight |
| 2002 | two thousand two |
| 1996 | nineteen ninety six |
| 2008 | Two thousand eight |
| 2011 | Twenty Eleven, Two Thousand Eleven |
Some common abbreviations for years are also covered.
| Sample Input | Normalized Format |
|---|---|
| ‘93 | ninety three |
| ‘00 | two thousand |
| ‘08 | oh eight |
| ‘09 | oh nine |
Decades are covered in various forms.
| Sample Input | Normalized Format |
|---|---|
| 50’s, ‘50s, and 50s | fifties |
| 60’s, ‘60s, and 60s | sixties |
| 70’s, ‘70s, and 70s | seventies |
| 80’s, ‘80s, and 80s | eighties |
| 90’s, ‘90s, and 90s | nineties |
| 00’s, ‘00s, and 00s | two thousands |
| 40’s, ‘40s, and 40s | forties |
| 30’s, ‘30s, and 30s | thirties |
| 20’s, ‘20s, and 20s | twenties |
Abbreviations are covered in various forms depending on the locale. The EN-GB, EN-AU, and EN-US lexicons handle the following:
| Sample Input | Normalized Format |
|---|---|
| Mr. | m ih s t ax |
| Mrs. | m ih s ih z (or m ih s ax z) |
| Ms. | m ih z (or m ax z) |
| Inc. | ih ng k |
| Inc. | ih n k oo p ax r ey t ih d Note For EN-US, the normalized text is ih n k oo r p ax r ey t ih d. |
| Inc. | ih ng k oo p ax r ey t ih d |
| Ph.D. | p iy ey ch d iy |
| doa | d iy ow ey |
| dr. | d r ay v ( or d o k t ax) Note For EN-US, the normalized text is d r ay v (or d o k t ax r). |
| vs. | v er s ax s |
| vol. | v o l j uw m (or v o l j uh m) |
| vol. | v o l j ax m |
| ltd. | l ih m ih t ih d (or l ih m ax t ih d) |
| st. | s t r iy t (or s ey n t) |
| ave. | ae v ax n j uw (or ae v ih n j uw) |
| co. | k ah m p ax n iy) |
| ° | d ax g r iy z |
| ° | d ih g r iy z |
| ° | d iy g r iy z |
| o | ow |