专利名称:语音合成系统中的数据交换方法
技术领域:
本发明涉及语音合成系统数据交换方法,具体讲是关于分布式语音合成系统数据交换方法。
背景技术:
传统的语音合成系统的一般处理过程如
图1所示。由语言处理、韵律处理和最终语音合成等主要模块构成,其中,语言处理模块和韵律处理模块一般统称为语音合成前端,最终语音合成模块一般统称为语音合成后端。语音合成前端经过一系列复杂的计算,将输入的文本转化为语言和韵律信息。语音合成后端在语言和韵律信息的基础上,经过一定的计算,将其转化成自然语音输出。
语音合成前端和语音合成后端之间进行模块之间的数据交换,即语音合成前端将其计算结果(语言和韵律信息)以一定的方式传递语音合成后端。传统的语音合成系统是一类封闭的系统,其数据的交换基本上是与具体系统相关的,也就是说,不同的语音合成系统对语言和韵律信息的描述是不相同的,这样,只有建立在语言和韵律信息的描述完全一致的基础上的语音合成前、后端才能组成完整的语音合成系统。
由此可见,传统的语音合成系统中语言和韵律信息的描述必须满足语音合成前、后端的共同要求,这样就使得缺乏广泛的适应性,而且数据交换以难以按能够为机器和人理解的方式进行,这种数据交换方式直接导致其语音合成系统的效率低,适用性和兼容性差。
分布式语音合成系统是指这样的一种语音合成系统基于客户服务器模式,语音合成过程中工作量大的部分(语言处理和韵律处理)在服务器端执行,工作量小的部分(最终语音合成器)在客户端执行,服务器和客户机之间通过一定的数据交换方法和一定的网络协议进行通信,共同完成完整的语音合成任务。
分布式语音合成是一个新兴的研究和工程化领域。相对于传统的孤立语音合成系统而言,分布式语音合成系统对客户端资源(计算和存储能力)的要求较低,可以实现在各种资源敏感的移动或嵌入式终端设备上,而语音合成最重要的性能指标——自然度,却达到与服务器级大型孤立语音合成系统的自然度媲美的水平。在后PC时代,随着各式各样个人终端设备的层出不穷和无线数据业务的飞速发展,终端用户对语音合成的需求日益迫切。因此,分布式语音合成系统具有巨大的研究和工程化价值。
有关分布式语音合成系统的详细技术内容可参见本申请人的两份在先申请(#02108890.X和#02116017.1)。
发明内容
本发明的目的在于提供一种语音合成系统数据交换方法,本方法采用人类/机器便于解读的方式对服务器的计算结果进行描述,即对语言和韵律信息进行结构化描述,使得不同技术构建的语音合成服务器或语音合成客户机均可以组成完整的语音合成系统。
本发明的更进一步目的是使不同技术构建的分布式语音合成服务器或分布式语音合成客户机均可以组成完整的分布式语音合成系统。
上述发明目的是通过采用以下技术方案实现的一种语音合成系统数据交换方法,其特征在于语音合成系统中数据交换采用基于XML的结构化文档进行。
所述的语音合成系统为分布式语音合成系统,系统中的服务器由语言处理模块、韵律处理模块和一个XML文档生成器组成。
待处理的文本经过语言处理模块和韵律处理模块的处理,转变成语言和韵律信息,所述的语言和韵律信息经过XML生成器处理,转变成XML文档,经过通信网络传输到客户机。
所述的客户机为分布式语音合成客户机,该客户机由一个被称为XML文档解析器的模块和最终语音合成模块构成。
所述的由XML生成器处理得到的XML文档经过客户机的XML文档解析器的处理,转变成的语言和韵律信息再经过最终语音合成模块的处理,转变成语音输出。
数据交换方法及意义数据交换在分布式语音合成系统中担当着至关重要的角色。分布式语音合成系统的数据交换方法是指在分布式语音合成系统中,服务器完成其所负责的语言处理和韵律处理之后,将计算结果传递给客户机进行最终语音合成的方式和途径。其中涉及两个层面的内容一、服务器对计算结果进行描述,以人/机可读的方式进行数据交换;二、服务器使用某种网络协议将计算结果传递给客户机。
由于服务器和客户机之间可以采用各种标准网络协议诸如TCP/IP和HTTP进行通信,本发明所述的分布式语音合成系统数据交换方法,不包括上述第二个层面的内容,而仅限于第一个层面的内容,即如何对服务器的计算结果——语言和韵律信息进行结构化描述,以达到人/机可读的目的。
数据交换方法的质量,涉及到分布式语音合成系统的效率、适用性和兼容性。本发明所提供的分布式语音合成系统数据交换方法,充分考虑了这些问题,在分布式语音合成系统的工程化推广中起了重大的作用。
分布式语音合成将客户—服务器构架应用到语音合成系统中语音合成前端运行在所谓的分布式语音合成服务器上,语音合成后端运行在所谓的分布式语音合客户机上。服务器和客户机之前传递的是语言和韵律信息。与传统的语音合成系统不同的是分布式语音合成系统是一类开放的系统。分布式语音合成服务器和分布式语音合成客户机之间的数据交换是开放的,不仅要求数据交换具有广泛的适应性,而且要求数据交换易于人类和机器理解。这样,由本发明提供统一的数据交换模式,使得无论以何种技术构建的分布式语音合成服务器和/或分布语音合成户均可以组成完整的分布式语音合成系统。
附图概述图1是传统语音合成系统的数据交换处理过程示意框图;图2是本发明语音合成系统的数据交换处理过程示意框图。
如图2所示,待处理的文本经过语言处理模块和韵律处理模块的处理,转变成语言和韵律信息,这些系统相关的语言和韵律信息经过XML文档生成器的处理,转变成XML文档。系统无关的XML文档在通讯链路上,如互联网等上传递,最终到达分布式语音合成客户机。
分布式语音合成系统数据交换方法,即我们对语言和韵律信息进行结构化描述的方法,通常必须具备以下功能支持多种格式文档的输入,即能指明当前文档格式;具有可读性,即易于被人类和机器理解;易于直接由人手工书写,并且同时也易于机器自动生成;与现有各标记体系保持一致,尽量兼容或易于被自动转化。具体来讲应当满足以下基本要求1、对单模态输出和多模态输出都能加以控制;2、能对合成文本的结构加以描述;3、支持不同语言和方言的定义;4、支持特殊发音指定(宏发音),包括强制改变发音以及引用外部声音元素;5支持对诸如速度、音高、音强等参数的控制;6、支持对音色的指定,如发音人姓名、性别、年龄等;7、对特定格式文字发音的支持,如地址、电话、网址等;8、支持重读/强调控制;9、支持某段文字语调控制;10、支持其他模态控制数据嵌入;11、支持音场环境/声源位置定义。
本发明所述的数据交换方法的具体内容说明如下XML(可扩展标记语言eXtensible Markup Language)是互联网上进行结构化数据交换十分有效的手段。它具有语言无关、平台无关、人类可读性强、易于机器理解、可以直接使用在互联网上、支持大量应用等优良特性。XML描述了一类称为“XML”文件的数据对象,同时也部分地描述了处理这些数据对象的计算机程序的动作。XML文件具有良好的自描述特性,可以独立于各类平台进行数据存储与交换。
XML并不是一种“标记语言”。确切地说,它是一种元标记语言,是一种用于定义其它标记语言的标记语言。因此,它不能直接对特定领域的数据进行描述,因而不能被使用作为数据交换的载体。相反,必须使用它来定义针对某一特定领域的数据描述的标记语言,然后将被定义的标记语言作为该特定领域里数据交换的载体。
例如HTML超文本标记语言是一种真正的标记语言,它对WWW上多媒体信息进行描述,可以用来在WWW服务器和客户浏览器之间进行多媒体信息的交换。它由SGML标准通用标记语言定义,将来可能变成由XML定义。由此看出,XML与SGML属于同一层次的概念,均为定义其它语言的元语言。我们定义的标记语言,与HMTL属于同一层次的概念,均为真正的标记语言。HTML对WWW上多媒体信息进行描述,我们定义的标记语言对分布式语言合成服务器的计算结果——语言和韵律信息进行描述,在分布式语言合成服务器和客户机之间进行语言和韵律信息的交换。
我们定义了中文语音合成标记语言(CSSML)规范。此规范建立在XML结构化文档基础之上,借鉴和融合了JSML、SABLE、STML、SAPI以及VXML等体系中关于语音合成方面的内容,并增加了对于中文特定内容的支持,定义了一套完整的标记语言CSSML(Chinese Speech Synthesis Markup Language),给出了其DTD描述,使得此规范的内容具有足够的覆盖范围。
CSSML针对语言和韵律信息建立了一个完整的描述体系。它既可以作为分布式语音合成系统中服务器和客户机之间数据交换的标准;也可以作为独立语音合成系统的输入,通过在待合成文本中加入若干标记从而对语音合成的各项属性参数加以控制。
数据交换方法在分布式语音合成系统中的应用本发明提供的数据交换方法,即CSSML,主要应用于分布式语音合成系统中,作为分布式语音合成系统的数据交换标准。分布式语音合成服务器完成语言处理和韵律处理,将文本转换成语言和韵律信息。这些语言和韵律信息经由一个被称为CSSML Generator(生成器)的处理模块,转换成CSSML文档。然后CSSML文档被从网络上传递给分布式语音合成客户机。分布式语音合成客户机将接收到的CSSML文档送入一个被称为CSSML Parser(解析器)的处理模块,将其转换为相应的语言和韵律信息。然后分布式语音合成客户机在这些语言和韵律信息的基础上继续进行处理,完成最终的语音合成。
CSSML是基于XML的结构化文档,具有良好的自描述特性。以CSSML作为数据交换标准的分布式语音合成系统,具有很好的鲁棒性、兼容性和易扩展性。在一个分布式语音合成系统中,服务器和客户机既可以由同一开发商同时开发,也可以由不同的开发商在不同的时间、采用不同的技术开发。只要服务器和客户机完全遵循CSSML规范,它们就可以进行集成,形成分布式语音合成应用。终端用户亦可以开发符合自身需求的客户机,通过接入应用网络,享受分布式语音合成服务。
数据交换方法在其它方面的应用本发明提供的数据交换方法,即CSSML,除了在分布式语音合成系统中担任核心角色之外,还可以应用在其它方面。如作为独立语音合成系统的输入,通过在待合成文本中加入若干标记从而对语音合成的各项属性参数加以控制。
在信息内容服务领域(如Web服务),内容提供商可以将以文本形式存在的信息内容,通过语言和韵律处理工具(作用类似于分布式语音合成服务器)转换成以CSSML文档形式存在的信息内容。CSSML文档可以提供给使用语音浏览器(作用类似于分布式语音合成客户机)的用户下载,以听代看的方式浏览信息。
在模块共享方面,CSSML也有着重要的作用。语音合成的前端(主要是指语言和韵律处理)和后端(主要是指最终语音合成)是组成一个完成语音合成系统的两大部分。其中,语音合成前后端都可以使用不同的技术实现。如果定义这样的一个规范语音合成前端的输入为纯文本,输出为CSSML文档;语音合成后端的输入为CSSML文档,输出为合成语音。这样,我们可以选取任意满足此规范的前端和任意满足此规范的后端进行集成,构建语音合成系统,达到模块共享的目的。
以下通过元素与属性、输出输入的定义以及有关重要程序的实例对本发明作进一步的详细说明。
1.元素与属性1.1 speak由于此标注体系采用XML文档格式给出,因此根元素即为“speak”。
1.2 xml:lang指定当前语种,包括子类(方言)的指定,可用值请参照Internet公文RFC1766,中文方言部分请参照附录。
1.3 paragraph、sentence、phrase、word指定语音层次结构,以使合成语音更加符合使用要求,允许嵌套。
1.4 sayas指明文本的性质,即如何决定其发音方式,“type”属性将被用来指明具体的文本性质,包括“acronym”缩写形式“number”指明数字,还可附带“ordinal”或“digits”指明读法。
“date”指明日期,可附带“ymd”“mdy”“dmy”“ym”“my”“md”“y”指明顺序。
“time”指明时刻,可附带“hm”“hms”指明包含内容。
“duration”指明时间段,可附带“hm”“hms”“ms”指明内容。
“currency”指明货币金额。
“measure”指明度量值。
“name”指明是人的姓名、公司名称或是地名。
“net”指明是与Internet相关的固定说法,包括“email”“url”等附加值。
“address”指明是表述邮政地址。
1.5 phoneme指明发音音标序列,属性包括“ph”和“py”,ph指由符合International Phonetic Alphabet(IPA)的音标序列构成;“py”指由符合中国国家拼音方案的音标序列构成。
1.6 voice指明发音人特征,属性包括“gender”指明发音人性别,可取值“male”(男声)“female”(女声)“neutral”(中性)。
“age”指明发音人年龄,可取值整数或“child”“teenager”“adult”“elder”。
“variant”指明发音人代号,可取值整数或“different”。
“name”指明发音人姓名,通常是系统相关的,可取值为具体姓名串或“default”。
1.7 emphasis指明轻重读/强调程度,属性有“level”,可指明强调等级,可取值“strong”“moderate”“none”以及“reduced”。
1.8 break指明插入一个停顿,属性包括“size”指明停顿长短,可取值“none”“small”“medium”“large”“time”指明具体停顿时长,以秒或毫秒为单位,如“3s”“300ms”1.9 prosody指明韵律上的一些参数,属性包括“pitch”指明基频的高低,可取值绝对频率数值、相对改变值或“high”“medium”“low”“default”。
“contour”指明调型曲线,取值为一系列关键点的值,每个关键点值由(位置,音高)来描述,位置为一百分比,音高与pitch的取值形式相同。
“range”指明基频范围,可取值绝对频率数值、相对改变值或“high”“medium”“low”“default”。
“duration”指明发音持续时长,可取值毫秒或秒、相对改变值或”fast”“medium”“slow”“default”。
“volume”指明音量,取值范围为0.0~100.0或相对变化值或“silent”“soft”“medium”“loud”“default”。
1.10 lexicon指明作用域内附加使用的用户词典,属性”src”指明用户词典,可以是以URI指定的某个文件或是已约定的对象名称(包括以MIME格式编码在文档中的内嵌对象)。
1.11 audio指明插入一段已有声音样本,属性“src”指明声音样本,可以是以URI指定的某个文件或是已约定的对象名称。(包括以MIME格式编码在文档中的内嵌对象)
1.12 mark指明插入一个标记,此标记可被用来快速检索文档,并在合成到此位置时触发mark事件。
1.13 value指明插入一个系统变量的值,属性包括“name”变量的名称。
“type”与<sayas>中“type”属性相同。
2.输入定义系统应能接受符合上述标记规范的文档输入,并且可以接受没有任何标记的纯文本信息,并能自动作出分析。
3.输出定义系统应能产生指定格式的音频数据,并且在扩展系统中还应能产生其他模态的输出数据以及同步信息。
4.一致性4.1不同实现的可互操作性应能保证在不同目标平台和实现目标集中,可被兼容和互操作。
4.2对已有规范的兼容性由于在定义此规范时已充分考虑到现有各种标记语言,并将其定义在XML结构化文档基础之上,使得内容的传输与解析具有优良的可扩展性和兼容性。
5.附录5.1中文区域性语言代码
5.2 CSSML 0.9 DTD描述<?xml version=″1.0″encoding=″UTF-8″?>
<!--Chinese Speech Synthesis Markup Language v0.9 20010315-->
<!ENTITY%allowed-within-sentence″#PCDATA|sayas|phoneme|voice|emphasis|break|prosody|audio|value|mark″>
<!ENTITY%structure″paragraph|sentence″>
<!ENTITY%duration″CDATA″>
<!ENTITY%integer″CDATA″>
<!ENTITY%uri″CDATA″>
<!ENTITY%phoneme-string″CDATA″>
<!ENTITY%phoneme-string-py″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)*>
<!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 voicegender(male|female|neutral)#IMPLIEDage(%integer;|child|teenager|adult|elder)#IMPLIEDvariant(%integer;|different)#IMPLIEDname(%voice--name;|default)#IMPLIED>
<!ELEMENT prosody(%allowed-within-sentence;|%structure;)*>
<!ATTLIST prosodypitch CDATA#IMPLIED
contour CDATA#IMPLIEDrange CDATA#IMPLIEDrate CDATA#IMPLIEDduration CDATA#IMPLIEDvolume CDATA#IMPLIED>
<!ELEMENT lexicon(%allowed-within-sentence;|%structure;)*>
<!ATTLIST lexiconsrc%uri;#IMPLIED>
<!ELEMENT audio(%allowed-within-sentence;|%structure;)*>
<!ATTLIST audiosrc%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 emphasislevel(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 sayastype%sayas-types;#REQUIRED>
<!ELEMENT phoneme(#PCDATA)>
<!ATTLIST phoneme
ph%phoneme-string;#REQUIREDpy%phoneme-string-py;#REQUIREDalphabet%phoneme-alphabet;#IMPLIED>
<!--Definitions of the basic empty elements-->
<!ELEMENT break EMPTY>
<!ATTLIST breaksize(large|medium|small|none)″medium″time%duration;#IMPLIED>
<!ELEMENT mark EMPTY>
<!ATTLIST markname CDATA#REQUIRED>
<!ELEMENT value EMPTY>
<!ATTLIST valuename CDATA#REQUIREDtype%sayas-types;#REQUIRED>
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 emphasislevel(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 sayastype%sayas-types;#REQUIRED>
<!ELEMENT phoneme(#PCDATA)>
<!ATTLIST phonemeph%phoneme-string;#REQUIREDpy%phoneme-string-py;#REQUIREDalphabet%phoneme-alphabet;#IMPLIED>
<!--Definitions of the basic empty elements-->
<!ELEMENT break EMPTY>
<!ATTLIST breaksize(large|medium|small|none)″medium″time%duration;#IMPLIED>
<!ELEMENT mark EMPTY>
<!ATTLIST markname CDATA#REQUIRED>
<!ELEMENT value EMPTY>
<!ATTLIST valuename CDATA#REQUIREDtype%sayas-types;#REQUIRED>
权利要求
1.一种语音合成系统中的数据交换方法,其特征在于语音合成系统中数据交换采用基于XML的结构化文档进行。
2.根据权利要求1所述的语音合成系统中的数据交换方法,其特征在于语音合成系统为分布式语音合成系统,系统中的服务器由语言处理模块、韵律处理模块和一个XML文档生成器组成。
3.根据权利要求2所述的语音合成系统中的数据交换方法,其特征在于文本经过语言处理模块和韵律处理模块的处理,转变成语言和韵律信息,所述的语言和韵律信息经过XML生成器处理,转变成XML文档,经过通信网络传输到客户机。
4.根据权利要求3所述的语音合成系统中的数据交换方法,其特征在于所述的客户机为分布式语音合成客户机,该客户机由一个被称为XML文档解析器的模块和最终语音合成模块构成。
5.根据权利要求3或4所述的语音合成系统中的数据交换方法,其特征在于所述的由XML生成器处理得到的XML文档经过客户机的XML文档解析器的处理,转变成的语言和韵律信息再经过最终语音合成模块的处理,转变成语音输出。
全文摘要
本发明提供一种语音合成系统,尤其是分布式语音合成服务器或分布式语音合成客户机均可以组成完整的分布式语音合成系统数据交换方法,本发明的核心是采用基于XML的结构化文档进行,系统中的服务器由语言处理模块、韵律处理模块和一个XML文档生成器组成,待处理的文本经过语言处理模块和韵律处理模块的处理,转变成语言和韵律信息,所述的语言和韵律信息经过XML生成器处理,转变成XML文档,经过通信网络传输到客户机,使得不同技术构建的语音合成服务器或语音合成客户机均可以组成完整的语音合成系统。
文档编号G10L13/00GK1501349SQ0214866
公开日2004年6月2日 申请日期2002年11月19日 优先权日2002年11月19日
发明者唐浩, 尹波, 唐 浩 申请人:安徽中科大讯飞信息科技有限公司