SpeechSynthezier.PhonemeReached событие и управляющие символы - PullRequest
2 голосов
/ 12 ноября 2008

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

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

Странно то, что свойство PhonemeReachedEventArgs.Phoneme иногда является управляющим символом, по крайней мере (но, возможно, не исключительно) U + 0004 КОНЕЦ ПЕРЕДАЧИ , включая места, которые являются не конец передачи (как, скажем, начало).

Я не могу найти никаких документов о том, что это должно означать, кто-нибудь знает?

РЕДАКТИРОВАТЬ : Чтобы уточнить, я не делаю синтез речи в Silverlight (поскольку это не поддерживается), я делаю это на сервере и возвращаю время границы слога и транскрипцию IPA слово в заголовке HTTP аудио-ответа. Я, наверное, вообще не должен был упоминать часть с серебряным светом, поскольку она не очень актуальна, я просто не особо задумывался о объяснении контекста. По электронной почте Ой. :)

1 Ответ

1 голос
/ 18 ноября 2008

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

Что касается ответа на ваш "опубликованный" вопрос, я предполагаю, что вы используете английский в качестве языка синтеза. В этом случае вполне вероятно, что «символы», которые вы видите, на самом деле являются индексными значениями для Американской английской таблицы фонем . Вы также можете увидеть то же самое с китайскими фонемами , однако японские фонемы имеют представления в юникоде, которые находятся вне диапазона «управляющих символов».

...