首页 > 设计 > 媒体动画 > 正文

Authorware开发实例:Authorware里面TTS引擎地运用

2020-09-19 18:30:47
字体:
来源:转载
供稿:网友

  authorware作为一种面向大众的多媒体编著软件,其图形化的界面简单易用,极易上手。但也正因为如此,其功能方面相对而言就简单一些。为此,authorware提供了对activex技术的支持。

  activex是微软的ocx、ole技术发展而来的。我们可以在自己的演示程序中插入activex控件,从而实现一些高级的功能。例如:利用microsoft web brower控件,你可以设计出自己的网页浏览器,上网冲浪;利用intervista vrml控件,可以在你的应用中浏览虚拟世界;利用text to speech控件,可以实现英语的即时朗读功能,这就意味着你可以创建类似词霸之类的软件。

  tts引擎能将文字转化为数字音频,它可以实现整句的流畅朗读,而且是标准的美式发音。它允许用户更改声音的频率、语速,功能强劲。因此,利用tts引擎制作英语教学的课件或学件绝对是个不错的主意。

  要实现该功能,首先要下载相关组件。
  登录 ftp://www.mediachance.com/msttss22l.exe,下载msttss22l.exe,安装text to speech声音文件;
  登录 http://www.mediachance.com/files/spchapi.exe下载spchapi.exe,安装tts类控件,这一步很重要。当然,如果你已经安装了金山词霸之类的软件,该步可以跳过。实际上,这两个文件可以在词霸的安装目录下找到。

  在authorware中插入activex控件的步骤如下:

  1 启动authorware 6,确定要插入控件的位置;
  2 选择insert > control > activex;
  3 在出现的对话框中,选择texttospeech类控件(如图1)如果你用的不是6.0的版本,对话框可能会有所不同。单击确定按钮,弹出该控件的属性对话框。
  4 单击确定按钮,使用authorware的默认设置。在流程线上把activex图标名称改为tts。

  要想让tts引擎开口说话,就得用到callsprite函数。该函数的语法为:
  result := callsprite(iconid@"spriteicontitle", #method [, argument...])

  其中,spriteicontitle为activex控件所在的图标名称,method为activex控件的方法,argument为该控件方法的参数。

  在流程线上放置一交互图标,拖动计算图标至交互图标的右边。选择文字输入(text entry)交互类型,这个计算图标无需输入任何实质性的内容。它用于接受用户输入的单词或句子,并自动放置在系统变量entrytext中。再次拖动一计算图标至交互图标的右侧,更改交互类型为按钮交互。调整如图2所示:

  在该计算图标中输入:
  callsprite(@"tts",#speak,entrytext)

  这句语句可以读出系统变量entrytext所代表的单词或句子。单击朗读按钮即可听到浑厚的美语发音。

  不过,不要忙着把你的应用打包发行。作为一个优秀的设计者,我们需要先判断用户端有没有安装tts引擎。

  在流程线的顶部加入计算图标,在计算图标中输入以下语句:

  if activexinstalled( )=-1 then
   if activexcontrolquery(“{2398e32f-5c6e-11d1-8c65-0060081841de}”)= 0
   then
    messagebox(windowhandle, "系统没有检测到tts引擎,请安装", "warning", 48)
   end if
  end if

  上面这段语句首先判断系统是否支持安装控件,若系统不支持,则不进行安装操作;若支持则进一步判断是否已安装classid为{2398e32f-5c6e-11d1-8c65-0060081841de}}的tts引擎,如没有则出现提示信息。当然,更友好的方法是让用户选择是否安装,具体请参考jumpout和jumpoutreturn两个函数。要提醒大家注意的是这两个文件最好和authorware文件储存在同一个文件夹里,否则需指明路径。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表