日期:2014-03-09  浏览次数:20868 次

    互联网以及和它相关的一切如今似乎随处可见。您也许曾经试过接到夜间电话推销员的语音电话、又或者曾经接到过当地药店给您的处方通知。如今,有一种新技术可以使用语音合成结合XML技术传送语音信息了。


    以语音传递信息的手段并不是什么新东西。它是我们几千年来不断使用的交流方法。而且,从一台计算机那里接收到电话也并非什么新发明。许多语音技术到如今曾经大行其道了,从传真机、自动拨号器到集成语音回复系统(IVR)。电话当然是它最普遍的使用。

    传统的语音系统使用事后录制好的样本、词典和音从来创建我们所听到的声音。然而,使用这种事后录制的手段有很多问题。其中最普遍的问题之一就是缺少连贯性和变化。如果只要一种录制好的语音版本,其中每个单词或者声音都只要一个样本,那么很难让计算机发出和普通陈述语句不同语调的疑问句。同样困难的是让计算机知道何时该用某种语调或者该用何种语调发音。

    为了协助处理语音合成问题,W3C为语音合成标记言语(Speech Synthesis Markup Language)创建了一种新的任务草稿。这种新的XML词汇表可以使语音浏览器开发人员能够控制一个语音合成器的创建方法。例如,开发者可以将命令包含进音量中,并在合成语音模式的时候使用它。

    SSML规范基于Sun公司晚期的一项名为JSpeeck Markup Language(JSML)的研讨任务。JSML则是基于Java Speech API Markup Language。如今SSML是W3C语音研讨任务组的任务稿。

    SSML言语的基本目标是一个文本到语音(Text-To-Speech简称TTS)的处理器。一个TTS引擎获得一个文本的集合并将它转换为语音。如今曾经有了几种TTS使用程序了,例如电话语音合成回复系统,以及为盲人设计的更高级的系统等等。特定文本集合的发音本身固有的不确定性是现有TTS系统的所面临的次要难题之一。其他普遍一点的问题集中在单词简写(如HTML)、拼写和发音不同的单词(如subpoena)等词类的发音上。

    SSML言语的基础元素指定了文本的格式。例如针对HTML,SSML言语提供了一种段落元素而且走得更远。由于它还提供了句子元素。通过像指定段落一样指定句子的地址,包括起始地址和终止地址,TTS引擎就能更精确的生成语音。

    除了基本的格式,SSML还提供了功用来指定如何发某个预定的词语或者词语集合。这个功用由“say-as”元从来实现。它是SSML中一个非常有用的组件。它能让你指定一个模板,这个模板描述如何发音某个单词或者单词集合。通过“say-as”,我们可以为缩写的单词指定如何发音,也可以为拼写与发音不同的单词指定发音。我们还可以列出数字和日期之间的区别。“say-as”元素包含了对email地址、货币和电话号码等的支持。

    我们也可以对文本提供一种语音学上的表达方式。例如,我们可以通过这种手段来指出美式英语和英式英语对potato单词发音的不同。

    SSML言语的几个高级属性可以协助我们让TTS系统生成更人性化的声音。我们可以使用“voice”元素指定男声、女声或者中性的声音,而且还可以指定声音所属的年龄。我们可以使用这个元从来指定从4岁的男孩到75岁的老妇之间的任何声音。

    我们还可以使用“emphasis”元素环绕那些需求强调或者比较次要的文本。我们还可以使用“break”元素通知系统语音在某处应该暂停。

    SSML言语最高级地特性之一体如今它地“prosody”元素上。通过它我们可以以某种指定地方式生成某个确定的文本集合的语音。我们可以指定声音的语调、范围、语速(单词每分钟)。我们甚至可以通过使用“contour”元素指定更细节的东西。“contour”元素把语调和语速集成在了一同。通过指定一个文本集合的“contour”元素值,我们可以更精确的定义如何生成语音。