Compartir a través de


Parsing Guidelines for SAPI Speech Recognition Phone Converters

SAPI does not enforce any parsing conventions on phone strings, nor does it place any restrictions on the phonetic validity of compounds or the correct usage of diacritics.

Application developers need to be aware of guidelines for writing pronunciations and using UPS phones. In addition, engine developers require some guidelines for parsing UPS phone strings.

The Compound Symbol

The compound phone "+" is a Boolean symbol that requires a left and right context. Any two SAPI symbols can be joined by the compound symbol, including sequences of segmental symbols, Tones, and Diacritics.

Any number of segmental symbols can be joined by the "+" symbol. Usually, this will be limited to two in the case of affricates and diphthongs. Some sounds, such as triphthongs or geminates, may require three or more.

The following are all valid phone strings, shown with the parsed meaning:

Phone string

Parsed Phone String

A B C

A B C

A + B

AB

A B + C

A BC

A + B + C

ABC

Parsing Affricates, Diphthongs, and Nasal Vowels

When UPS contains a specific phone for a compound sound such as a nasal vowel or affricate, the SAPI phone ID of the phone provides the information required to split it up into its constituent phones, including the "+" marker.

For example, UPS contains phones for the affricate "PF" and the nasal vowel "AN". If the speech recognition (SR) engine does not model such sounds and would prefer to split them up, it is possible by parsing the SAPI phone ID. Each SAPI phone ID is a fixed length of four integers as can be seen below. The phone ID for "PF" breaks down to three individual phones: "P", "+", and "F".

UPS Phone

SAPI Phone ID

PF

007003610066

P + F

0070 0361 0066

AN

00610303

A nas

0061 0303

Diacritics

A diacritic cannot stand alone. Diacritics must modify the preceding segmental phone. The compound marker is not required to bind diacritics. If the phone preceding a diacritic is a "+" symbol, it should be ignored by the SR engine. Any number of diacritics can follow a segmental symbol. Diacritics may use the three-letter symbol or the symbolic form if there is one. The SR engine should ignore the "+" marker.

Phone

Parsed Phone

A lng

Alng

A vls lng

Avlslng

A vls + lng

Avlslng

Tones

Lexical tones can follow a vowel or syllabic consonant. They can be made up of simple levels or they can be contours composed of sequences of tones. Lexical tones are described using a universal scale which has a maximum of five level contrasts. A sequence of three tones should be sufficient to describe any tone contour. The following are valid strings using tones.

Phone String

Parsed Phone String

M + A T3 T5

MA35

M + A + T3 + T5

MA35

M A + T3 + T5

MA35

The first example defines a syllabic unit "MA" through the use of the compound "+" marker, with a high rising 35 tone contour.

The second example attaches the tone to the vowel only. It is up to the speech recognition engine to map the "M A" to a syllable "MA" depending on its internal acoustic modeling. The use of the compound symbol "+" between tones is redundant here.

Geminate Consonants

Italian geminates are sometimes described as long consonants, and they could be described using the length diacritic or the "+" symbol. The following table shows some alternative phone strings that would have equivalent meaning. Examples are in Italian.

Compounds

IPA

Example

Language

TS lng

T lng + S

TS + TS

t:.s

bozza

Italian

DZ lng

D lng + Z

DZ + DZ

d:.z

mezzo

Italian

CH lng

T lng + SH

CH + CH

t:.ʃ

braccio

Italian

JH lng

D lng + ZH

JH + JH

d:.ʒ

oggi

Italian

M lng

M + M

M + M

m.m

mamma

Italian

The preferred method is to use the length diacritic. To be safe, the engine developer should anticipate that any of these cases could be encountered in Italian SAPI lexicons or grammars.

Diphthongs

Diphthongs are represented by placing a "+" marker between two vowels, for example: "EY + EU".

German contains several examples of centering diphthongs for which there is no single phone label in UPS. See the diphthongs table in Vowels to see how diphthongs would be represented using UPS compounds.

Note that, due to the length diacritic, there are two ways in which the vowel in "Bär" could be represented. This first example attaches the length correctly to the "EH" vowel:

Phone String

SAPI Phone ID

EH lng + AEX

025B 02D0 0361 0250

However it is possible that people could choose to attach the length to the schwa, (the second vowel) such as in the following example.

Phone String

SAPI Phone ID

EH + AEX lng

025B 0361 0250 02D0

The SR engine should expect to handle this kind of ambiguity when converting SAPI phones to SR engine phones.