新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> VoiceXML, CCXML, OpenVXI
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML在语音技术中的应用 』 → XML在语音中的应用(二) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11772 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML在语音中的应用(二) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     Coral 美女呀,离线,快来找我吧!
      
      
      威望:6
      等级:计算机学士学位(超级版主)
      文章:271
      积分:2320
      门派:XML.ORG.CN
      注册:2004/12/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Coral发送一个短消息 把Coral加入好友 查看Coral的个人资料 搜索Coral在『 XML在语音技术中的应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Coral的博客楼主
    发贴心情 XML在语音中的应用(二)

    摘自:统一教学网

    在这一部分中让我们来看一看语音方面现有的XML标准化进程。


    [B]W3C在语音浏览上所作的工作[/B]

        作为一个权威的标准化组织,W3C和早就看上了语音浏览(Voice Browser)。W3C于1998年的10月份成立了一个名为“语音浏览器”的工作站。大家在这里可以联想一下,XML是最早于1996年底被提上议案的。工作站的目标非常明确,制定语音浏览方面的标准,迎接即将来临的语音浏览热潮。工作站的工作主要基于以下一些方面,我们还要在后面对其中的部分工作放大研究。


        语音标识语言对于对话的需求说明

        简单的说,为了语音浏览器能够方便的结合不同的输入输出形式,和谐的同用户交互“对话”,需要对用来表示对话数据的标识语言进行限制。可以想象,用于表现平面网页的HTML就不能胜任语音浏览器。不但是因为它繁杂混乱,而且它的二维性质也使得它不能表示交互式的对话。


        标识语言当中对可重复使用对话的要求说明

        好比高级程序语言编程一样,有一些小的模块会是被经常重复使用的。这些小的模块被设计成为函数或是过程,每当要用的时候就调用一次。在语音浏览器使用的标识语言当中需要有这样的类似机制,用来表示那些经常会被重复使用的部分。这一点可以在后面的文章中具体的体会到。经常会被重复使用的部分包括简单的确认、收集电话号码、日期、金额、信用卡信息和地址的信息等。


        标识语言当中语音识别语法层表示的需求说明

        前面我们已经提到过语音浏览器的实现和语音技术的应用密不可分。为了实现语音数据的识别输入,语音浏览器会用到现成的语音识别平台。不同的语音识别方法有着不同的平台要求。如果只是独立人的小词汇量识别,我们还可能不需花费太多的时间在识别之上。但只要要求一旦稍微放松一点,语音识别的难度一下子就会变得很高。对于非独立人的小词汇量、带语法结构的语音识别,就需要在语音识别平台的接口上对带识别的语音输入语法结构做出具体的描述。而这种情况是现在一般的语音浏览器所遇到的最普遍情况。W3C在这里定义了一套这样的语法标识表示。


        标识语言中对自然语言处理的需求说明

        这其实就是前面我们已经提到的语音理解方面的问题。这同上面的一点一样,和语音技术密切相关。定义了对于自然语言理解在语音浏览器实现当中的标识表示需求说明。


        标识语言中对语音合成的需求说明

        为了实现语音的输出,人们必须要用到语音合成。简单的把事先录制好的声音拼凑起来回放也可以视为语音合成中的一种。而实际当中用的更多的还是TTS(Text To Speech)。怎样表示要合成的语句呢?不同的语音平台有着不同的方法。W3C正是在抽象出这些特征的共性。比如说一句话中的某一个词要重读,某一句话是男声发音。通过标识语言,我们就可以统一的描述一段待合成的文字。


        下面我们将对一些W3C的部分工作放大研究。

    [B]语音合成[/B]

        前面我们已经谈到了一些语音合成的问题。当语音浏览器需要将输出的结果由字符变成自然语音时,我们必须时间把语音读本的一些语言特征事先标示出来提供给语音合成器。语音浏览器中这是用XML语言来实现的。

        所示文字数据从语音浏览器的前段处理得到后,被一种转换机制变成标识语言。这里的转换机制其实就是代码的开销。符合语音合成器的标识语言被送入特定的语音合成器当中,最终用户就可以听到自然语音了。

        请注意,语音合成方式并不是唯一的。还有简单的方法是把文字数据非拆成一些经常会被重复使用的短语段,然后通过匹配的方法读取事先录制好的语音段,拼合成为一段自然语音。但这种方法的缺点解释非常明显的。首先是对文字数据的范围限制很大,一定实效词汇量的,并且有着固定的句式。其次人工录制的开销较大,并且随着文字数据范围的扩大,开销成倍的扩大。最后,这种方法合成的自然语音并不自然。

        由于不同的公司有着不同的语音应用平台,所以在从前语音合成的标识语言并不统一。但好在的是由于语音合成技术本身存在的一致性,这些不同的标识语言所标示的语音特征大同小异。差别只是在一些标识的表示方法不同之上。

        下面让我们来看一下几种主要的语音合成标识语言。


    1 JSML(Java Speech Markup Language)

        JSML顾名思义是用来将文字输入Java语音API合成器之用的标识语言。JSML包含了被合成文字的自然语音属性。而且它使用的是Unicode字符集,所以它适用于几乎所有的语言。


    例子:
    <?XML version="1.0" encoding="gb2312 "?>
    <JSML>
    <PARA> 你一共欠了我
    <EMP>
    <SAYAS CLASS="number">10000元</SAYAS>
    </EMP>
    </PARA>
    <PARA>
    <EMP>
    <SAYAS CLASS="literal">太夸张了</SAYAS>
    </EMP>
    </PARA>
    </JSML>

        我们不会在这里详细的介绍JSML的标识的含义,因为我们将比较详细的介绍W3C的标准。我们可以从例子当中看到这是一段对话。<PARA>表示的是这是一段话。<EMP>表示重读。<EMP>的属性LEVEL还可以设定重读的分量,上面的例子当中并没有体现。<SAYAS>用来标记文字读出的方式。具体的方式是由它的特定属性设定的。比如上面的CLASS="number"表示按照数字大方式读。CLASS="literal"表示按照分离的方式读,也就是“太夸张了”。

    2 SABLE

        同上面一样我们也通过一个例子来了解它。

    例子:
    <DIV TYPE="paragraph">这就是去年
    <EMPH>你</EMPH>
    为我
    <PITCH BASE="high" RANGE="large">
    <RATE SPEED="-20%">点的歌</RATE>
    </PITCH>
    </DIV>
    <AUDIO SRC="easycome_easygo.wav"/>

        从大体上说SABLE和JSML非常相似。我只挑出比较特别的几个标识来解释一下。<PITCH>是对音调的要求。<RATE>是对语速的要求。<AUDIO>表明的是一段以录制好的语音段。

        支持SABLE典型的有Festival语音合成系统。Festival是由英国Edinburgh大学语音技术研究中心(Center for Speech Technology Research)开发的多语种语音合成系统。对于从事语音研究的人来说,CSTR值得好好钻研。因为它不但有像Festival这样的成熟语音合成系统,还有一套开放源代码的语音识别平台软件包。

        下面那就让我们来看一看W3C在语音合成标识语言上的标准。

        和前面所提到的两种语言一样,W3C把它所规定的标识和属性分为了三类。一类是表示语言组织结构的表识,一类是表示语音特征上的表识,还有一类是对上面两类的补充,一般是为可能的扩充留有余地。

        我们将以表格的形式来介绍这些标识和属性。

        下面是第一层的标识:

    文件结构

    文本处理

    发音音素
    speak
    根节点

    xml:lang
    根节点中表示语种的属性

    paragraph和sentence
    表示段落和局字的结构节点

    sayas
    定义文本的预处理格式,属性为:type

    phoneme
    定义文本的发音方法,属性为:ph

    发音韵律
    voice
    表示不同发音方法的节点

    emphasis
    重音发音节点

    break
    表示暂顿的空节点

    prosody
    控制语音语素语调的节点

    其他
    audio
    表示加入预先录好语音段的节点

    mark
    表示异步合成当中的一个标记


        针对一些结构选项复杂的节点,我们再来仔细的看一看:

        "sayas" 节点type属性可选项值:

    发音      acronym   首字母缩写的合成词。按单个字母分别读出。

           sub("sayas" 节点的属性)  值为节点值的替换。在后面列出的DTD当中并没有声明。

    数字      number   值为节点值的数字形式。可选的值有ordinal、digits等:

    时间、量度   date    日期控制格式

           time    时刻控制格式

           duration   时间间隔长度设定

           currency   金额控制格式

           measure   表示文本为量度

    地址、标识   name   人或是公司的名称

           net    网络地址。可以是电子邮件或是网址

           address  邮政地址


        "voice" 节点属性值:

    gender    发声者性别

    age:     发声者年龄范围

    variant    发声者不同的发声。(可选,针对于平台的变量)

    name    针对于平台的发声标识。(可以看作是发声者的名字)


        "break" 节点属性值:

    size     对中断边沿大小的设定

    time    对中断时间长度量化设定


        "prosody" 属性属性值:

    pitch    基音调设定

    contour   基音调轮廓设定

    range    基音变化范围设定

    rate     语速

    duration   发音时间长度设定

    volume    发音银两大小设定


    下面是W3C 设定的语音合成标识语言的DTD:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- Speech Synthesis Markup Language v0.5 20000504 -->
    <!ENTITY % allowed-within-sentence " #PCDATA | sayas | phoneme |voice | emphasis | break | prosody | audio | value | mark " >

    <!ENTITY % structure "paragraph | p | sentence | s">
    <!ENTITY % duration "CDATA">
    <!ENTITY % integer "CDATA" >
    <!ENTITY % uri "CDATA" >
    <!ENTITY % phoneme-string "CDATA" >
    <!ENTITY % phoneme-alphabet "CDATA" >

    <!-- Definitions of the structural elements. -->
    <!-- Currently, these elements support only the xml:lang attribute -->
    <!ELEMENT speak (%allowed-within-sentence; | %structure;)*>
    <!ELEMENT paragraph (%allowed-within-sentence; | sentence | s)*>
    <!ELEMENT sentence (%allowed-within-sentence;)*>

    <!-- The flexible container elements can occur within paragraph -->
    <!-- and sentence but may also contain these structural elements. -->
    <!ENTITY % voice-name "CDATA">
    <!ELEMENT voice (%allowed-within-sentence; | %structure;)*>
    <!ATTLIST voice gender (male|female|neutral) #IMPLIED
    age (%integer;|child|teenager|adult|elder) #IMPLIED
    variant (%integer;|different) #IMPLIED
    name (%voice-name;|default) #IMPLIED >

    <!ELEMENT prosody (%allowed-within-sentence; | %structure;)*>
    <!ATTLIST prosody
    pitch CDATA #IMPLIED
    contour CDATA #IMPLIED
    range CDATA #IMPLIED
    rate CDATA #IMPLIED
    duration CDATA #IMPLIED
    volume CDATA #IMPLIED >

    <!ELEMENT audio (%allowed-within-sentence; | %structure;)*>
    <!ATTLIST audio
    src %uri; #IMPLIED >

    <!-- These basic container elements can contain any of the -->
    <!-- within-sentence elements, but neither sentence or paragraph. -->
    <!ELEMENT emphasis (%allowed-within-sentence;)*>
    <!ATTLIST emphasis level (strong|moderate|none|reduced) 'moderate' >

    <!-- These basic container elements can contain only data -->
    <!ENTITY % sayas-types "(acronym|number|ordinal|digits|telephone|date|time| duration|currency|measure|name|net|address)">
    <!ELEMENT sayas (#PCDATA)>
    <!ATTLIST sayas
    type %sayas-types; #REQUIRED >
    <!ELEMENT phoneme (#PCDATA)>
    <!ATTLIST phoneme ph %phoneme-string; #REQUIRED
    alphabet %phoneme-alphabet; #IMPLIED >

    <!-- Definitions of the basic empty elements -->
    <!ELEMENT break EMPTY>
    <!ATTLIST break size (large|medium|small|none) 'medium'
    time %duration; #IMPLIED >

    <!ELEMENT mark EMPTY>
    <!ATTLIST mark name CDATA #REQUIRED >


        语音对话
        所谓语音对话就是语音浏览器的对话控制部分。它是整个语音浏览器的主要“食物”。VoiceXML其实就是典型的语音浏览对话控制语言。编写VoiceXML非常类似在编写一段程序,而不像HTML那样纯粹是信息的堆砌。

        因为要考虑到语音浏览器的特殊浏览方式,对于语音对话控制部分的标识语言的设计就显得特别的困难。W3C也只是对它的需求进行了说明,然后又认证由工业界提交的现成版本。因为我们将在后面详细介绍VoiceXML的结构,所以我们只在这一小节中对W3C的需求说明进行简单的介绍。

        总的来看,需求说明阐明了四个大方面的需求:

        形态需求:这主要是对浏览器输入输出以及中间过程上的数据形态的规定。
        功能需求:这主要是对可支持的对话发式的定义。针对语音浏览会最常用到的对话方式,规定了一些语音对话标识语言必须实现的对话功能。

        格式需求:在标识语言的书写格式上也有一些要求。比方是对可重复使用的常用单元的支持等。

        其他方面就非常空泛了。包括触发事件句柄、语音浏览的用户制和语音用户的认证。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/4 10:41:00
     
     liyuliang 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:11
      积分:93
      门派:XML.ORG.CN
      注册:2005/10/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给liyuliang发送一个短消息 把liyuliang加入好友 查看liyuliang的个人资料 搜索liyuliang在『 XML在语音技术中的应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看liyuliang的博客2
    发贴心情 
    继续学习!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/9 17:00:00
     
     fengzhiyi 帅哥哟,离线,有人找我吗?巨蟹座1979-7-6
      
      
      威望:4
      等级:大一(高数修炼中)
      文章:104
      积分:771
      门派:XML.ORG.CN
      注册:2005/2/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fengzhiyi发送一个短消息 把fengzhiyi加入好友 查看fengzhiyi的个人资料 搜索fengzhiyi在『 XML在语音技术中的应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看fengzhiyi的博客3
    发贴心情 
    不错,支持

    ----------------------------------------------
    Don't walk in front of me, I won't follow you.
    Don't walk behind me,I won't guide you.
    Just walk beside me,then we can hand in hand together.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/1/13 16:41:00
     
     victorwish 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:6
      积分:89
      门派:XML.ORG.CN
      注册:2005/11/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给victorwish发送一个短消息 把victorwish加入好友 查看victorwish的个人资料 搜索victorwish在『 XML在语音技术中的应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看victorwish的博客4
    发贴心情 
    看不懂啊。感觉好难
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/8 11:06:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML在语音技术中的应用 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/22 8:42:05

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    101.563ms