Microsoft Agent 应用心得

最近项目中想实现一个能够实时提示用户、引导用户操作,并进行操作说明的帮助系统,当然通过winform中的help体制是可以实现的,但是不够友好,响应也不够及时。于是考虑使用msagent来实现。

 

msagent是什么???

 

Microsoft Agent是一种基于微软视窗平台的可编程的即时交互性动画角色。开发人员能够用该角色作为助手介绍,向导,娱乐或作为一种加强网站及应用程序交互性开发的手段。 Microsoft Agent能使程序员和网站开发者设计出更加人性化的用户交互界面。除了可以接受键盘和鼠标的输入外, Microsoft Agent还可以听懂用户的语音命令,动画角色会根椐用户的准标语音命令通过同步语音,录音或文本框作出相应的回馈。

 

代码中使用的Microsoft Agent仍然属于客户端的控件,Microsoft Windows XP, Windows 2000 或是Windows Me 操作系统不用下载核心文件.因为已经内含了。而在Win98安装PWS时可以安装上一个叫Merlin的精灵,查查你的系统中有没有一个叫做Merlin.acf的文件,在%system%/MSAGENT/CHARS 的目录下,否则就会出现下载的提示,在Win2000中已安装了MSAgent2.0,所以一般都会正确的显示出来,还有很多精灵,但之所以选用Merlin因为大部分的机器上都有,如果想自己定制的话,可以到微软去下载一个叫Character Editor的工具,制作的精灵必须分发到客户端才可使用,在微软站点的Microsoft Agent是在服务器端的,每个命令都要到服务器上去处理,然后发回相应的动作图画。

  

  运行Microsoft Agent所需的最低配置:

  要求:
  Microsoft Windows95, Windows 98, Windows Me, Windows NT?4.0 或 Windows 2000
  IE3.02 以上
  CPU奔腾100 (MHz) 以上
  内存16 (MB)以上
  至少有 1 MB的剩余空间留给机器人核心文件
  每个角色均需要2MB以上的硬盘空间?
  另外每种语言组件需要 32 KB的空间 (dll).

  推荐配置:
  1.6 MB 剩余空间,如果您打算使用 Lernout & Hauspie?TruVoice Text-To-Speech Engine 驱动语音
  22 MB 剩余空间,如果您打算使用 Microsoft Speech Recognition Engine 来输入语音
  一块WINDOWS兼容的声卡
  一套兼容的音箱和话简

  Microsoft Agent核心文件下载:

  说明:Microsoft Windows XP, Windows 2000 或是Windows Me 操作系统不用下载核心文件.因为已经内含了。
http://activex.microsoft.com/activex/controls/agent2/MSagent.exe

  Microsoft Agent精灵文件下载:

Merlin

http://download.microsoft.com/download/1/d/b/1dbee406-9b5f-48c5-b901-dd1a3f3c4669/Merlin.exe

  Robby

http://download.microsoft.com/download/2/b/9/2b904bbb-c0b1-4840-b332-ba0615d1041e/Robby.exe

  Genie

http://download.microsoft.com/download/0/0/c/00cde5f8-321d-4325-baae-eb27f1bde85f/Genie.exe

  Peedy

http://download.microsoft.com/download/a/f/5/af572f68-b83e-4e2c-8b0f-fd5fadf588e7/Peedy.exe

  还有很多非微软的精灵



更多人物:
http://www.msagentring.org/chars.htm#InstallingCharacters

  如果你要想让精灵们说话,还需安装微软的语音引挚:

  Lernout & Hauspie(c)TTS3000 TTS engine - British English下载:

  http://activex.microsoft.com/activex/controls/agent2/tv_enua.exe

  也有国人开发的CTTS(Chinese Text to Speech engines )中文语音控件

  CTTS下载:
  http://billhao.nease.net/cn/Interests/CTTS/CTTS.zip

  如果你的系统是XP,为了更好的运行程序员所写代码中特定时间精灵们的动作运行,那就要安装SAPI 4.0 

  下载地址如下:
http://activex.microsoft.com/activex/controls/sapi/spchapi.exe

  如果想和机器人对话,那就要安装Speech recognition engines 

  下载地址如下:
http://activex.microsoft.com/activex/controls/agent2/actcnc.exe

  如果你还想听更多Microsoft Agent所发出的声调,那就要安装Speech control panel 

  下载地址如下:
