SpeechSynthesizer.PhonemeReached событие и управляющие символы
-
08-07-2019 - |
Вопрос
Я создаю небольшой виджет silverlight, который произносит слово и выделяет каждый слог в том виде, как он произносится.
В рамках этого я использую Событие SpeechSynthesizer.PhonemeReached для определения времени начала и окончания каждой фонемы (в качестве шага в определении времени начала и конца каждого слога).
Странно то, что PhonemeReachedEventArgs Свойство .Phoneme иногда является управляющим символом, по крайней мере (но, возможно, не исключительно) U + 0004 КОНЕЦ ПЕРЕДАЧИ , включая места, которые не являются окончанием передачи (как, скажем, начало).
Я не могу найти никаких документов о том, что это должно означать, кто-нибудь знает?
РЕДАКТИРОВАТЬ . Чтобы уточнить, я не делаю синтез речи в Silverlight (поскольку это не поддерживается), я делаю это на сервере и возвращаю время границы слога и транскрипцию IPA. слова в заголовке HTTP аудио-ответа. Я, наверное, вообще не должен был упоминать часть с серебряным светом, поскольку она не очень актуальна, я просто не особо задумывался о объяснении контекста. По электронной почте Ой. :) Р>
Решение
Если вы пытаетесь выяснить время начала и окончания каждой фонемы (это действительно другой вопрос) ... попробуйте использовать свойство PhonemeReachedEventArgs.Duration. Время начала будет «временем начала фразы» + совокупная продолжительность всех ранее произнесенных фонем. Время окончания будет «временем начала текущей фонемы». + длительность текущей фонемы.
Как ответить на ваши " опубликованные " вопрос, я предполагаю, что вы используете английский в качестве языка синтеза. В этом случае вполне вероятно, что «символы» Вы видите, что на самом деле это индексные значения для Американской английской таблицы фонем . Вы также можете увидеть то же самое с китайскими фонемами Однако японские фонемы имеют представления в Unicode, которые все находятся за пределами «управляющего символа» Диапазон. р>