|
| |
精品推荐 |
 |
|
| |
|
|
|
|
VB调用Microsoft Agent控件与电脑交谈
|
日期:2008年6月24日 作者: 查看:[大字体
中字体 小字体]
|
Microsoft Agent 控 件 比Office 中 的 助 手 更 进 了 一 步, 它 提 供 的 动 画 人 物 不 仅 有 生 动、 有 趣 的 动 作, 而 且 还 能 通 过 声 卡、 麦 克 风 与 用 户 进 行 交 谈, 这 些 功 能 使 计 算 机 更 具 人 性 魅 力, 其 应 用 前 途 相 当 广 泛。Microsoft Agent 控 件 的 内 部 机 制 很 复 杂, 但 用VB 来 操 纵 它 却 是 异 乎 寻 常 的 方 便, 本 文 将 介 绍VB 6.0 调 用Microsoft Agent 控 件 的 基 本 方 法。
1. 安 装Microsoft Agent 控 件 (1) 首 先 要 安 装Microsoft Agent 的 核 心 组 件 msagent.exe (2) 接 着 要 安 装Lernout & Hauspie TruVoice Text-to-Speech Engine( 完 成 从 文 字 合 成 语 音 的 工 作) cgram.exe。
(3) 最 后 要 安 装 Microsoft Command and Control Speech Engine( 提 供 语 音 识 别 功 能) Actcnc.exe。
(4) 另 外 还 需 要Agnet 动 画 人 物 数 据 文 件, 在 本 文 中 使 用 了Genie.acs、Robby.acs 两 个 文 件。
上 述 文 件 均 可 从 http://www.microsoft.com/workshop/prog/agent 下 载。
2. Microsoft Agent 控 件 的 初 始 化 先 把Microsoft Agent 控 件 添 加 到VB 的 控 制 工 具 条 上, 并 在 用 户 的Form 上 绘 制 该 控 件( 在 下 述 例 子 中, 其Name 属 性 设 为MyAgent)。 下 面 的 代 码 调 用IAgentCtlCharacters::Load() 方 法 装 入 一 个 动 画 人 物 的 数 据, 调 用IAgentCtlCharacter::Show()/Hide() 方 法 来 显 示/ 隐 藏 动 画 人 物。 Const DATAPATH = "c:\"
Dim Genie As IAgentCtlCharacter
Dim Robby As IAgentCtlCharacter
Dim GenieRequest1, GenieRequest2 As IAgentCtlRequest
Dim RobbyRequest1 As IAgentCtlRequest
Private Sub Form_Load()
' 装 入 动 画 人 物 数 据, 其 中 第 一 个 参 数 为CharacterID
MyAgent.Characters.Load "Genie", DATAPATH & "Genie.acs"
MyAgent.Characters.Load "Robby", DATAPATH & "Robby.acs"
' 获 取 与CharacterID 相 对 应 的IAgentCtlCharacter 变 量
Set Genie = MyAgent.Characters("Genie")
Set Robby = MyAgent.Characters("Robby")
' 显 示/ 隐 藏 动 画 人 物
Genie.Show
Genie.Hide
End Sub
3. Microsoft Agent 控 件 的 动 画 编 程 每 个 动 画 人 物 都 有 自 己 特 定 的 动 作, 例 如Genie 有 听、 看、 读、 写、 发 怒、 感 谢 等 数 十 种 动 画 形 态。 可 以 调 用IAgentCtlCharacter::play() 方 法 来 设 置 动 画 动 作。 为 了 在 多 个 动 画 人 物 之 间 协 调 它 们 的 动 作, 比 如 让Robby 等 待Genie 的 某 个 动 作 执 行 完 毕 后, 方 才 做 另 外 一 个 动 作, 这 时 可 采 用IAgentCtlCharacter::Wait() 方 法 来 实 现 同 步。 在 数 十 种 动 画 动 作 中 有 一 类 比 较 特 殊( 动 作 名 以"ing" 为 后 缀, 如"Searching"), 一 旦 执 行 便 循 环 播 放 一 段 动 画, 只 有 调 用IAgentCtlCharacter::Interrupt() 方 法 才 能 终 止。 示 例 代 码 如 下:
Private Sub Command1_Click()
Genie.Show
' 执 行 名 为"Suggest" 的 动 作
Genie.Play "Suggest"
' 把Genie 移 动 到 座 标(200,200) 处,
用GenieRequest1 来 标 识 该 动 作 请 求
Set GenieRequest1 = Genie.MoveTo(200, 200)
上一篇:VB编荧屏焰火“屏保”程序
下一篇:VB函数中两种参数的区别
|
| 相关文章: |
|
|
|
| 相关软件: |
|
|
|
|