Feedback

  • Contents
 

Supported Say-as Text Normalization

In verbal conversations, certain categories of speech, such as currency and time, use a specific method to convey information. For example, when people read $12,345, it is usually spoken as "twelve-thousand-three-hundred-forty-five dollars" as opposed to "dollar-symbol one-two (pause) three-four-five", which is how a computer might interpret it.

In TTS, say-as text normalization directs the speech synthesizer to speak text in a specific manner so that the listener understands it. Without the say-as functionality, the synthesizer might speak a time of 10:30 AM as "one-zero-three-zero am". With say-as, the synthesizer can say the time as "ten-thirty a-m", which the listener understands easier.

The following table lists the say-as normalization types that are available and their support within Interaction Text to Speech.

Text normalization type

Usage

Supported

Notes

address

Processes mailing addresses

Yes

Processes US addresses, including military addresses, Post Office boxes, and rural routes. Abbreviations are expanded based on context:

Abbreviation examples:

123 Main St. "St." spoken as "street"

Springfield, IN "IN" spoken as "Indiana"

PO Box "PO" spoken as "post office"

RR 2 "RR" spoken as "rural route"

Tips:

  • Do not include the name of the addressee inside the <say‑asinterpret‑as="address"> element. Instead, use regular text processing for all names.

  • Use official United States Postal Service abbreviations for states, territories, and thoroughfare types.

  • If you encounter the incorrect audio of "street" when "saint" is required, use the full word "Saint" instead of the "St." abbreviation, as seen in "St. Paul, MN".

  • The say-as element for an address may contain newline characters

Supported languages:

  • en-US

alphanumeric

Spells letters and numbers

Yes

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-US

  • fr-CA

  • fr-FR

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

boolean

Understands yes and no

Yes

This type uses the VoiceXML 2.0 defined type for Boolean. ITTS supports usage of T, True, F, and False, and local variants for this normalization type.

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-US

  • fr-CA

  • fr-FR

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

currency

Processes currency amounts

Yes

In specifying currency values, you can use either the monetary symbol, such as $, or the associated abbreviation defined by ISO‑4217, such as (USD).

ITTS processes values to the right of a decimal point for only four digits. ITTS ignores any additional digits.

Supported languages:

  • de-DE (€ or EUR)

  • en-AU ($ or AUD)

  • en-GB (£ or GBP)

  • en-US ($ or USD)

  • es-ES (€ or EUR)

  • es-US ($ or USD)

  • fr-CA ($ or CAD)

    You can use a comma or a period as the decimal mark for fr-CA.

  • fr-FR (€ or EUR)

  • it-IT (€ or EUR)

  • ja-JP (¥ or JPY)

  • nl-NL (€ or EUR)

  • pt-BR (R$ or BRL)

  • zh-CN (¥, CNY, or RMB)

date

Processes chronological dates

Yes

ITTS supports the following date formats:

  • mdy - specify as mm/dd/yyyy in the text

  • dmy - specify as dd/mm/yyyy in the text

  • ymd - specify as yyyy/mm/dd in the text

  • md - specify as mm/dd in the text

  • dm - specify as dd/mm in the text

  • ym - specify as yyyy/mm in the text

  • my - specify as mm/yyyy in the text

  • y - specify as yyyy in the text

  • m - specify as mm in the text

  • d - specify as dd in the text

Example (en-US):

<say-as interpret-as="date" format="mdy">01/01/1984</say-as>

Output (en-US):

"January first, nineteen eighty-four"

Tip:

You can use the following delimiters when specifying dates:
/ (slash)
- (hyphen)
. (period)

You can also type single-digits for months and days, and two-digit years.

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-ES

  • es-US

  • fr-CA

  • fr-FR

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

  • zh-CN

digits

Reads strings digit-by-digit

Yes

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-US

  • es-ES

  • fr-CA

  • fr-FR

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

  • zh-CN

number

Reads strings as a value (not digit-by-digit)

Yes

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-US

  • es-ES

  • fr-CA

  • fr-FR

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

  • zh-CN

ordinal

Processes ordinal numbers, such as "first", "second", and so on.

Yes

You can specify only the digits or the digits and an ordinal ending for the supported language.

Note:

If the language uses gendered forms for ordinals, and the gender is not specified in the text, ITTS hypothesizes the most-likely gender for the ordinal.

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-ES

  • es-US

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

  • fr-CA and fr-FR

    1 results in "premier" or "première" with the ordinal.

    1re results in "première"

    1 femme results in "première femme"

    1 cœur results in "premier"

spell

Processes characters within a string, such as a word

Yes

The synthesizer speaks each character individually. Any punctuation characters in the string are read and named, such as ampersand (&), space ( ), and pound sign (#).

Supported languages:

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-US

  • es-ES

  • fr-CA

  • fr-FR

  • it-IT

  • jp-JP

  • nl-NL

  • pt-BR

  • zh-CN

telephone

Processes telephone numbers

Yes

The synthesizer reads telephone numbers, including SIP, according to local conventions in supported languages.

  • de-DE

  • en-AU

  • en-GB

  • en-US

  • es-US

  • es-ES

  • fr-CA

  • fr-FR

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

  • zh-CN

time

Processes time statements, such as "12:45 AM"

Yes

Supports hours, minutes, seconds, and 12 or 24-hour clock.

This normalization type does not support any format options.

This normalization type does not support durations, such as "60 minutes".

For all languages, the separator for the hours and minutes of the time is a colon (:). For top-of-the-hour times, such as "2 o'clock", you can omit the colon and minutes. Example: 2 pm

Supported languages:

  • de-DE

  • en-AU

  • en-GA

  • en-US

  • es-ES

  • es-US

  • fr-CA/fr-FR

    These languages support usage of h as a separator between the hours and minutes, such as 1h30.

  • it-IT

  • ja-JP

  • nl-NL

  • pt-BR

  • zh-CN