XML在语音合成中的应用

互联网以及和它相关的一切现在似乎随处可见。您也许已经试过接到夜间电话推销员的语音电话、又或者曾经接到过当地药店给您的处方通知。现在,有一种新技术可以使用语音合成结合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”元素值,我们可以更精确的定义如何生成语音。

(0)

相关推荐

  • XML在语音合成中的应用

    互联网以及和它相关的一切现在似乎随处可见.您也许已经试过接到夜间电话推销员的语音电话.又或者曾经接到过当地药店给您的处方通知.现在,有一种新技术可以使用语音合成结合XML技术传送语音信息了. 以语音传递信息的手段并不是什么新东西.它是我们几千年来一直使用的交流方法.而且,从一台计算机那里接收到电话也并非什么新发明.许多语音技术到现在已经大行其道了,从传真机.自动拨号器到集成语音回复系统(IVR).电话当然是它最普遍的应用. 传统的语音系统使用预先录制好的样本.词典和音素来创建我们所听到的声音.然

  • 关于FLASH与XML交互应用中的理解

    一.书写标准的XML需要注意以下几点: 一个标准的XML文档必须要在第一行以"<?xml>"开头,以及一个"<?/>"结尾,其中开头部分需申明XML的版本,如:version="1.0",也应包含一个关于编码的声明:"encoding="utf-8"":  XML要求所有的标签必须在文档结束之前被闭合,如果标签中包含内容,则必须写成"<标签名>内容</标签

  • MyBatis中XML 映射文件中常见的标签说明

    SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出): cache – 对给定命名空间的缓存配置. cache-ref – 对其他命名空间缓存配置的引用. resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象. parameterMap – 已被废弃!老式风格的参数映射.更好的办法是使用内联参数,此元素可能在将来被移除. sql – 可被其他语句引用的可重用语句块. insert – 映射插入语句 update – 映射更新语句 delete –

  • 使用XSL将XML文档中的CDATA注释输出为HTML文本

    要利用DOM 来存取XML 文件,你必须将XML 文件连结到HTML 网页上. 示例代码 1. test.xml <?xml version="1.0" encoding="gb2312"?><?xml-stylesheet href="test.xsl" type="text/xsl"?><entry><title>entry with images</title>

  • mybatis框架xml下trim中的prefix与suffix等标签的用法

    trim中prefix与suffix等标签用法 1.prefix 前缀增加的内容 2.suffix 后缀增加的内容 3.prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了 'and' select * from User where name='zhangsan' and age='20'; <select id='queryUser'> select * from User <trim prefix='where' pr

  • 浅谈XML Schema中的elementFormDefault属性

    elementFormDefault属性与命名空间相关,其值可设置为qualified或unqualified 如果设置为qualified: 在XML文档中使用局部元素时,必须使用限定短名作为前缀 sean.xsd: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sean=&

  • PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节

    一. XML简介 XML(可扩展的标注语言)是一种W3C标准,主要用于Web应用程序和服务器之间实现容易的交互.数据的存储与使用. 使用XML标准编码的数据具有能容易被人和计算机解释的意义和结构.XML数据是平台和应用程序独立的.不用多说,这本身就使XML成为适合于互联网的一个理想的数据交换格式(事实上,它正是因这一用途而被开发的).最近,宽带连接的增长及消费者对于越过任何媒体进行数据共享的应用软件的需求意味着,XML Web服务和应用软件正变得越来越丰富. XML的发明正是为了解决描述网上丰富

  • 使用SQL查询DB2 9中的XML数据

    正在看的db2教程是:使用SQL查询DB2 9中的XML数据. 虽然 DB2 的混合体系结构与之前的版本有很大的不同,但是要利用它的新 XML 功能并不难.如果您已经熟悉 SQL,那么很快就可以将这方面的技能转化到对存储在 DB2 中的本地 XML 数据的处理上.通过本文就可以知道如何实现这一点. DB2 Viper(就是DB2 9)中的 XML 特性包括新的存储管理.新的索引技术以及对查询语言的支持.在本文中,学习如何使用 SQL 或带 XML 扩展的 SQL(SQL/XML)查询 DB2 X

  • 详述 tomcat 中的 server.xml 配置文件示例

    正文 1 前言 Tomcat 隶属于 Apache 基金会,是开源的轻量级 Web 应用服务器,使用非常广泛.server.xml是 Tomcat 中最重要的配置文件,server.xml的每一个元素都对应了 Tomcat 中的一个组件:通过对 XML 文件中元素的配置,可以实现对 Tomcat 中各个组件的控制.因此,学习server.xml文件的配置,对于了解和使用 Tomcat 至关重要. 本文将通过实例,介绍server.xml中各个组件的配置,并详细说明 Tomcat 各个核心组件的作

  • 进一步了解Python中的XML 工具

    模块:xmllib xmllib 是一个非验证的低级语法分析器.应用程序员使用的 xmllib 可以覆盖 XMLParser 类,并提供处理文档元素(如特定或类属标记,或字符实体)的方法.从 Python 1.5x 到 Python 2.0+ 以来, xmllib 的使用方法并没变化:在绝大多数情况下更好的选择是使用 SAX 技术,它也是种面向流的技术,对语言和开发者来说更为标准. 本文中的示例与原来专栏中的相同:包括一个叫做 quotations.dtd 的 DTD 以及这个 DTD 的文档

随机推荐