Одна из интересных возможностей Windows 2000 - это голосовой синтезатор, так
называемай Text-to-Speech (TTS). Конечно же, читается только английский текст.
Зачем? Да мало ли зачем... Например, для помощи людям с плохим зрением. Сам я
использую его для обучения английскому - весьма помогает выработке правильного
произношения.
Эта статья содержит (ну очень) краткое введение по использованию Microsoft
Voice Text Object.
Прежде всего, подключите в ваш проект компонент VoiceText Type Library:
выберите Project|References и поставьте галочку напротив этой библиотеки.
Если ее нет в списке, выберите Browse и укажите на
%windir%\speech\vtxtauto.dll.
Объект VTxtAuto является глобальным и никаких дополнительных объектов
создавать не обязательно. Работа начинается с регистрации приложения:
VTxtAuto.Register "", "My Application"
После регистрации сразу же можно читать текст:
VTxtAuto.Speak "Hello baby", vtxtsp_NORMAL
Чтение происходит асинхронно: программа не ожидает пока закончится
произнесение фразы, а продолжает работать сразу после передачи ее в TTS.
Остановить эту болтовню можно методом StopSpeaking.
Процесс Text-to-Speech проходит в несколько этапов:
анализ текста (учет сокращений, пунктуации, преобразование чисел в слова)
определение произношения
генерация списка фонем
синтез звука
Информация об интонации фразы (обычная, вопросительная) берется не из нее
самой, а определяется последним параметром процедуры Speak.
И последнее. Как бы ни был хорош синтезатор, при разборе того что он там
говорит, да еще с другого языка, недолго и головную боль заработать. Берегите
свое здоровье...
См. также в MSDN:
"A High-Level Look at Text-to-Speech via the Microsoft Voice Text Object"
by Robert Coleridge.
"Talk to Your Computer and Have It Answer Back with the Microsoft Speech
API" by Mike Rozak
Для тех, у кого есть любые вопросы, имеюшие отношение к тематике Visual
Basic, хочу порекомендовать место, где на них можно получить ответ.
Причем в течении совершенно разумного и небольшего промежутка времени
- от нескольких часов до нескольких дней. Место это - конференция RU.Visual.Basic,
расположенная
на сайте Visual Basic на русском.
Для сомневающихся в эффективности такого метода получения ответов, информирую,
что за декабрь месяц среднее ежедневное количество сообщений составлило
65 - общее за месяц - 2031.
Хочу поставить в известность всех
подписчиков этого листа - лист создается в html, а потом автоматом на
Ситикоте из него создается текстовый вариант. Так что, если вы, по ошибке,
подписались на текстовую версию - рекомендую изменить этот параметр, так
как за качество конвертации я не отвечаю, а создавать отдельную версию
у меня не хватает времени. Сорри.