Share via


International Phoneme Representation (Windows Embedded CE 6.0)

1/6/2010

You can create pronunciations for words that are not currently in the lexicon using the phonemes represented in the attached appendixes. The proposed phoneme set is composed of a symbolic phonetic representation (SYM).

You can enter the SYM representation to create the pronunciation by using the XML PRON tag, or by creating a new lexicon entry. Each phoneme should be space delimited.

The engine is passed a USHORT structure called SPPHONEID (a number between 1 and n where n is the total number of phonemes for that language). The conversion from the SYM to SPPHONEID occurs in the SAPI PhoneConverter.

Mark up tag Description

PRON SYM

Tag used to insert a pronunciation using symbolic representation

Example: pronunciation for "hello"

<PRON SYM = "h eh l ow"/>

For improved accuracy, the primary (1), secondary (2) stress markers, and the syllabic markers (-) can be added to the pronunciation.

Example: pronunciation for "hello" using the primary stress (1) and syllabic (-) markers:

<PRON SYM = "h eh - l ow 1"/>

SAPI-compliant engines are required to accept the PHONEID representation, and produce an articulation. The specific allophonic articulation is defined by the engine.

Non-SAPI phonemes are passed to the engine and the high bit on the PHONEID will be set. This will indicate to the engine that SAPI did not understand the phoneme. Your engine should be capable of bounds checking and either using the phoneme, or recovering gracefully. In the case where an application asks for a pronunciation (using the ISpLexicon::GetPronunication method) from the engine's lexicon, SAPI can pass an unknown phoneme back to the application. The application should verify the high bit of the SPHONEID to determine if the phoneme is a SAPI-defined phoneme or an engine-specific phoneme.

Main goals for defining the language dependent phoneme set:

  • Provide an engine-independent architecture for application developers to create user and application lexicons.
  • Make the English phonetic table simple enough to be used and understood by non-linguists who use the American English phoneme set.
  • Pass phonemes to the engine that are not recognized by SAPI.

Using the international phoneme schema, you can create a phoneme set which can be used for each language independently. Using the numeric representation as opposed to the International Phonetic Alphabet (IPA) code will eliminate some of the problems regarding the possibile differences in the IPA values for the same phonemes. Hence, an 'r' in English will correspond to a certain number (38) and an 'r' in French may correspond to a different number. It is up to the individual engine to provide the exact IPA value for the two 'r's.

Each language will be associated with a set of phonemes numbered from 1 to X. You can use either the symbolic representation or the number representation to enter the pronunciation. Because you are probably not a linguist, the IPA code will probably have little meaning.

Consistent pronunciation is NOT a goal, while predictable pronunciation is. Using the phoneme set, an application developer can guarantee a minimal pronunciation, but not the exact allophonic expression. So, the word "first" will always be pronounced as "first", never as "fist" or "feast", etc, but the accent of the engine may be slightly different due to differing internal allophone values.

For more information and definitions for international phoneme sets, see:

See Also

Concepts

American English Phoneme Representation

Other Resources

SAPI Application Development