http://download.microsoft.com/download/c/9/e/c9ee5f5d-7631-4ee7-aee4-dbd22b2b1439/SpchCpl.exe

  不过这些程序安装后都是为了Microsoft Agent更好的在软件中应用,而不仅仅是网页中的Microsoft Agent应用.

  相关软件:

  MASH

  http://www.bellcraft.com/download/mash62x.exe
  http://www.bellcraft.com/download/mash62.zip

   (笔者注:此工具实为调试msagent脚本,实时看效果的利器

 

  Character Editor
  http://download.microsoft.com/download/d/f/a/dfa1b90c-f879-4b80-a31d-06924121d9c6/ace.exe

 

但此处注意,由于msagent已经是相对老年的技术了,老版本的windows都默认集成,但在最新的win7中是被取消了的,如果想win7也支持此功能,需要下载、安装此hotfix:http://support.microsoft.com/kb/969168

 

 

我们如何在程序中引用msagent呢?

 

1. 添加Microsoft Agent Contol的引用 

 

2.接着设计精灵界面。

我们用到的精灵是用Microsoft Agent创建的,它是完全居于COM的,所以我们可以很方便的利用它。有关它的详细信息,可以参考微软网站上的资料,网址为:http://www.microsoft.com/msagent/downloads.htm。先从那里下载以下一些东西:

(1)Microsoft Agent核心组建

(2) Microsoft Agent的精灵:吉尼(Genie)、么林(Merlin)、罗比(Robby)和皮蒂(Peedy)

(3)至少有一个英语的Text-to-Speech引擎(现在还找不到中文的)

(4)微软运行时发音API4.0a

有了这些,我们就可以在我们的任何程序中应用了,只要在程序中添加此ActiveX控件即可。

 

3.在工具箱里面直接添加msagent控件,然后拖拽至form界面,就可以在代码中使用它了。

 

如何应用msaget呢?

 

Microsoft Agent:教您的脚本说话

Microsoft Agent

当想起自己对电脑说过的一些话时,您可能会认为电脑不会还口(或者不会扔东西)真是一件幸事。但是,作为一个脚本编写者,有时候您很可能会发现能向代码中加入一点声频反馈(以及一点动画)将很有用。例如,有视力障碍的用户更愿意登录脚本反馈通过声音形式提供,而不是在很小的对话框中提供难以阅读的视觉反馈。新用户可能更愿意得到有声说明,而不是难懂的消息框或滚动速度比阅读速度还快的命令窗口文本。而且 - 喘口气!- 有时候您可能觉得会说话的头像比那些人们看都不看就点击的对话框更有趣。

如果您想过“要是我的脚本能告诉每个人发生了什么事该多好,”,那您真走运:Microsoft Agent 技术(对,就是为我们带来文档活页夹 Clippy 和 Rover - 一只能在您搜索硬盘时提供帮助的狗 - 的技术)可完全脚本化。我们不知道您是否会需要(或希望)在您的脚本中包含 Microsoft Agent,但为以防万一,下面我们就教您怎样做。

注意:本文假设您已经在电脑上安装了 Microsoft Agent。Microsoft Agent 技术随 Windows 2000 和 Windows XP 预装在系统中;在 Windows XP 系统中,您还需要安装语音引擎和 SAPI 4.0 runtime。有关详细信息,请参阅 Microsoft Agent 主页

*

本页内容

现在,您是想看看,还是 …? 现在,您是想看看,还是 …?
Microsoft Agent 程序设计 Microsoft Agent 程序设计
指挥人物 指挥人物
在系统管理脚本中使用 Microsoft Agent 在系统管理脚本中使用 Microsoft Agent
就这么简单吗? 就这么简单吗?

现在,您是想看看,还是 …?

尽管显示并控制会说话人物的方法听起来极其复杂,但使用 Microsoft Agent 编程实际上相当简单。想要您的人物说“hello”吗?那么使用类似如下一行代码:

objCharacter.Speak "Hello."

想要您的人物显出吃惊的表情吗?那么使用类似如下一行代码:

objCharacter.Play "Surprised"

对于多数情况,就这么简单。事实上,对于使用 Microsoft Agent 编写脚本来说,唯一麻烦的部分就是让您的人物出现在屏幕上,并让其逗留足够长的时间来完成程序要求其做的任何事情。这是因为 Microsoft Agent 代码异步运行;您启动 Agent 后,接下来 - 除非您采取适当的步骤,这一点我们稍后会解释 - 人物将完全独立于脚本中任何其他代码运行。这有一点好处:这样一来,您的人物不会妨碍其余部分脚本的运行(比如,显示 Agent 不会让忙于利用硬件和软件库存的脚本运行速度变慢)。但同样也有坏处:如果其余代码比您的 Agent 代码运行速度快,那么可能在您的 Agent 出现之前,脚本就已运行完毕。

我们知道这样说有些难懂,那么就让我们演示一下我们的意思。这里有一个简单的脚本,它用来显示 Merlin 这个人物。Merlin 在屏幕上出现后,他就会敲击显示器以引起您的注意,再问好并说再见,然后就消失。

strAgentName = "Merlin"
strAgentPath = "C:/Windows/Msagent/Chars/" & strAgentName & ".acs"
Set objAgent = CreateObject("Agent.Control.2")

objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.Show
objCharacter.Play "GetAttention"
objCharacter.Speak "Hello, how are you?"
objCharacter.Speak "I'm going now. Goodbye."
objCharacter.Hide

像我们刚才所说的那样,脚本应该做的就是这些。但是当您运行脚本时,实际上发生了什么呢?什么也没有发生。Merlin 甚至没有出现在屏幕上,更不用说敲显示器或说点什么了。

不用问,控制 Merlin 的代码是正确的;问题就出在代码出现的时间上。脚本运行时,它将依次执行每一行,并且尽可能快地执行。这就意味着脚本发送命令以显示(显现)Merlin,然后不等到 Merlin 实际出现,就开始执行其他代码行了。这并没有什么问题,只是 Merlin 需要花一两秒的时间才能启动,然后才真正出现在屏幕上。在 Merlin 能够出现之前,脚本引擎已经执行脚本最后一行了。因为最后一行代码已经执行,所以脚本也就自动终止了。脚本一终止,agentsrv.exe(负责运行 Microsoft Agent 的程序)也就终止了。脚本运行得实在太快,Agent 服务器根本无法跟上。结果是,Merlin 始终没有出现。

如果您想就此做个测试,尝试一下运行下面修改后的脚本。在该脚本中,我们在发出让 Merlin 出现在屏幕上的命令后ÿ

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值