Все про Интернет
       (N 384) 2011 - 2012
        << Архив передач >>
 Логин:  Пароль:
[регистрация]     запомнить 
 Поиск по сайту:
[Сайты зрителей] [Рейтинг] [Статьи] [Форум] [Блог] [Киберспорт] [Конкурсы] [О передаче]
 

SAPI. Озвучиваем буфер обмена

raxp@mail.zp.ua

Статья не посвящена непосредственно синтезу и качеству речи, поэтому кто интересуется сим, может дальше и не смотреть…

Иногда возникает необходимость дать передышку глазам, если Вы читаете. Для чего уже существует множество различных речевых синтезаторов текста, качество “русского” конечно страдает. Но тем не менее хотелось-бы чего-нибудь попроще, скопировал в буфер “что нужно и пошел чай пить”. Как это реализовать?

Разработка
Прежде всего нам понадобится сама библиотека Microsoft SAPI [3], но лучше воспользоваться вариантом урезанной версии [4], хотя в конечном итоге работа с той и этой ничем не отличается.
После чего для вашего проекта сделайте Import Type Library ActiveX компонента DirectSS.

... в нашем случае, для работы с ней достаточно подключить модуль ACTIVEVOICEPROJECTLib_TLB и произвести инициализацию вызова CoInitialize(nil), так как мы работаем с невизуальной частью

...
dss.Initialized:= 0;
  with dss do begin
   pitch:= 270;
   speed:= 180;
   LanguageID($409);
   Speak(‘ваш текст’)
 End
...

Обратите внимание!  

... для синтеза русской речи вам могут понадобятся языковые интерфейсы, к примеру от Lernout TTS3000 <Lhttsrur.exe>

остается осуществить перехват сообщения буфера обмена WM_DRAWCLIPBOARD и прочитать, что в нем:

...
SendMessage(PrevHWnd, WM_DRAWCLIPBOARD, 0, 0);
if Clipboard.HasFormat(CF_TEXT) then begin
 H:= Clipboard.GetAsHandle(CF_TEXT);
 s:= pchar(GlobalLock(H));
 key(s);
 GlobalUnlock(H)
End
...

Создание утилиты на WinAPI опускаем - это не наша цель, при желании взглянуть пожалуйте сюда [1].
Процесс будет висеть себе, отслеживать состояние буфера, а при наличии текста – синтезировать речь. При желании можно добавить обработку типа содержимого, скажем CF_BITMAP и говорить, что это растровое изображение…

Итак, создадим простенький системный сервис, осуществляющий загрузку нашей утилиты и не светящийся ни автозагрузке, ни в реестре.

Возможности
Что еще дает нам контроль над буфером обмена? … к примеру, можно перехватывать наличие в нем скриншотов и сделать простую защиту [2] от различных spy- шпионских программ и т.п.

 

Ссылки:


Контактная информация:

raxp@mail.zp.ua

16.04.2007


[Переход к списку статей]

 
 

[Видеоархив]

Передача создана дизайн-студией Conus Video
По вопросам размещения рекламы или информации в передаче Internet@Mania пишите imania@mail.zp.ua, или звоните
8(0612)63-80-84


Share |
 
 


Провайдеры Запорожья
zp-provider.narod.ru
providers.portall.zp.ua
Домовые сети
linet.zp.ua
setka.zp.ua
biscom.zp.ua
homenet.zp.ua
www.16x.zp.ua
www.ss.zp.ua
www.skynet.zp.ua
www.watson.zp.ua
www.link.zp.ua
www.kichkas.net
www.neuro.zp.ua
innkom.zp.ua
Каталоги Запорожья
www.otvet.zp.ua
www.portall.zp.ua
www.zaporozhye.org
www.spravka.zp.ua
Форумы
www.forumzone.zp.ua
forum.mail.zp.ua
forum.tinet.zp.ua
forum.nulled-warez.org
forum2.biscom.zp.ua
myforum.net.ua
forum.ru-board.com
forstud.org.ua
Чаты
chatzone.zp.ua
4at.zp.ua
chatinet.zp.ua
chatik.zp.ua
Компьютерные сайты
www.ixbt.com
www.techlabs.ru
www.thg.ru
www.overclockers.ru
Игровые сайты
www.games.zp.ua
www.ag.ru
www.gamemag.ru
www.uaplay.com
www.gameg.info
Журналы
www.seti.com.ua
www.cpp.com.ua
www.shpil.com
www.chip.ua
Блоги
revolver.ru
dirty.ru
photoblog.ru
www.autoblog.ru

 
    Передача создана дизайн-студией Conus Video
    По вопросам размещения рекламы или информации в передаче Internet@Mania пишите нам imania@mail.zp.ua, или звоните 8(0612)63-80-84