站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题Eclipse Voice Tools Project

Eclipse Voice Tools Project

摘要: Eclipse Voice Tools Project 是一个新项目,其试图联合语音行业的公司和个人,一起来创建一套常用的基于标准的、开放源码的语音开发工具。但是如何扩展或者对项目的工具进行改进呢?本文解释了如何设置和定制 Voice Tools Project 环境,并且还讲述了在添加新功能过程中所涉及的步骤。

Eclipse 是一种令人难以置信的通用开发平台,已经在计算机行业广泛采用。除了其世界级的 Java? 开发环境之外,Eclipse Foundation 还主持了许多旨在创建各种工具组的项目——从 C 语言到 COBOL 语言到 BPEL语言。其最新的项目之一,Eclipse Web Tools Project,创建了一组开放源码的 Web 开发工具。由于提供了成熟的 XML、SQL 以及 Java 2 Platform, Enterprise Edition (J2EE) 工具,所以 Web Tools Project 很自然地成为了事实上的 Web 开发环境。

Voice Tools Project (VTP) 是利用 Web Tools Project 而开发成型的,采用的方式是将其 Web 开发工具库扩展到语音识别领域。这样,Voice Tools Project 就可以提供用于语音开发方面的许多现成的 Web 开发经验,允许用户使用与开发可视化应用程序相同的工具来开发他们的语音应用程序。对于使用 Voice Tools Project 作为其工具库的公司来说,这意味着不用另外付出努力,就可以提供用户希望用现代面向 Web 的集成开发环境 (IDE) 达到的所有任务。

但是,Voice Tools Project 如何才能为您的特殊要求而工作呢?我将解释得到 Voice Tools Project 源代码以及如何向源代码中添加您自己的“语音”这一过程——无论是用于商业产品还是开放代码的更改,基本概念是相同的。

设置

为了设置符合您需求的最佳开发环境,重要的是要理解先决条件是什么?因为 Voice Tools Project 依赖于 Web Tools Project(而它又依赖于 Eclipse SDK),所以必须安装若干个合适版本的程序包。

  1. 首先进入 Voice Tools Project 主页,找到 Web Tools Project 的最新兼容版本。在撰写本文时,最新兼容版本是 0.7。
  2. 访问 Web Tools Project 下载页面 得到合适版本的 Web Tools Project。您需要得到 SDK ZIP 文件版本,并满足 Requirements 中列出的先决条件。当我撰写本文时,对于 Web Tools Project 的要求是 Eclipse 3.1、EMF 2.1、GEF 3.1 以及 Java EMF Model Runtime 1.1。
  3. 最后,如果您一种都没有安装,则需要安装一个 Java Runtime Environment (JRE) 版本。
  4. 将 Eclipse 解压到一个库目录中,如 c:\eclipse。其他需要的技术文件也都要解压到同一路径,以便这些文件都位于 plugins\ 和 features\ 子目录下面的合适位置。
  5. 为了测试您的配置,应启动 Eclipse,并且尝试创建一个新的 Web 项目,方法是选中 File > New > Other... > Web > Dynamic Web Project。如果这个向导是可用的并且正确地执行了,则您的安装就是正确的。



既然您准备好了并且在运行了,我们就开始用它做些事情吧。


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

获得驱动器的源代码

由于 Eclipse 有一个集成的 CVS 客户机,所以获得和处理 Eclipse Voice Tools Project 的源代码是很简单的。在 Eclipse 中,选中 Window > Open Perspective > Other... > CVS Repository Exploring,打开 CVS Repository Exploring 透视图。Eclipse 中的这个透视图用于浏览远程 CVS 库,如 VTP 源代码存储的位置。

为了下载 VTP 源代码,首先要创建到 Eclipse CVS 库的匿名连接。在 CVS Repositories 视图中右击,并选中 New > Repository location... 以打开 Add CVS Repository 窗口。在 Host: 字段,输入 dev.eclipse.org。对于 Repository path: 字段,输入 /home/technology。在 User: 字段,输入 anonymous。继续下去,选中 Save Password 并按 Finish。这样就可以在 CVS Repositories 视图中创建一个连接,该视图可以用于显示 VTP 是其一部分的整个 CVS 树。

