- 安徽路人假
-
语音技术涉及到语音编码、语音合成、语音识别、语音技术应用等多个技术领域。本文讨论的不是语音编码的标准问题,而是对语音合成与识别领域的技术标准做一个研究与探讨。 语音技术涉及到语音编码、语音合成、语音识别、语音技术应用等多个技术领域。目前,关于语音编码,国际标准化组织ISO和国际电信联盟ITU上已经制订了一系列的技术标准,分别应用在有线通信、移动通信、数字音响等领域。但是,关于语音合成与识别技术的标准还没有一个统一的规范,ISO和ITU在这些领域也没有颁布技术标准和规范。虽然有些标准化组织、研究机构和大公司提出了各自的技术规范草案,但是没有得到广泛的承认和支持。国际上,许多跨国公司,如IBM、Microsoft、AT&T、Naunce、Sun System等对语音技术的研究已经持续了多年,对制定语音技术领域的标准非常关心并积极参与,希望能把各自公司的研究成果纳入到技术规范和标准中去,以期在激烈的竞争中处于技术的制高点。现在,与互联网有关的语音技术应用领域,相关的国际语音标准发展迅速,形成了VoiceXML和SALT两大语音标准阵营,并各自都获得了广泛的支持。但是,对语音合成与识别的核心技术,如系统框架、接口规范等还没有统一的标准。本文不讨论语音编码的标准问题,而是对语音合成与识别领域的技术标准做一个初步的探讨。
语音技术标准的三个层面
虽然目前国际上还没有统一的、得到广泛承认和支持的语音合成与识别领域的技术标准,但是,这方面的研究工作发展迅速,近几年推出了许多研究成果,特别是W3C组织积极推动并发布了多个语音技术应用方面的规范或标准。例如, W3C发布了Voice Browser(语音浏览器)标准的草案。在这个标准中,Voice Browser标准(草案)定义了几种支持语音输入和输出的链接语言。这些链接语言使语音设备可以跨越各种硬件和软件平台,特别是设计了关于对话、语音识别语法、语音合成、自然语言语义和搜集可重复使用的对话组件的链接语言。这些链接语言和组件就构成了未来语音界面框架。现在,这个标准组中的参加成员有AT&T、Cisco、Hitachi、HP、IBM、Intel、 Lucent、Microsoft、Motorola、Nokia、Nortel、Sun和Unisys等公司。由于语音识别与合成技术还处在迅速发展阶段,制订出一套合适的技术标准很不容易。关于语音技术(除了语音编码)有关标准的制定工作主要集中在三个层面。
语音技术应用: 在这个层面上,主要规定在应用开发中如何使用语音合成与识别技术,即应用程序与语音合成/识别引擎之间的通信协议/语言,许多跨国公司积极参加了这个层面的规范与标准的起草、制订工作,例如,如IBM、AT&T、Naunce、Microsoft、Sun System等,推动并且形成了VoiceXML和SALT两大语音标准阵营。从开发者的角度看,这些标准都是面向应用系统开发用的。万维网联盟W3C主持了VoiceXML的起草和制定工作,并从2000年开始陆续发布了VoiceXML的多个版本,其中包括了语音识别语法规范和语音合成标记语言等。这些标准不仅使应用程序可以移植,而且还能够使语法相关联。VoiceXML 2.0是一种标记语言,用于建立话音界面,相当于带语音功能的HTML。现在已经有数百个大的厂商开发了基于VoiceXML的应用程序。SALT表示语音应用标记语言,它是在现有的标记语言,如在HTML、XHTML的基础上,增加了对语音和多媒体功能的支持而形成的。对语音应用,它主要关注的是如何通过电话得到语音服务。2002年,SALT联盟论坛发布了SALT技术规范的草案,并且把它提交给了W3C,希望能成为技术标准。参加和支持SALT技术规范的大公司包括: Cisco Systems Inc., Comverse Inc., Intel Corp., Microsoft Corp., Philips Speech Processing 以及 SpeechWorks International Inc.等。
语音识别/合成系统性能评测标准: 美国国家技术与标准研究所(NIST)主持了这个方面的工作。从20世纪90年代中期开始,NIST就开始组织语音识别/合成系统的性能评测工作。由于语音识别/合成系统的实现技术各种各样,对它们的评测实际上是相当困难的。20世纪90年代初期的时候,语音识别/合成系统大量推出,但往往出现下面的情况: 某个系统在推出时,声称该系统有很高的性能,但实际应用的时候其性能与宣传的差别很大。因此,NIST认为应制定出一套评价语音识别/合成系统的技术标准,让所有的语音识别/合成系统在这套评测标准下进行评估,以得到客观的性能评价指标。在该领域,NIST陆续制定了评价语音识别/合成系统的词错误率WER的计算规范,语言模型的复杂度的计算规范,训练和测试语料的选取,系统响应时间标准,合成语音自然度的评价规范,测试程序的规范等。近年来,NIST又制定了针对其它语种(如,汉语,日语等)的评价标准。NIST的评价标准迅速得到了语音识别/合成领域开发者的支持,越来越多的大公司积极参加NIST组织的评测活动,同时也推动了语音识别/合成技术的发展。国内的“863”智能人机接口专家组也开展了类似的工作,陆续制定了针对汉语语音识别与合成系统性能的评价规范。
语音识别/合成引擎及其开发接口: 在这个层面上还没有一个技术标准或规范被广泛承认和采纳。ISO、ITU、NIST、W3C等标准化组织都没有在该方面推出技术标准或规范。实际上,这方面的工作涉及到许多语音识别/合成系统的具体实现问题,而系统的实现方法千变万化,难以用一个统一的规范和标准来规范。虽然没有语音识别/合成引擎及其开发接口的统一的标准和规范,但一些开发厂商和研究机构还是制定了各自的规范,在各自的语音系统中得到了实现,并随着语音识别/合成系统的推出而发布。
IBM在其推出的语音识别与合成引擎ViaVoice中规定了开发接口,提供了几百个开发接口函数。Microsoft推出了基于它的语音识别与合成引擎开发语音应用的接口Speech SDK, 在其中也提供了类似的开发接口函数。但是,IBM和Microsoft的语音识别与合成引擎的实现细节没有公开,也没有提供这方面的技术规范。另外,美国的CMU大学、英国剑桥大学电子工程系的HTK开发组都发布了开放式的语音识别与合成引擎的源码以及相应的开发工具,它们的语音识别与合成引擎的实现方法纷纷被众多的开发者所借鉴,从而形成了业界很有影响的开发规范,但是,这些规范也不是标准。目前,有许多语音识别与合成引擎,但是没有提供实现的技术规范,因此,这些系统的实现和提供的接口只是遵守各自特殊的规定,没有规范化并得到广泛的应用。
中文语音技术标准现状
制订中文语音技术的有关标准,对促进中文语音技术应用、推动中文语音产业发展、增强民族软件核心竞争力均具有非常重要的意义。国家信息产业部、“863”专家组、国家技术监督局和国家信息标准化委员会分别于2001年、2002年、2003年召开了三届语音标准研讨会,并于2003年11月由信息产业部科技司正式下文成立了“中文语音交互技术标准工作组”。
“中文语音交互技术标准工作组”是由国内产、学、研、用等企事业单位以及大专院校等自愿联合组织、经信息产业部科技司批准成立的、组织开展中文语音交互领域技术标准制定和研究活动的非营利性技术工作组织。该工作组的主要工作任务是研究并制定与中文语音交互技术有关的数据交换格式、系统架构与接口、系统分类与评测及数据库格式与标注等方面的标准。目前,语音合成和语音识别通用标准已正式立项为国家标准,报批稿已经完成,多个产业相关的应用技术标准也正在制定之中。
国家“863”智能人机接口专家组在20世纪90年代中后期邀请国内的一些研究机构和大学制订了针对汉语语音识别与合成系统的评价规范,该评价规范应用到了历届对“863”支持的汉语语音识别与合成系统的评价过程中。如果从语音识别与合成技术标准的三个层面考察,国内在该领域的研究工作主要集中在系统性能的评价规范的制订上,至今还没有正式实施的国家标准。但是,随着国内的语音应用开发地迅速发展,没有一个统一的技术规范或标准会造成许多开发重复,资源浪费。
例如,如果语音识别与合成引擎支持媒体资源控制协议(MRCP), 语音应用开发者采用MRCP,IVR和语音识别与合成引擎开发厂商之间的专有用的连接器就不需要了。再如,随着语音技术和应用市场需求增大的同时,面临着复杂系统互联的问题。在系统的互联接口、内容交换数据格式等方面没有一个大家共同遵循的标准,其开发难度、维护难度和运营难度是非常巨大的; 没有一个大家共同遵循的标准,语音合成/识别引擎与电话设备、后台数据库、地理信息、无线定位等其他组成部分完成通信也是非常困难的,这些都成了阻碍语音应用大规模发展的绊脚石。因此,制订和研究汉语语音技术领域的标准已迫在眉睫。
技术标准的主要内容
为了适应网上语音浏览、语音信息检索、交互式语音应用的发展需求,语音识别与合成技术的标准制订工作的重点目前应该集中语音技术应用层面和语音识别/合成引擎及其开发接口上。这样的一个标准或规范必须是有代表性的,通用的,被广泛接受和采用的; 显然,制定一个这样的标准不能闭门造车,要有标准的使用机构或潜在的使用机构参与,还必须与国际上已有的类似的标准接轨,与国际上的标准化机构,如ISO、W3C、ITU等密切合作。值得注意的是,语音识别/合成的实现算法千差万别,该领域的标准或规范只能提供一个实现框架,没有必要对具体的实现算法和技术细节进行约束。另外,语音技术标准还应该与具体应用无关,与语音识别/合成引擎无关等。
如上所述,语音技术标准(除了语音编码)的制订工作主要集中在三个不同的层面上。这三个层面标准的内容分别是:
语音技术应用: 一般基于语音的应用都有如下图所示的架构(已简化)。
在这个层面上,语音技术标准的主要内容是: 规定语音输入、语音输出、识别结果、返回结果的格式和属性。语音输入和语音输出属于用户与语音信号处理引擎之间的交互过程,所以,这部分也包括语音用户界面的内容; 识别结果是语音信号处理引擎输出的结果,也是识别结果执行引擎的输入,识别的结果一般是文本或命令,如何将识别结果格式化是该层面的主要任务; 返回结果是识别结果执行引擎的输出,也是语音信号处理引擎的输入,经语音信号处理引擎处理后,以语音的方式返回给用户。为此,需要规定语音输出的参数格式,如韵律特征、重音特征和停顿等。制订这方面的标准内容还应该考虑汉语语言和语音结构的特殊性。现在已经发布的技术标准或规范主要是VoiceXML和SALT,它们都属于描述和规定语音技术应用的层面,都是基于标记语言的格式。
语音识别/合成系统性能评测标准: 在这个层面上,语音技术标准的主要内容是: 评价语音识别引擎的性能指标,主要包括: 词汇量大小、识别方式、词错误率WER、语言模型复杂度、响应时间、训练和测试语料等; 评价语音合成引擎的性能指标,主要包括: 词汇量、自然度、清晰度、测试语料等。虽然我们可以借鉴NIST在这方面的经验和标准,但是针对汉语语音识别/合成系统性能评测标准,我们不能照搬,必须考虑汉语的特点。
语音识别/合成引擎及其开发接口: 在这个层面上,语音技术标准的主要内容是: 规定语音识别引擎的输入/输出的格式,如输入语音的方式(已有的语音数据的输入/Mic语音输入)、语音数据的格式、语音特征向量的格式、控制参数的语义格式、输出是文本串的格式、拼音串的格式、音素串的格式等,提供给用户开发接口的函数名、入口/出口参数、功能描述等; 但是,语音识别引擎的实现细节不应该包含在此部分的标准内,如引擎应该包含哪些模块,使用什么样的语音特征向量,如何计算语音特征向量,如何建立模板,如何匹配计算等,都不应该加以约束,而允许开发者采用适当的算法实现。关于规定语音合成引擎,需要规定的是: 输入的格式,如纯文本/拼音、带有控制串的文本/拼音、控制串的语义格式描述、输出的格式、提供给用户开发接口的函数名、入口/出口参数、功能描述等; 但是,语音合成引擎的实现细节不应该包含在此部分的标准内,如引擎应该包含哪些模块,如何进行输入文本的分析,如何分词,采用什么样的合成基元和算法等,都不应该加以约束。关于这部分标准的内容,IBM和Microsoft语音识别/合成引擎开发文档提供了详细的开发接口函数的信息,而且功能基本相同,可以为制订语音识别/合成引擎开发接口提供参考。语音识别引擎开发工具包HTK详细描述了如何开发一个新的语音识别引擎,对制订该部分标准的内容也具有参考意义。
链接:推动技术标准制订
语音技术在网络浏览器和其他领域的的需求越来越迫切,制订语音技术标准或规范的条件工作已经基本就绪,但针对各个具体语种的工作还很多。万维网联盟W3C在制定语音技术标准或规范方面做了大量工作,从2000年开始,先后发布了一系列用于语音识别、语音合成的标记语言规范; 为了制订一种通用标准,并被广泛采用,W3C邀请了国际上的大公司,如Sun、 IBM、Intel、微软等参加工作组。除了语音识别/合成标记语言,工作组还在开发语义翻译和呼叫控制扩展标记语言两种语音标准。这些标准都是W3C语音接口框架的重要部分,目的是为网络建立语音应用软件。
据报道,W3C计划提出针对普通话的语音技术标准,并计划加入日语、韩语等亚洲语种。到目前为止,W3C推出的语音技术标准中最成功的是VoiceXML 2.0,支持VoiceXML 2.0的Web浏览器可以解释VoiceXML 2.0脚本并向用户呈现语音信息,同时还能接受用户的语音请求,其功能相当于语音浏览器,大大促进了语音技术在网络中的应用。