辅助功能*

Director 文章

新增 Speech Xtra 的多种用途

Gary Rosenzweig
Gary Rosenzweig
garyrosenzweig.com

您听过这个单词吗?没有,我只知道字面上的意思。打开"消息"面板,试一下:

voiceSpeak("Director can talk!")

Director MX 主要的新功能之一是 Speech Xtra。与文本、字体、Shockwave Audio 和 3D Xtras 一样,这个小小的 Xtra 现已成为 Director 和 Shockwave 的标准组件。它是 Director MX 中新增的辅助功能,后者还包括一个字幕和键盘选择行为库。

的辅助功能的应用效果非常明显,特别是对于承接符合 Section 508* 规定的美国政府项目的用户。但是,Speech Xtra 不仅仅是面向美国的政府承包商,它还有众多其它用途。

使用 Speech Xtra

Speech Xtra 的功能基本上就是连接用户计算机上的文本-语音转换系统软件。一旦连接,Xtra 将向系统发送一个文本串,导致系统读出文本。目前的大多数计算机都具有文本-语音转换功能,即使用户并不知情。Macintosh 或 Windows XP 系统的任何用户几乎肯定都拥有它。

要让您的计算机通过 Director MX 读出(发声)文本,您需要做的就是在"消息"面板中键入以下文字:

voiceSpeak("Hello World")

从技术上讲,在编写脚本时,应当首先使用 voiceInitialize() 函数。这将返回一个 TRUE 或 FALSE 值,指明用户的计算机是否具有文本-语音转换功能。您可以使用这个结果告诉用户,在使用您的产品之前,他们需要安装其 OS 文本-语音转换软件。以下是处理这个问题的一个框架脚本示例:

on exitFrame me
   if voiceInitialize() then
      go to frame "Start"
   else
      go to frame "Speech Problem Notice"
   end if
end

一旦确定用户已安装文本-语音转换软件,就就可以使用 voiceSetRate、voiceSetPitch 和 voiceSetVolume 命令对语音发声的方式进行自定义。还有功能相同的 voiceGetRate、voiceGetPitch 和 voiceGetVolume 函数。遗憾的是,这些命令和函数使用的值取决于您在运行的系统。因此,在计划使用它们之前,务必先在您的测试计算机上进行试验。

您也可以完全更改语音。voiceSet 命令允许您设置语音类型。在 Macintosh 系统上,通常有二十种左右的语音可供选择。默认的文本-语音转换通常只有一个,但用户可以添加。

您可以使用 voiceGet 命令来观看当前设置的是哪一种语音。该代码示例返回一个属性列表:

put voiceGet()
-- [#name: "Agnes", #age: "35", #gender: "Female", #index: 1]

您可以使用 voiceGetAll() 命令来获取可用于该用户的所有语音的列表。当您使用 voiceSet 时,应在它出现在 voiceGetAll() 列表中时给它提供语音的索引编号。您可以使用该功能提供一个"Next Voice"按钮,或一个带有用户可以选择的语音和属性完整列表的屏幕。

但是,如果您尚未做好这种 Lingo 编程准备,可以坚持使用 voiceInitialize 和 voiceSpeak。

Speech Xtra 的十种应用

除了作为辅助功能的意向用途之外,我还将介绍 Speech Xtra 的其它十种用途。其中大多数利用了您可以将 Speech Xtra 集成在自己的项目中这一事实,并能使它读出一些基本文本,而不会明显增加开发时间或文件大小。

  1. 欢迎用户
    当您的演示文件、应用程序或游戏开始运行时,您可以通过一条欢迎消息问候用户。您可以向他们介绍该产品,甚至告诉他们如何开始使用它。例如,您可以让 Speech Xtra 说:

    "您好,欢迎进入 DirMX Airlines 失物招领站。请按'开始'按钮开始。"
  2. 叙述
    如果您在创建简单的演示文件,为什么不在每张幻灯片上加入一些发声文本呢。这可以将现场演示文件转变成无需演示员就能使用的文件。如果没有 Speech Xtra,您将必须记录每个幻灯片的大型声音文件,而有了 Xtra,您只需要键入一些文字即可。
  3. 使用说明
    在有些和其它应用中,通常必须提供使用说明。但是,大多数用户会跳过它们,而且许多美工师讨厌加入令人厌烦的文本页。因此,为什么不让您的"使用说明"按钮使用 Speech Xtra 来告诉用户如何玩游戏呢?
  4. 按键和按钮反馈
    按钮通常会使点击发出声音或嘟嘟声,以便让用户知道他们已作出选择。但是,按键通常没有声音。如果您在创建猜字游戏,或要求用户选择字母的某种程序,可以轻松地向 on keyUp 处理程序添加一个 voiceSpeak(the key),以提供这种反馈。为此,您也可以使用 Speech Xtra 来提供按钮反馈,如:"Option 1 selected."
  5. 发声报警
    您讨厌 Director 的报警框吗?这是很久以来一直没有改变的一些功能之一。但是,为什么不一起跳过它而提供有声报警呢?
  6. 调试 许多开发人员(包括我自己)在进行电影调式时都会使用报警框和文本项来传递信息。Speech Xtra 也可用于这种用途,而且您不需要制作一个全新的项,并将它放入一个子画面,或冻结电影播放。
  7. 信息站提示
    在系统未遇到任何鼠标或键盘移动时,信息站开发人员必须处理闲置时段问题。在许多情况下,必须识别这种闲置状态是因为用户已经走开,还是用户目前正在屏幕上研究信息。通常,信息站在短暂的闲置之后会使自己复位。通过简单的 voiceSpeak 命令,您可以发生这种情况之前警示潜在的信息站用户,而且无需调用难看的报警框或其它可视化设备。
  8. 面向学龄前读者的教育应用程序
    在制作教育游戏时,当目标用户年龄太小,没有阅读能力时,就会出现难堪的事情。新一代包括年龄很小的儿童,他们擅长使用鼠标,但尚不能阅读屏幕上的内容。为这个年龄的孩子制作教育游戏是一个难题,因为您无法使用文本。通常情况下,这种项目要记录大型声音文件。但是,通过 Speech Xtra,您可以简化这种过程。如果结合使用发声文本和屏幕文本,您甚至能够使用 Speech Xtra 帮助儿童学习如何阅读。
  9. 发音指南
    尽管 Speech Xtra 不能象真人一样发音,但它仍然能够用来帮助人们读出文本演示文件中的疑难字。您可以使用 Director 中的超链接功能,将文字链接到能够用声音读出文本的脚本。

    需要注意的是:计算机文本-语音转换不能始终正确地读出文字发音。有时,为了听到想要的发音,您需要使用 voiceSpeak 命令。试一下将该代码输入"消息"面板:

    voiceSpeak("Gobbledygook")
    voiceSpeak("Gobble-de-gewk")
  10. 复活节彩蛋
    人们喜欢寻找软件中隐藏的复活节彩蛋,它就是为了让用户开心,对不对?制作复活节彩蛋的一种简便方法就是将简单的 voiceSpeak 命令附加到甚至不象按钮的图形。例如,片头页上的 Macromedia 徽标就可以附加这种脚本:

    on mouseUp
       voiceSpeak("Director MX rocks")
    end

關於作者

Gary Rosenzweig (garyrosenzweig.com*) 是位于科罗拉多州丹佛市的 Director Shockwave Studio 与 Macromedia Flash 开发公司 CleverMedia *英文网页 的创始人。他撰写了 10 本有关 Director 和 Macromedia Flash 的畅销书,包括即将出版的"Special Edition Using Director MX from Que"。