views:

174

answers:

1

I am creating a small silverlight widget which pronounces a word and highlights each syllable as it is pronounced.

As part of this, I am using the SpeechSynthesizer.PhonemeReached event to determine the start and end times of each phoneme (as a step in figuring out the start and end times of each syllable).

The weird thing is that the PhonemeReachedEventArgs.Phoneme property is sometimes a control character, at least (but possibly not exclusively) U+0004 END OF TRANSMISSION, including places which are not, umm, the end of the transmission (like, say, the beginning).

I can't find any documentation of what this is supposed to mean, does anyone know?

EDIT: To clarify, I'm not doing the speech synthesis in Silverlight (since that isn't supported), I am doing it on the server and returning the syllable boundary times and IPA transcription of the word in an HTTP header of the audio response. I probably shouldn't have mentioned the silverlight part at all, since it isn't really relevant, I just didn't really think much about explaining the context. Ooops. :)

+1  A: 

If you are trying to figure out the start and end times of each phoneme (which really is a different question)... try using the PhonemeReachedEventArgs.Duration property. The start time will be the "start time of the phrase" + the cumulative durations of all previously pronounced phonemes. The end time will be the "start time of the current phoneme" + the duration of the current phoneme.

As to answer your "posted" question, I am assuming that you are using English as your language of synthesis. In this case, it is likely that the "characters" you are seeing are actually index values to the American English Phoneme Table. You may also see the same with Chinese phonemes, however Japanese phonemes have unicode representations, which are all outside of the "control character" range.

I don't think that these characters are indexes into that table, because they don't match the values in the "SYM" column there, and some are Unicode IPA Extensions characters like U+0254 and U+026a.Thanks, though, I wasn't aware of that set of documents.
Doug McClean
I think I see what you mean now, they are indexes into that table. I misread.
Doug McClean