Built-in field types and grammars

The built-in field types and grammars for German are listed here.

Table 1. German built-in types. Brackets “[]” around a keyword mean that the keyword is optional. The vertical-bar symbol “|” indicates a choice between two or more keywords.
Element Implementation details
boolean Users can say one of the positive responses ja, jawohl, stimmt, klar, [das ist] richtig, positiv, OK, natürlich, sicher, or auf jeden Fall, or one of the negative responses nein, falsch, negativ, auf [gar] keinen Fall. Variations on “ja” (joh) and “nein” (nee, ) may also be used.

Users can also provide DTMF input: 1 is yes, and 2 is no.

The return value sent is a boolean “true” for a positive response or “false” for a negative response. If the field name is subsequently used in a value attribute within a prompt, the TTS engine will speak “ja” or “nein.”

currency Users can say currency values as a combination of a Euro component and a Cent component, such as “siebenundzwanzig Euro” and “fünfzig Cent.”

Users can also say one of these components without the other. If both components are present, they can be either not separated or separated by the word “und,” as in “zwanzig Euro siebzig” and “zwanzig Euro und siebzig Cent.”

A Euro component may be in any of the formats: “null Euro,” “ein Euro,” “m Euro(s)” (where 2 <= m <= 999,999,999) and "m" (where 1 <= m <= 999,999,999).

A Cent component may be in any of the formats: “null Cent,” “ein Cent,” “n Cent(s)” (where 2 <= n <= 99).

If both components are present, the Cent component can also have the format “n” (where 0 <= n <= 99).

Note that if users just say an integer value “m” (where 1 <= m <= 999,999,999), this will be interpreted as a number of Euro.

Note also that users can also speak two numerical values, where the first is between 0 and 999,999,999 and the second is between 0 and 99. This will be interpreted as a number of Euros followed by a number of Cents.

Also, “Franken” and “Rappen” may be used as currency types in place of “Euro,” “Euros,” “Cent,” and “Cents” in the above specification. Similarly, “Dollar,” “Dollars,” “Cent,” and “Cents” may be used. Note that both “Euro” and “Euros” can be used as the plural of “Euro.”

Users can also provide DTMF input using the numbers 0 through 9 and optionally the * key (to indicate a decimal point), and must terminate DTMF entry using the # key.

The return value sent is a string in the format UUUddddddddd.cc where UUU is a currency indicator (CHF, EUR, USD). If the field name is subsequently used in a value attribute within a prompt, the IBM TTS engine will speak the currency value. For example, the IBM TTS engine speaks “EUR9,30” as “neun Komma drei null Euro.”
Note: The above example only applies to currency, time, and number built-in grammars. For boolean, date, phone, and digits built-in grammars, the example is only correct if the field value is subsequently used in a <say-as> element with an interpret-as attribute value.
date Users can say a date using months, days and years, as well as the words gestern, heute, and morgen. The year must be between 1900 and 2099.

Users can speak years from 1901 to 1999 as “neunzehn <1- or 2-digit number>” or “neunzehn hundert [und] <1- or 2-digit number>,”such as “neunzehn vierundsiebzig” and “neunzehn hundert [und] vierundsiebzig.”

Users can speak years from 2001 to 2099 as “zweitausend [und] <1- or 2-digit number>” such as “zweitausend [und] vier” and “zweitausend [und] fünfundachtzig.”

Uses can also specify a 2-digit year (such as “einundneunzig”). A 2-digit year will be interpreted as being between 1911 and 2010.

The following common constructs for dates are supported: “dritter März zweitausend [und] eins,” “der dritte März zweitausend [und] eins,” and “(am | den) dritten März zweitausend [und] eins.”

Users can say “Januar” or “Jänner” for “January” and “Juni” or “Juno” for “Juni.”

Users can also say the day and month without specifying a year. This will be interpreted as a date in the current year.

Any of these constructs can be preceded by a day of the week, such as “Donnerstag dritter März zweitausend [und] eins,” “Donnerstag der dritte März zweitausend [und] eins,” and “[am] Donnerstag den dritten März zweitausend [und] eins.” However, the day will be ignored. Thus the specified date will be accepted, whether or not it falls on the specified day.

Users can also provide DTMF input in the form yyyymmdd.

Note: The date grammar does not perform leap year calculations. February 29th is accepted as a valid date regardless of the year. If desired, your application or servlet can perform the required calculations.

