2008-11-11 6 views
2

Я создаю небольшой виджет Silverlight, который произносит слово и выделяет каждый слог, как он произносится.SpeechSynthezier.PhonemeReached события и управляющие символы

Как часть этого, я использую SpeechSynthesizer.PhonemeReached event для определения времени начала и конца каждой фонемы (в качестве шага при определении времени начала и окончания каждого слога).

Странно то, что PhonemeReachedEventArgs.Phoneme property иногда является управляющим символом, по крайней мере (но, возможно, не исключительно) U+0004 END OF TRANSMISSION, включая места, которые нет, мм, конец передачи (например, начало).

Я не могу найти документацию о том, что это означает, кто-нибудь знает?

EDIT: Для того, чтобы уточнить, я не делаю синтез речи в Silverlight (так что не поддерживаются), я делаю это на сервере и возвращаю времена краевого слога и ИПС транскрипцию слова в HTTP-заголовок звукового ответа. Я, вероятно, не должен был упоминать о компоненте silverlight вообще, так как это не очень актуально, я просто не очень много думал об объяснении контекста. По электронной почте Ой. :)

+0

Как вы используете эту библиотеку в Silverlight, поскольку она не является библиотекой Silverlight? – Bryant

ответ

1

Если вы пытаетесь выяснить время начала и окончания каждой фонемы (это действительно другой вопрос) ... попробуйте использовать свойство PhonemeReachedEventArgs.Duration. Время начала будет «временем начала фразы» + суммарной продолжительностью всех ранее выраженных фонем. Конечное время будет «временем начала текущей фонемы» + продолжительностью текущей фонемы.

Что касается ответа на ваш «отправленный» вопрос, я предполагаю, что вы используете английский как язык синтеза. В этом случае вполне вероятно, что «символы», которые вы видите, фактически являются значениями индекса для American English Phoneme Table. Вы также можете увидеть то же самое с Chinese phonemes, однако Japanese phonemes имеют unicode-представления, которые находятся за пределами диапазона «управляющий символ».

+0

Я не думаю, что эти символы являются индексами в этой таблице, потому что они не соответствуют значениям в столбце «SYM», а некоторые из них - это символы Unicode IPA Extensions, такие как U + 0254 и U + 026a. Спасибо, однако, я не знал об этом наборе документов. –

+0

Думаю, я понимаю, что вы сейчас имеете в виду, это индексы в этой таблице. Я неправильно понял. –