接下来要计算出,您可以把呼叫者直接路由到公司的什么位置。对您公司内可以将呼叫路由到的所有位置列一个清单,这些就是您的路由目的地。使用这个清单构建一个数据集合调查表,可以将这个调查表送给内部用户(如果是送给真实的顾客就更好)。对于您确定的每个目的地,要求您的听众考虑到达那儿想说的几件事情。清单 1 就是一家汽车公司调查表的一个示例样子。




下一步是选择 VTP 组件并且将它们解压到本地环境的项目中。将已经创建的树扩展到 HEAD > org.eclipse.vtp > editors > plugins。以 org.eclipse.vtp 开始的树条目的清单,是作为 Voice Tools Project 一部分而提供的编辑器插件。

选择整套插件并且右击,然后选择菜单项 Check Out As... 以打开 CVS Checkout 窗口。选中 Check out into the workspace as projects 并按 Finish。现在,在您的 Eclipse 工作空间中应该有许多插件项目了。

选择 Window > Open Perspective > Other... > Plug-in Development,切换到 Plug-in Development 透视图。您应该看到您在 Package Explorer 视图中选择的所有插件。




在对下载的源代码进行更改之前,应对其做最后的检查以查看下载的代码是否一切正常,这的确是个好主意。选择 Package Explorer 视图中的插件项目,右击,然后选择 Run As > Eclipse Application。这样会启动 Eclipse 的第二个副本,它将已下载的插件代码合并到工作空间。在 Eclipse 的第二个副本启动之后,试着通过选择 File > New > Other... > Voice > VoiceXML File 而运行新的 VoiceXML 向导。如果该向导成功地启动了,那是一个好的象征,表示 VTP 源代码成功地下载了,您现在就可以开始进行更改了!


<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

创建自定义的动作

在 VoiceXML 文档中,开发人员在编辑标记时要频繁地引用外部资源,如音频文件或者其他 VoiceXML 文档。此时,添加到该编辑器中的方便特性或许就是一种快速验证链接是否有效的方式。为了完成这项工作,必须创建一种新的编辑器动作,并且要在 org.eclipse.vtp.editor.vxml 插件的 plugin.xml 中注册一个扩展点:


清单 1. 将新动作添加到 VoiceXML 编辑器中的新插件扩展点
<table bgcolor="#eeeeee" width="100%" cellpadding="5" cellspacing="0" border="1"><tr><td>


       
      
         
              
          
   
</td></tr></table>

现在要创建类 CheckReferencedURLAction 来执行这一工作。幸运的是,可以在 org.eclipse.vtp.editor 插件中找到一个现有编辑器动作 (EditReferencedFileAction) 的源代码,所以有了一个开始的基础。

如果您复制 EditReferencedFileAction.java 并且仔细看看,就会发现编辑器动作放在一起如何起作用。这只是保证您使用 isVisible() 方法在上下文菜单中正确地显示该动作并且在 run() 方法中执行相应的动作。由于您既要检查本地文件的存在又要检查 URL 的存在,所以必须采用当前选择的 XML 属性,并确定要对它做的工作:


清单 2. 检查引用项的存在的新动作代码
<table bgcolor="#eeeeee" width="100%" cellpadding="5" cellspacing="0" border="1"><tr><td>


attrValueLoaded = ActionSupport.currentPosGetAttributeValue(textEditor, attrs[i]);
if (attrValueLoaded.toLowerCase().startsWith("file:")
    || attrValueLoaded.toLowerCase().startsWith("http:")
    || attrValueLoaded.toLowerCase().startsWith("https:")
    || attrValueLoaded.toLowerCase().startsWith("ftp:")) {
  // Check URL
  ..
} else {
  // Check local file
  ..
}
</td></tr></table>