The return value sent is a string in the format yyyymmdd, with the VoiceXML browser returning a ? in any positions omitted in spoken input. If the value is subsequently spoken in <say-as> with the interpret-as value vxml:date, then it is spoken as a date appropriate to this language.

digits Users can say non-negative integer values as strings of individual digits (0 through 9). For example, a user could say “eins zwo drei vier fünf sechs.”

Users can say "2" by saying “zwei” or “zwo,” and “5” by saying “fünf” or “fünef.”

Users can also provide DTMF input using the numbers 0 through 9, and must terminate DTMF entry using the # key.

The return value sent is a string of one or more digits. If the result is subsequently used in <say-as> with the interpret-as value vxml:digits, it will be spoken as a sequence of digits appropriate to the current language. For example, the TTS engine speaks “123456” as “eins zwei drei vier fünf sechs.”

number Users can say natural numbers (that is, positive and negative integers, 0, and decimals) from -999,999,999.9999 to 999,999,999.9999. Users can say the word Komma (to indicate a decimal point) and plus or minus (to indicate a positive or negative number).

Users can say “2” by saying “zwei” or “zwo,” “5” by saying “fünf” or “fünef,” and “50” by saying “fünfzig” or “fuffzig.”

Users can also provide DTMF input using the numbers 0 through 9 and optionally the * key (to indicate a comma), and must terminate DTMF entry using the # key. Only positive numbers can be entered using DTMF.

The return value sent is a string of one or more digits, 0 through 9 , with a decimal point and a + or - sign as applicable. If the field is subsequently spoken in <say-as> with the interpret-as value vxml:type, where type is the type number you want to specify, then it is spoken as that type number appropriate to this language. For example, the TTS engine speaks &odq;123456&cdq; as &odq;<ph style="bold"> einhundert dreiundzwanzig tausend vierhundert f&ue;nfundsechzig</ph>.&cdq;

Use <say-as interpret-as="vxml:digit"> to have the number said as a string of digits.

phone Users can say a telephone number, including the optional words Durchwahl, Klappe, or Nebenstelle to indicate an extension.

In addition to digits (1 to 9), users can use double digits (such as “49”) and the phrases “zwei mal [die]...,” and “drei mal [die]...” before a digit. Users can also use the word “hundert, which is interpreted as “00.”

Users can also provide DTMF input using the numbers 0 through 9 and optionally the * key (to represent the word “extension”), and must terminate DTMF entry using the # key.

The return value sent is a string of digits which includes an x if an extension was specified. If the field is subsequently spoken in <say-as> with the interpret-as value vxml:phone, then it is spoken as a phone number appropriate to this language.

Note: For tips on minimizing recognition errors that are due to user pauses during input, see Using the built-in phone grammar.
time Users can say a time of day using hours and minutes in either 12- or 24-hour format, as well as the words and phrases “jetzt,” “[jetzt] sofort,” and “[jetzt] gleich.”
Times can be stated in any of the following formats:

[morgens | am Morgen | vormittags | am Vormittag | mittags | nachmittags |
am Nachmittag | abends | am Abend | nachts | in der Nacht | in der Früh] ...
... [eine Minute (nach | vor)] n [Uhr] ...
... [um] [m (nach | vor)] n [Uhr] ...
... [um] [m Minuten (nach | vor)] n [Uhr] ...
... [um] [viertel (nach | vor)] n ...
... [um] [viertel | dreiviertel] n ...
... [um] [halb] n ...
... [um] N Uhr (M) ...
... [morgens | am Morgen | vormittags | am Vormittag | mittags | nachmittags |
am Nachmittag | abends | am Abend | nachts | in der Nacht | in der Früh | früh]
[um] Mitternacht
[am] Mittag
12 Uhr Mittag
where 1 <= m <= 20, 1 <= M <= 59,1 <= n <= 12, and 0 <= N <= 24

Users can also provide DTMF input using the numbers 0 through 9.

The return value sent is a string in the format hhmmx, where x is a for AM, p for PM, h for 24 hour format, or ? if unspecified or ambiguous. For DTMF input, the return value will always be h or ?, since there is no mechanism for specifying AM or PM. If the field is subsequently spoken in <say-as> with the interpret-as value vxml:time, then it is spoken as a time appropriate to this language.