基于Microsoft Agent的Word声像化处理
2009-04-03张克素朱永海袁晓斌
张克素 朱永海 袁晓斌
摘要:使用Word办公软件可以编排出精美的文档、方便地编辑和发送电子邮件、编辑和处理网页等,Microsoft Agent以其仿真性、智能性、趣味性和人性化等特点对Word办公软件产生了很大的影响。本文详细地介绍了MS Agent的相关技术,并讨论了在Word中调用MS Agent的流程,最后列出了常见的问题及解决方法。
关键词:Microsoft Agent;Word;调用
中图分类号:TP317文献标识码:B文章编号:1673-8454(2009)06-0060-03
引言
Word是微软公司的Office系列办公组件之一,是目前世界上最流行的办公软件。使用它我们可以编排出精美的文档、方便地编辑和发送电子邮件、编辑和处理网页等。但在界面活泼生动、人性化方面略显不足,为了弥补这个缺憾,我们可以将Microsoft Agent技术应用到Word中,可以逐字地告诉计算机运行一个报告,阅读一个文档或播放一首歌曲。
一、Microsoft Agent技术简介
Microsoft Agent是微软公司于1997年9月发布的一项代理软件开发技术,它是一种可编程的软件服务,可以在其他应用程序中实现与Agent动画角色的交互,比如要Agent角色执行某个动作、朗读某段文本、“聆听”用户的语音命令。或者根据用户的操作步骤提供一些信息等。这些功能使计算机更具人性魅力。MS Agent含有一个ActiveX (OLE)控件,其服务器程序运行在Win98 /2000 /XP操作平台上,为其他调用Agent的客户程序提供服务。客户程序可以是利用VB、C + +、Delphi、VFP、PB等开发的编程语言,使得Ms Agent既可以加入到普通应用程序中供本地系统使用,也可以是HTML 文件中的Visual Script、Java Script脚本语言代码,把它嵌入到HTML文档中供Internet/ Intranet使用。在调用Agent之前,需要安装以下几个文件:
1.安装Microsoft Agent核心组件msagent.exe(Microsoft Agent Server)。Windows 98以上版本操作系统已自动安装此核心组件。
2.安装TTS引擎(Lernout &Hauspie TruVoice Text-To-Speech Engine): cgram.exe。
3.安装语音识别引擎(Microsoft Command And Control Speech Engine):actcnc.exe。
如果希望通过语音控制Agent角色的行为,则必须安装语音识别引擎actcnc.exe。目前,在Microsoft Agent技术中,微软仅仅提供了美国英语的语音识别引擎。如果使用这个引擎,系统必须是奔腾120 MHz及其以上。
4.安装Agent动画角色数据文件:ACS、ACF、ACA。
Agent支持两种角色文件的格式:单一的存储格式文件(ACS,用于单机软件)或者是多文件格式(ACF、ACA,用于网络软件)。
5.安装其他相关引擎:IBM Via Voice Text-To-Speech系列。
因为Lernout & Hauspie TruVoice American English Engine不能进行中文语音输出,如果希望角色能够利用TTS引擎产生中文语音输出,则必须下载并安装SAPI4.0及其兼容的TTS引擎。IBM ViaVoice Text-To-Speech系列中、英文语音引擎与Agent具有良好的兼容性,其具有非常优秀的特性,支持中英文混合输出。
二、声像化处理的流程
1.在Word中添加Agent控件
启动Microsoft Word 2003,选择“工具/宏/Visual Basic编辑器”来激活Visual Basic编辑器。在Visual Basic编辑器中打开的“工程—Normal”面板中单击“Normal”项目,在菜单中选择“插入/用户窗体”,选中“工具/引用”,激活引用对话框,在其中选中“Microsoft Agent 2.0”,单击“确定”按钮,完成这一级操作。通过选中“工具/附加控件”来激活附加控件对话框,找到“Microsoft Agent Control 2.0”,并单击它的复选框。完成之后,将看到Agent图标位于工具箱的下半部分。
2.Word中调用Agent控件
(1)新建与放置
在Word的Visual Basic编辑器中的“用户窗体”中放置Agent1、Command Button。
(2)定义变量
Dim Genie As IagentCtl Character
Set Genie = Agent1.Characters("Genie")
(3)Agent主要属性、方法、事件
①加载Agent动画角色
语法:Const DATAPATH = _"C:WINDOWSmsagentcharsgenie.acs"
说明:该函数返回指定文件目录(在Windows98/2000/Me中是C:windowsmsagentchars,WindowsNT 中是c:winntmsagentchars)下的Agent 角色。
语法:Agent1.Characters.Load "Genie", DATAPATH。
说明:该函数用于加载由DATAPATH指定的Agent 角色,若加载成功,返回该Agent 角色的Id的值,否则返回0。
②显示/隐藏Agent动画角色
语法: Genie.Show
说明:Genie角色在一阵烟幕、一道光线或以走上屏幕的方式出现。
语法:Genie.Hide
说明:Genie在屏幕上隐藏自己。
注意:只有Agent 角色被加载后,才能使用该函数显示/隐藏指定的Agent 角色。
③对指定的Agent 角色进行各种动作操作
语法:Genie.MoveTo X,Y
说明:将Genie移动到参数X、Y表示坐标的位置上。
语法:Genie.Wait。
说明:在多个不同动画人物之间协调动画动作。
语法:Genie.Play“Animation”
说明:执行指定的动画动作,参数Animation为一常量,表示动画的类型。
语法:Genie.speak“ Text”
说明:角色可以说出指定的文本。Speak函数的Text参数是将要朗读的文字,文字可以有几种形式,包括文字串、文件文本或URL。如果安装有语音引擎和文本-语音转化引擎(TTS),可以同时将Text指定的文本转化为语音输出,此时只需提供Text参数,Agent角色将在文字气球(Word Balloon)中显示Text的内容的同时,播放Text的语音。
例如:Genie.Speak "My name is Genie. How are you!"
在例子中的Speak函数可以把text的内容在文字气球中显示出来,同时朗读该句话。
Genie.Speak Active Document.ContentActive Document. Content指的是ActiveDocumen属性的Content属性,换句话说就是朗读当前选定的Word文档的文字。这条语句将导致Genie在文字气球中显示相关的文字的同时,并大声朗读当前文档。
3.Word中运行Agent控件
通过单击“运行/运行子过程”(F5)来测试一下,该操作将激活这个用户窗体,Agent服务器将在加载的时候初始化,在用户退出的时候销毁。当按下Start按钮的时候,Genie将出现并说:“My name is Genie.How are you!”在按下Stop的时候将消失(见图1)。
三、常见的问题与解决方法
使用的是Windows XP操作系统时,可能不能正常输出语音。这是因为Microsoft Agent使用的是SAPI 4.0来提供语音服务的。而Windows XP自带安装的为SAPI 5.0,况且SAPI 5.0不能提供向前兼容的能力(不过SAPI 4.0和SAPI 5.0能够共同存在于同一个Windows XP操作系统中)。因此需要安装SAPI4.0运行支持(SAPI4.0 Runtime Support)Spchapi.exe。
Lernout & Hauspie TruVoice American English Engine不能进行中文语音输出,因此在进行中文语音输出的时候,必须下载并安装SAPI4.0及其兼容的TTS引擎。IBM ViaVoice Text-To-Speech系列中、英文语音引擎与Agent具有良好地兼容性,其具有非常优秀的特性,支持中英文混合输出。
四、结束语
从Office 97开始,“帮助”菜单中就有了Office助手这项功能,如“大眼夹”,能够根据用户的操作步骤“智能化”地提供帮助信息。而与Office助手相比,MS Agent的功能更加地丰富和强大,具有鲜明的人性化特点,使在多媒体教学软件制作、Web应用等方面具有更为广阔的应用前景。
参考文献:
[1]吴兰岸,倪江华,曾潘.Microsoft Agent及其在英语课件开发中的应用[J].中小学信息技术与教育,2007,(7-8):121-123.
[2]韩晓红,李秦渝. Microsoft Agent技术在Authoware中的应用[J].甘肃高师学报 , 2006, (2):36-37.
[3]朱永海.制作Microsoft Agent角色课件动画[J]. 中小学信息技术教育,2007,(9):65-67.
[4]沈海军.VB中创建文本朗读应用程序[J]. 电脑学习,2001,(6):27.
[5]毕晓君,静广宇,徐先锋.利用TTS技术实现文本文件的语音合成[J]. 自动化技术与应用,2004,(9):49-51.
(编辑:隗爽)