Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Microsoft Agent. Часть II

03.12.2007 от Иван Ширко

В прошлой части мы научились применять технологию Microsoft Agent в web-страничках. В этот раз мы будем работать с Delphi. Убедитесь, что установлены все необходимые компоненты (см. первую часть) и можно отправляться в увлекательное путешествие по миру MsAgent.
Запустите Delphi и в меню "Component" выберите пункт "Import ActiveX Control…". В появившемся диалоговом окне нужно выделить строку "Microsoft Agent Control…" и нажать кнопку "Install". Далее произойдёт стандартный процесс установки нового компонента. После окончания инсталляции создайте новое приложение и поместите на форму полученный компонент – Agent1:TAgent (он должен находиться на закладке ActiveX).
Вот этот вот почти «ноль-ноль-семь» будет помогать нам создавать приложения, которые будут работать с технологией MsAgent. Начнём с небольшого примера, с маленького костяка, который можно будет использовать при разработке более сложных программ.

Читать полностью »

Рубрики: Delphi, MsAgent | Комментарии (3) »

Microsoft Agent. Часть I

28.11.2007 от Иван Ширко

Microsoft, несмотря на всю льющуюся на них критику, постоянно предоставляет разработчикам новые возможности. Несколько лет назад появилась очень интересная технология – Microsoft Agent. Где можно было наблюдать её применение? Например, в популярном переводчике Magic Gooddy. Основной "фишкой" данной программы является утёнок Gooddy, который свободно может говорить на русском и английском языках. Более того, этот утёнок может ещё и "понимать" некоторые голосовые команды, произнесённые в микрофон. У Gooddy, ко всему прочему, всё время меняется настроение: если долго не пользоваться его услугами, то он начинает грустить, а при переводе он выглядит самым счастливым утёнком в мире. Этот утёнок со всеми его возможностями является наглядным примером применения технологии MsAgent.

Вот таким вступлением я открыл небольшую серию статей, посвящённых Microsoft Agent. В первой части мы рассмотрим аспекты использования MsAgent в web-страницах. Представьте себе, сидите вы в интернете, открываете некую web-страничку, а тут из лампы вылазит Джин из мультфильма "Аладдин" и начинает что-нибудь вам рассказывать. А если вы вдруг наведёте курсор мыши на какую-нибудь гиперссылку, то Джин подлетит к ней и доходчиво объяснит, куда вы попадёте, нажав на ссылку… Здорово? Вот приблизительно такую страничку мы и сотворим в данной статье.

Теперь самое время установить MsAgent. Для этого нужно отправиться на страницу http://www.microsoft.com/msagent/ и скачать оттуда следующие файлы:
1) Сам Microsoft Agent – http://activex.microsoft.com/activex/controls/agent2/MSagent.exe (395 кб), обязательно;
2) Перевод на русский язык различных диалогов, надписей и т.п. – http://activex.microsoft.com/activex/controls/agent2/AgtX0419.exe (128 кб), необязательно;
3) один из персонажей (например, Джин из мультфильма "Аладдин") – http://download.microsoft.com/download/0/0/c/00cde5f8-321d-4325-baae-eb27f1bde85f/Genie.exe (1.6 Mb), необязательно, можно работать и с другим персонажем;
4) компонент для произношения текстов (для русского языка) – http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe (2.9 Mb), необязательно;
5) Поддержка SAPI (нужна для произношения текстов, в Win2000 должна быть установлена изначально) – http://activex.microsoft.com/activex/controls/sapi/spchapi.exe (824 кб), необязательно.

После установки всех этих компонентов можно приступать к разработке приложений, использующих технологию MsAgent. Начнём мы, как уже было сказано, с web-страниц. Сразу замечу, что MsAgent накладывает некоторые ограничения на пользователя:
– MsAgent не будет работать ни в одном web-браузере, кроме Internet Explorer (разработчик ведь Microsoft). Версия IE должна быть не ниже, чем 3.02;
– у посетителя должно быть установлено необходимое программное обеспечение (его мы уже скачали).
Теперь сделаем маленькую пробную страничку. Откройте самый продвинутый HTML-редактор с названием Блокнот (некоторым он известен как NotePad). Запишите в нём следующие строки:

<html>   

<head>   

 <title>Microsoft Agent</title>   

 <Object ID="Agent" Width=0 Height=0   

 ClassID="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"   

 CodeBase="#VERSION=2,0,0,0">   

 </Object>   

 <script language=javascript>   

 <!--   

  var Genie;   

  function LoadAgent()   

   {   

    Agent.Characters.Load ("Genie", "Genie.acs");   

    Genie = Agent.Characters.Character("Genie");   

    Genie.Show();   

//А здесь можно написать другие команды   

   }   

  function UnLoadAgent()   

   { Agent.Characters.Unload("Genie");}   

 //-->   

 </script>   