本文末尾的链接会将您连接到完全实现。现在我们可以在文件上启动编辑器,并查看结果:





<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

将更改打包

导出已经做了更改的 Voice Tools Project 是一个简单的过程。只要选择 Package Explorer 视图中的所有插件,右击,并选择 Export... > Deployable plugins and fragments。然后,指定输出文件夹,并按 Finish 即可将这些插件导出到可部署的表单中。




此外,通过为项目提供一个补丁,您还可以利用 Voice Tools Project 提供的开放源码开发模型。将您的更改提交给项目,使得这些更改可以得到思维类似的开发人员的改进、测试甚至维护。

第一步就是创建补丁。为此,选中您已经更改的项目 org.eclipse.vtp.editor.vxml,右击,并选择 Team > Create Patch... 以打开 Create Patch 窗口。选择 Save in file system 并选择一个临时的位置放置补丁。按 Finish 创建文件。

在创建了补丁之后,应该将它作为特性请求 提交给 Eclipse 的 bug 跟踪网站,以做考查。进入 http://bugs.eclipse.org/,并创建一个 Bugzilla 帐户。在有了帐户之后,进入 Enter a new enhancement/feature request 并选择 VTP。选择 editors 组件并在 Description 字段中放入有关您的增强的摘要。

在创建该特性请求之后,您必须将您的补丁附加到它上面。为此,需查看特性请求,并选择 Create a New Attachment。从文件系统中选择您的补丁,包含一个简短的描述,并选中 patch 复选框。按 Submit 以便将补丁附加到该特性请求上。





<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

结束语

自定义 Eclipse Voice Tools Project 是一个简单的过程,允许用户或者公司利用一个很大的语音开发代码集。尽管开放源码模型鼓励人们多做贡献,但是却时常需要自定义源代码,也需要源代码易于得到,使开发人员可以迅速构建适合他们需求的产品。

本文引导您一步步地设置和测试您的环境,利用项目的源代码,构建自己的自定义动作,合并更改,并将更改提交回项目,让您开始了解 Eclipse Voice Tools Project。



<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

下载

<table width="100%" class="data-table-1" cellspacing="0" cellpadding="0" border="0"><tr><th>描述</th><th>名字</th><th style="text-align:right;">大小</th><th>下载方法</th></tr><tr><td class="tb-row">Sample code</td><td nowrap="nowrap">wi-eclipsesource.zip</td><td style="text-align:right;" nowrap="nowrap">3 KB</td><td nowrap="nowrap"> ?FTP</td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr valign="top"><td colspan="5"></td></tr><tr><td></td><td>关于下载方法的信息</td><td></td><td></td><td>Get Adobe® Reader®</td></tr></table>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>


<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>

关于作者<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="3"></td></tr><tr align="left" valign="top"><td></td><td></td><td width="100%">

Brent D. Metz 是位于佛罗里达州 Boca Raton 的 IBM 公司的工程师,从事企业语音加工工作。他是“自然语言理解”(Natural Language Understanding,NLU)技术、语音用户界面设计和语音加工设计方面的专家,是 IBM 公司在 VoiceXML Forum 及 Tools Subcommittee 的代表,是开放源码 Eclipse Voice Tools Project 的项目领头人。Brent 获得了弗吉尼亚工业学院的计算机科学学士学位。在加盟 IBM 公司之前,Brent 获得过 Cool Blue VoiceXML Challenge 这项国际性 VoiceXML 应用程序设计大赛的大奖。

</td></tr></table>

<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>
</td></tr></table><table class="no-print" cellspacing="0" cellpadding="0" align="right"><tr align="right"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle">
</td><td valign="top" align="right"></td></tr></table></td></tr></table>


↑返回目录
前一篇: 通过扩展 WebSphere Studio 工具的 Eclipse 帮助系统来添加自助支持
后一篇: 开发Eclipse自定义控件