Support For the "say-instead" Property

Currently, the "say-instead" property is being considered for addition into the CSS3 speech module; the CLC-4-TTS Suite already provides support for this property as I am a strong advocate for the addition of "say-instead" as a CSS3 speech property.

This page uses "say-instead" to illustrate the utility of this property. Not only is it more practical than phonemes in certain cases, it can be more meaningful at times as well.

Using the phoneme property is the ideal way to deal with mispronounced names and words. However, phonemes are harder to use. For instance, the CSS3 Speech Module page has an example of saying the word "tomato" using phonemes; the phoneme markup looks like this: "t\0252 m\0251 to\028a" For web developers to use phonemes successfully, they must learn the IPA and be able to look up all the symbol values. While this is more correct, it is not necessarily more practical, especially for some cases where a very common word comes readily to mind for pronouncing an uncommon word. A good example of this comes from Pamela Berman: "Dr. Kapp is pronounced as 'Dr. Cop.'"

Another case where using phonemes may be awkward is with compound words. In that case, it is more desirable and just as correct to have the speech engine split up the word into its composite parts. "Homepage" is a word that is sometimes mispronounced; rather than going through the trouble of making a phoneme string to say it, a better solution is to just use say-instead to make it "home page."

On a technical note, because Java FreeTTS does not support JSML, it also does not support using phoneme strings. Thus, I will not be able to provide phoneme support for Java FreeTTS until the makers of Java FreeTTS give me the ability to do so. Also, some words are pronounced correctly in SAPI 5 but not in Java FreeTTS and vice versa. Adding a say-instead to make sure that it will always be correct is a relatively low cost move for a web developer in terms of thought and hassle; thus, it is more likely to be done rather than doing a phoneme to prevent a problem which may or may not occur. While it should not be a major factor, implementation friendliness is another reason why "say-instead" should be added officially to the CSS3 Speech Module.

Finally, "say-instead" could actually be more meaningful than a phoneme string in certain cases. For example, consider "Pope John Paul II," "Rocky II," and "The Godfather II." In these three cases, the same exact II Roman numeral is used, but it is spoken quite differently. The manner in which it should be rendered goes beyond what one can specify using the "speak" CSS3 property. While this can be accomplished with phonemes, in this case, using "say-instead" captures the web developer's intent much better.

Direct Comparison - Without and With Say-Instead

Dr. Kapp versus Dr. Kapp

Homepage versus Homepage

Pope John Paul II versus Pope John Paul II

Rocky II versus Rocky II

The Godfather II versus The Godfather II