</head>   

<body   

 onload="LoadAgent()"   

 onunload="UnLoadAgent()">   

<html>

Теперь сохраните данный код в файл *.html и откройте полученную страничку при помощи Internet Explorer. После загрузки страницы из дыма появится Джин, поприветствует вас поклоном и произнесёт на русском языке приветственную фразу. Давайте посмотрим, как мы добились такого результата.
В тэге <object> мы подключили к нашей странице объект AGENT, который предоставит нам все возможности технологии MsAgent. После этого на языке JavaScript записали две функции – LoadAgent и UnLoadAgent. А затем в тэге указали, что эти функции должны вызываться при загрузке и закрытии страницы соответственно. После строчек


Agent.Characters.Load ("Genie", "Genie.acs");
Genie = Agent.Characters.Character("Genie");

мы можем "давать команды" Джину: Genie.Show; Genie.Play; Genie.Speak; и т.д. Давайте рассмотрим некоторые команды более подробно:
Команда Пояснения
Show Служит для появления персонажа на экране
Hide Скрывает персонажа
MoveTo(X, Y) Перемещает персонажа в точку с координатами (X; Y), координаты задаются в пикселях
Play("Имя анимации"); Проигрывает заданную анимацию.
GestureAt(X, Y) Персонаж указывает рукой в точку с координатами (X; Y)
Think("Мысль") Персонаж "думает Мысль", т.е. звука нет, но над персонажем появляется текст Мысли.
Speak("Фраза") Персонаж произносит Фразу.
Вот несколько анимаций для персонажа "Джин":

MsAgent - персонаж Джинн

Пример: Genie.Play("Write");

MsAgent позволяет управлять даже голосом персонажа. Делается это при помощи специальных тэгов, которые нужно добавлять к произносимой фразе:

Тэг Значения и описание
\Chr="значение"\ Изменяет голос персонажа:
"Normal" (по умолчанию) – нормальный голос
"Monotone" – монотонный голос
"Whisper" – шёпот
\Emp\ На следующем за тэгом слове делается ударение
\Map="spokentext"="balloontext"\
Персонаж вслух произносит строку "spokentext", а над ним отображается строка "balloontext". Т.е. персонаж как бы думает одно, а говорит совершенно другое.
\Pau=значение\
Делает паузу, которая длится "значение" миллисекунд
\Pit=значение\
Устанавливает частоту произношения в Герцах
\Rst\ Устанавливает все параметры в исходное состояние
\Spd=значение\ Устанавливает скорость произношения текста в "словах в минуту"
\Vol=значение\ Устанавливает громкость произношения текста (от 0 до 65535)

Пример для JavaScript: Genie.Speak("\\chr=\"Whisper\"\\\\Pit=18400\\\\Spd=100\\Привет!");

С помощью представленных команд можно создать довольно эффектную и интерактивную страничку. Про другие команды и свойства мы поговорим в следующей части, когда перейдём к Delphi, а пока рассмотрим несколько аспектов использования MsAgent в web-страничках. Предположим, вы поместили страничку в интернете. Тогда её могут просматривать три вида пользователей:

1) С браузером Internet Explorer и установленной MsAgent;
2) С браузером Internet Explorer без установленной MsAgent;
3) С другим браузером.

Именно эти три случая мы должны обрабатывать в нашей страничке. Сделать это не так и сложно. Вначале запишем функцию HaveAgent, которая будет определять, установлены ли компоненты MsAgent в системе:

Function HaveAgent()
  Dim agent
  HaveAgent = False
  On Error Resume Next
  Set agent = CreateObject("Agent.Control.1")
  HaveAgent = IsObject(agent)
End Function

Теперь на основе этой функции можно написать шаблон странички, которая будет предусматривать все возможные варианты:

<SCRIPT LANGUAGE=VBSCRIPT>   

 If HaveAgent() Then   

  document.write "<H2 align=center>MsAgent найден</H2>"   

 Else   

'Microsoft Agent control was not found.   

  document.write "<H2 align=center> MsAgent не найден</H2>"   

 End If   

 Function HaveAgent()   

  Dim agent   

  HaveAgent = False   

  On Error Resume Next   

  Set agent = CreateObject("Agent.Control.1")   

  HaveAgent = IsObject(agent)   

 End Function   

</SCRIPT>

Вот и всё! По этому небольшому шаблону можно писать web-странички с использованием MsAgent, которые будут корректно отображаться во всех браузерах. Для примера я создал страничку, которую можно найти по адресу http://www.agentsample.narod.ru

На этом мы заканчиваем рассмотрение использования технологии Microsoft Agent в web-страничках. В следующей части мы перейдём к Delphi.

Иван Ширко
ishyrko@gmail.com

Рубрики: MsAgent | Комментариев нет »