Nuance 7.0技术白皮书

2001/12/29

Nuance简介

  Nuance 公司是为电信、企业和基于互联网的系统提供自然语音接口软件的企业,处于全球领先地位。成功的应用例子包括:United Parcel Service (UPS)公司的包裹跟踪系统、美国航空公司的航班信息系统、Charles Schwab公司提供股票投资和报价语音查询的 VoiceBroker系统。

  Nuance系统的独特性和成功要归功于多个因素。其中,软件的结构、技术和实施方法对开发商有特别意义。

系统结构概述

  系统结构准确度高、伸缩空间大、质量稳定可靠,是创建高质量的语音识别系统的理想之选

结构

  Nuance是采用基于分布式的结构,因此系统灵活、可靠,成本效率高。

先进的核心功能

  本系统具有内容丰富的功能集,其中有些功能是Nuance独有的,可完成复杂的语音应用程序,能随时随地向呼叫者提供高质量的服务。

配置选择

  Nuance拥有众多的合作伙伴,且涉及面广,能提供可与Nuance系统集成的平台和开发工具,因而顾客有广阔的开发空间和配置选择余地。

  本白皮书将帮助语音识别应用程序开发商、集成商和技术决策者对Nuance结构获得全面的理解。如要对Nuance产品、服务、工具、配置选择有更多、更系统的了解,请参考《Nuance系统指南》介绍部分。

Nuance 系统结构概述

  Nuance系统的客户/服务机的结构可在Windows NT 及很多UNIX系统上运行。它可灵活伸缩,支持很小到很大的应用程序。利用这个结构,Nuance系统可在高效而节约成本地利用计算资源的同时,支持特殊的交互式语音要求。下图展示了Nuance系统的主要组件,随后是每个部分的说明。

Figure图 1:Nuance的分布式结构

  Nuance API:Nuance系统提供了一系列应用编程接口(API)。开发者可利用这些API创建语音应用程序或与第三方平台集成。这些语音应用程序和Nuance系统的组件可以进行交互,例如通过其中的一个API和识别客户端(RecClient) 进行交互。Nuance系统提供的API包括SpeechObjects、RCEngine、VRecServer C++ API、RCAPI和Dialog Builder(对话框构造器)等。

  Java SpeechChannel和SpeechObjects:SpeechObjects属于Java类,它封装了对话框单元,利用SpeechChannel这个Java对象进行识别并提供音频功能。这一Nuance 应用编程接口(API)让您将应用程序的开发集中在对话框层次,而不是客户端的识别层次。

  识别客户端:RecClient是处理应用程序和Nuance系统间交互的过程,它处理音频输入和输出,并支持有限的电话控制。音频输入可选择取消回音然后作断句。音频输出支持预录音提示回放,为第三方的文本到语音转换(TTS)系统提供了一个框架。

  在特定配置下,呼叫控制和提示回放由Nuance系统外的组件控制,RecClient也可用于偷听模式。最后,RecClient将音频传给识别服务器(RecServer),并将事件和结果回传给应用程序。

  识别服务器:RecServer对从RecClient接收来的终端音频进行语音识别和自然语言理解。如果安装了Verifier, 在需要校验时,RecServer同时对音频执行声纹鉴别。

  为识别语音并为表达内容返回自然语言的解释,RecServer需要一系列的声学模型和语法。声学模型和语法帮助服务器确定说话内容。语法也用于解释口头词汇的意思。应用程序对RecServer加载包中的声学模型和语法进行指定。语法也可在运行时动态地加载到RecServer上。

  资源管理器:Nuance资源管理器执行实时载入平衡功能,以保证识别任务平均分配到可用的识别服务器,从而降低硬件需求,改善服务质量。

  数据库:Nuance系统的应用程序使用数据库来保存动态语法和用户资料。对于Nuance Verifier应用程序,数据库还保存鉴别音纹。对于某些Nuance功能,视其应用程序情况,可能不需要数据库。Nuance支持Oracle及符合ODBC(开放数据接口)标准的数据库。另外,通过定做的数据库提供软件,任何关系型数据库均可集成到Nuance应用程序中。

  编译服务器:编译服务器用于运行时动态地编译语法。编译服务器只有在应用程序中使用了动态语法功能或SpeechObjects对象才需要。为了避免最终用户等待,动态语法通常在改变时重新编译,而不是在使用时编译。动态语法可在RecClient控制下重新编译。另外,管理程序中独立的编译服务器API也支持动态语法的编译。

  许可管理器:Nuance系统许要在多个机器上浮动,必须有许可管理器。运行许可管理器过程的机器充当许可服务器,负责向分布在网络上的Nuance过程发放许可。

  文本到语音转换(TTS)服务器(可选):文本到语音转换(TTS)服务器为RecClient提供了播放来自第三方TTS产品音频的框架,它在RecClient和第三方TTS软件间充当桥梁作用。在使用TTS服务器时,应用程序可播放基于文本的动态合成的音频输出,代替或者配合预录音提示。Nuance APIs

语音识别过程

  为了理解Nuance的结构,最重要的是大致了解识别过程,重点在客户端、服务器和应用程序。请注意,本篇试图展现的是一个典型的简单过程,和实际过程可能有出入,实际情况则视集成伙伴实施的电话功能而定。下图为过程的步骤,随后是每个步骤的说明。

图2:语音识别过程Figure 2

  在进行语音识别之前,每个应用实例必须建立一个从应用程序到客户端的音频输入输出的连接。

  注:每条电话线必须总有一个应用实例和一个音频连接。

  当应用实例和语音通道就绪后,系统经过下列步骤(如上图所示):

  1.RecClient端有电话到达,RecClient通知应用程序,系统接电话。

  2.系统要求RecClient播放第一个提示,呼叫者作出反应。对文本到语音转换提示,RecClient将要合成文本通过一个套接字发送到TTS服务器,并接收回传的样本。

  3.为识别呼叫方的反应,RecClient向资源管理器发送服务器请求(同时缓存音频数据),资源管理器将RecClient指向最合适的RecServer。

  4.RecClient向RecServer发送一条识别请求。每个请求由音频流和在应用中的语法条目组成。

  该语法条目暗含了声学模型,因为两者被内置于RecServer加载的识别包里。

  1.RecServer接收到请求后,执行识别任务,然后将识别结果返回给RecClient。

  2.在此期间,资源管理器对RecServer的当前载入的内容进行监视。

  3.RecClient将识别结果发送给应用程序。

  4.应用程序作出相应的响应,例如,进行数据库查询或请求RecClient播放另一个提示,作为对用户的响应。

  5.呼叫者作出反应;RecClient发送下一个识别请求(见步骤4)。

识别结果

  每个识别完成后,Nuance系统将识别结果传给应用程序,应用程序根据结果相应做出响应。识别结果包含丰富的信息供应用程序使用,包括:

  下图是识别结果的示意图,包括被识别的文本、置信级别及自然语言解释。

图3:识别结果Figure 3

  可以要求识别引擎产生一个可能的结果集,来代替单独的最佳结果。办法是使用Nuance系统的N-best识别处理方法,它提供可能性由高到低排列的可能识别结果列表。要求识别器返回的结果最大数目可以自己设定。运行时,应用程序会对每个结果相应决定接受、拒绝、或者要求确认。

  也可使用外部的应用知识内容来确定多结果中的哪一个是有效的。例如,经纪业务应用程序,它的用户投资随时间变化而变化。系统可使用简单的语法来识别股票证券的名称。识别时,系统产生一个最佳前N个股票名称的清单,标明假设的股票证券名称。应用程序然后将每个清单项目(由最佳到最差)和现有股票证券名称进行比较,从而为该用户找到可能性最大的一个。下图展示的是这些多结果情况,每个结果都可能有它自身的已被识别的文本、NL解释和置信度分值。在这一例中,请求了五个识别结果。

图4:多识别结果Figure 4

识别客户端

  现在我们仔细地看看系统结构中的各个组件。本部分由语音获取过程的概述开始,然后对识别客户端主要功能进行深入探讨。

获取语音

  RecClient是处理应用程序和Nuance系统之间的交互的过程。RecClient管理音频输入输出(一般是通过电话线)。RecClient支持有限的呼叫控制功能,为呼叫者提供激活Nuance识别服务的接口。语音应用程序开发商通过API使用RecClient。重要的是,Nuance系统允许启动和运行多通道、多线程的RecClient。

  下图显示了RecClient的主要特点。

图5:识别客户端Figure 5

  在语音获取过程中,识别客户端主要负责下列的任务:

  也可选择让 RecClient执行诸如应答、转接、挂机等电话控制。这些功能也可有IVR(交互语音响应)平台来完成。

音频提供器

  音频提供器是RecClient的一个主要组件,用于连接Nuance系统和音频输入输出设备。基于电话的音频提供器,同时也负责呼叫控制功能。Nuance支持各种不同的音频提供器,包括:

  对于Nuance的集成伙伴,您选择的接口决定了所需的音频提供器。如果要使用RCEngine接口,处理音频输入输出由Nuance系统处理。在这种情况下:

电话功能

  电话功能由Nuance系统或集成的IVR(交互式语音响应)平台完成,视选择哪一种配置方法而定。如果选择和Nuance的IVR伙伴合作,电话由IVR平台处理。如果选择Dialogic、NMS、或 Aculab板卡,需使用Nuance接口来激活板上的电话功能。Nuance的电话功能包括:

  1.打电话

  2.回电话

  3.检测挂机

  4.检测 DTMF 拨号音

  5.呼叫转移

  6.长线连接(有限电话会议)

识别服务器

  RecServer是根据来自RecClient的应用程序的请求,进行语音识别和自然语言解释的处理模块。语音应用程序开发商不能直接操纵RecServer,而是向它请求服务。开发商也可使用IVR接口与Nuance系统联络。多数情况下,集成开发商使用一种RecClient接口直接与RecServer联系。如果集成应用程序必须直接操纵服务器,比如在使用旧式电话环境的情况下,则可使用VRSAPI将音频直接传给RecServer。

RecServer的任务

  和RecClient一样,RecServer的运作过程是在后台完成运行的。RecServer是共享资源,由资源管理器进行管理,主要执行三个任务:语音识别、自然语言理解和声纹鉴别。

  RecServer响应来自RecClient的应用程序请求,执行语音识别功能。每个RecServer根据启动时加载的识别包中的一个或多个语法进行识别。当应用程序请求识别时,指定使用的识别语法。资源管理器跟踪每个RecServer支持的语法并将识别请求转向相应的服务器。

  Nuance系统的最重要的功能之一是RecServer的自然语言理解能力。在应用程序开发过程中,开发商指定多个档位和一个特定语法。运行时,RecServer不仅识别讲话的内容(抄本), 而且通过在各个档位中填入给定值来识别讲话的意思(意义提取)。这种任务的分配简化了开发过程,因为应用程序不负责解释识别结果。

  如果应用程序中使用了Nuance Verifier,RecServer在识别处理的同时执行声纹鉴别。

RecServer和其它系统组件

  下图说明RecServer和其它Nuance系统组件之间的交互情况。在每个交互过程中,由资源管理器建立连接,但RecServer和其它组件间的交互是直接进行的。

图6:识别服务器Figure 6

  在启动时,RecServer和资源管理器建立连接,并不断地接受RecClient连接。当RecClient向资源管理器请求RecServer时,资源管理器根据当前的负载、可用的识别包及其它因素选择最合适的RecServer。

  RecClient在通话时间内必须一直连接着电话线路,因为RecClient必须获取并处理完整的讲话内容,并在整个通话中不断适应讲话者。相反,RecServer只在识别处理时才被使用。因此,RecServer是共享的资源,他们可以有效地利用CPU和系统的内存资源。

资源管理器

  资源管理器执行实时载入平衡,保证识别和校验任务平均分布到可用的RecServer上,从而降低硬件要求,提高服务质量。资源管理器也是容错的关键组件。当一个RecServer失效时,资源管理器停止向其发送请求。

图7:资源管理器Figure 7

  所有的RecClient和RecServer均与资源管理器连接。资源管理器跟踪每个服务器支持的识别包,监视服务器负载,对各个识别请求分配合适的服务器。

  注:多数应用程序使用一个主资源管理器和一个辅资源管理器,以避免在某一点上的失效引起整个系统的关闭。一个资源管理器作为主要管理器,另一个作为后备,监视所有的RecServer并对所有请求作出响应。如果主资源管理器失效,另一个立即接管,不会降低系统的性能。

  资源管理器还管理多个编译服务器、TTS服务器和其它系统组件。

资源管理器和其它系统组件

  资源管理器和其它系统组件的交互情形如下:

  1.RecClient请求使用某个语法进行识别

  2.资源管理器找到具有该语法的最空闲的RecServer并通知RecClient。

  3.RecClient动态地连接该服务器并传入断句后的讲话。

  4.RecServer执行识别并将结果发送给RecClient。

  RecClient和资源管理器间的磋商只需要很短时间,对应用程序是透明的。在此期间,RecClient将语音缓存,所以音频不会丢失。资源管理器连接是动态的,所以当RecClient和RecServer处理启动时,他们各自和资源管理器连接,结果,每个RecClient和RecServer立即就绪,可以发出或者处理识别请求。这种设置允许在资源管理器连续运行的情况下,按需要增加或减少客户或服务机。

动态语法

  是Nuance结构的一个重要部分,它能被运行应用程序动态创建和修改。动态语法使系统能识别其它的类型��因为有些系统中要识别的项目必须等到运行时才能确定,这些例子有:

  1.在某些应用程序中,要根据数据库中可变化的项目或者其它只有运行时才能知道的动态数据来创建、更新语法。

  2.为个别用户定做的应用程序,比如带有每个人的私人地址表的拨号系统,或带有可定做收款人清单的帐单结算系统。

  可以通过程序或者利用语音和基于文本的接口由用户输入,将新的短语加到动态语法中。通过语音接口,即念出短语来增加短语的过程,叫登记。通过这种机制创建的语法对讲话者有依赖性,因为发音是依据用户的口头输入产生的,只能用于对该讲话者的识别。由GSL或基于文本接口创建的动态语法不依赖于讲话者:发音通过词典和自动发音生成器生成,适用于任何讲话者。

动态语法的工作方式

  本部分详述动态语法和其它Nuance系统组件之间的交互。下图说明处理的各个步骤,随后是每个步骤的说明。

图8:动态语法Figure 9

  1.语音应用程序通过RecClient将识别请求发送给RecServer。

  2.RecServer从数据库中读取适当的动态语法,和时间戳一起存入缓冲区。

  3.如果用户输入要求增加语法,例如,用户在个人拨号器中加了人名,RecClient将该信息发送到编译服务器。

  4.编译服务器进行必要的语法更新。

  5.当RecServer接收到另外的请求时,使用动态语法时间戳检查数据库中的语法是否已经更新。如果该语法已经改变,则RecServer更新其本地副本。否则,它利用缓存的副本处理识别请求。

  除了由语音应用程序进行动态更新外,有的系统通过其它方式接收输入,例如,交互性的互联网址。在这种情况下,单独运行一个管理过程,当输入引起变化时更新语法。和前面一样,RecServer将缓存语法的时间戳和数据中的当前语法进行比较,并作必要的信息更新。

动态语法存储

  每个动态语法均作为一条记录存放,在修改时增量编译。这种存储机制使应用程序可以快速地加载动态语法,同时提供了更新语法内容和保存修改的方便接口。例如,在个人快速拨号应用程序中,可为每个呼入的用户,加载经常通话的个性化名单;用户可以修改该名单,变动存入数据库,以供下次用户呼叫时使用。

  Nuance产品完全兼容Oracle 和 ODBC(开放数据接口) (Microsoft Windows NT版)。Nuance系统也包括API,用于创建定做的数据接口,以存取未直接支持的其它类型的关系型数据库。为了方便使用,Nuance系统也附带了一个文件系统型数据库,供开发、原型化和演示用。文件型数据库不支持分发。

系统结构的优点

  Nuance 7.0的分布式结构具有伸缩性强、成本效率高和配置灵活等优点,具有支持数百万呼叫的能力;Nuance健壮的客户/服务机结构使语音识别应用程序威力强大,具有极其高效的容错性和载入平衡能力,保证了应用程序的可靠性。Nuance结构具有如下结构上的优点:

  1.分布式结构。资源管理器在RecServer间进行载入均衡,从而保证硬件的利用效率。对CPU强度大的识别可以由非运行应用程序和音频接口的远程机器来执行。这种结构优化了内存和CPU资源的使用,因为每个RecServer可以支持多个客户端,资源管理器可以将呼叫平均分布到几个RecServer上。另外,对于小型系统或者原型,可在同一台机上运行RecClient和RecServer。

  2.高密度接口。将客户端的少量处理从CPU密集型的服务器处理隔离,允许客户端端有高密度的接口又能提高服务器端CPU的使用效率。

  3.容错和可靠性。即使个别服务器失效,也不会使系统崩溃,甚至不会错过一个电话。当一个RecServer失效时,资源管理器自动停止向其发送请求,当服务器恢复时,自动开始向它发送请求。呼叫者不会被断线,最多是系统要求其重复最后一句话,并转向另外一个可用的服务器。

  4.维护方便。可以关闭一个RecServer进行维修,而对整个系统的性能没有影响,或者影响很小。一些类型的维护甚至可以不关闭RecServer进行。

  5.无缝的鉴别功能。Nuance系统将识别过程和鉴别处理集成在一起。所以资源管理器不仅对所有RecServer的识别负载,同时还有鉴别负载,进行均衡。这个方案比分开进行校验和识别处理的方案具有更高的效率、需要更少的硬件。

  6.可伸缩性。随着呼叫量的增加,可增加RecServer、RecClient和应用的实例,无须停止任何运行着的应用程序或关闭IVR系统。

Nuance公司简介

  Nuance公司是自然语音接口软件的佼佼者。使用自然语音接口软件,人们可以通过电话方便安全地获取信息、服务并进行交易。每天,千千万万的人通过拨打运行Nuance公司语音识别、语言理解和声纹鉴别软件的电话,进行出游预订、股票交易、与其它通讯媒体、企业和互联网系统进行交往等活动。美国航空、Bell Atlantic、Charles Schwab、家庭购物网络、Lloyds TSB、Sears、UPS等大公司使用Nuance的软件来为客户提供更好的服务,同时也大幅度降低了成本。Nuance公司是语音商务联盟的发起成员,并领导创建了语音应用程序开发的开放标准。Nuance公司的总部设在加州硅谷的Menlo Park,世界各地均有分部和合作伙伴,提供多语种支持的解决方案。来体验Nuance公司最新的技术吧,请打电话1-888-NUANCE-8或浏览公司的网址www.nuance.com。

NDN - Nuance开发商网络

  Nuance Developer Network (NDN - Nuance开发商网络) 是语音识别行业第一个开发商网络,它向成员提供最新的产品发布信息、培训、在线技术论坛,以及和其它开发商进行想法和方案共享的机会。通过www.nuance.com or extranet.nuance.com 网址,可以下载最新的Nuance产品和工具。

附录A:部分功能一览

海量词汇、独立于讲话者的健壮识别功能

  Nuance系统能可靠地对多种语言进行大词汇量的识别,并可提供识别结果的置信度。该系统对商业上使用的大量词汇提供最准确的语音识别技术。利用Nuance系统开发的应用程序,在市场上具有最高的准确率。生产中的应用程序经测试,准确性超过96%。

内建的自然语言理解

  通过Nuance系统可以开发自然语言理解系统,它以句子为输入,返回句子意义的解释性表达。应用程序可以根据用户的请求采取相应的动作。Nuance系统也提供基于档次的置信评分,它能更加接近地判别可能准确(或不准确)识别的短语各部分。然后可更加自然和有效地修改应用程序,处理错误检查或重新提示。

基于主机的客户/服务机结构

  Nuance系统基于开放式客户/服务机结构,特别为大型应用程序所需的健壮性和可伸缩性而设计。呼叫者的讲话由客户端收集,而识别和鉴别处理的负载被平均分配到网络上的多个分开的服务器上。

集成的讲话人校验

  声纹鉴别使用户可通过其声音的生物学统计特征进行校验。Nuance的Verifier允许同时进行讲话识别和用户甄别。Nuance系统可对多种讲话进行校验,包括自定义口令、数字和应用程序命令。系统检查要求的话是否已讲,同时根据以前保存的音纹对用户进行辨别。

动态语法

  动态语法是由运行的应用程序创建和修改的语法。这在应用程序词汇必须在运行时才能完全确定的情况下是必不可少的。

无线和免提准确性

  Nuance 7.0提供强壮的无线和免提电话处理功能,在噪杂环境下有特别高的准确率,语音识别高质可靠。

单个词汇校正

  也叫按档置信评分,如果一个长句中的一个词语未被识别,应用程序可提示用户重复该片段,而不是整个句子。

热词识别

  热词识别使系统能对讲话者进行偷听,等待特定的词汇或短语,将控制交还该应用程序。可在应用程序使用该功能,使识别器能够静静倾听,直到用户说出特定的短语进行请求时才与用户交互。

智能断句

  断句是对进来的样本流确定语句的起始和终止的处理过程。当找到语句的起始和终止点后,语句区向前后分别延伸预先确定的长度。一旦检测到语句的起始点,样本开始流向RecServer,直到发现语句的终止点。通过这种方式,RecServer在用户仍在讲话的同时,实际上已经开始处理讲话的内容,而又不处理讲话的起止处多余的空白,从而节约CPU时间和网络带宽。

打断功能

  打断功能使用户可以打断提示、作出响应,无需等到提示结束播放。打断功能使用户和系统间的交流更加快捷、自然,特别是系统的经常用户。

N-Best处理

  对于有些应用程序,可能需要识别引擎产生可能的识别结果集,而不是一个最好的结果。Nuance系统的N-best识别处理方法便有这个功能,它提供了可能的识别结果列表,并按可能性从高到低排列。

语法概率

  Nuance系统允许对呼叫者所讲的特定词语或短语的在语法中的概率进行指定。当被讲的词语或短语的概率可根据实际使用进行估计时,非常有用。对语法增加概率可提高识别的准确率和速度。

降低噪音

  当进来的呼叫包含稳定的背景噪音时,Nuance系统通过一种机制,使识别服务器更准确地进行识别。识别服务器将进来的话语进行增强,以有效地将语气、嗡嗡声、哼叫声、嘘嘘声等噪声过滤。如果相当数量的电话均含有稳定的背景噪声,比如在汽车上免提打电话时,这个机制效果较理想。

提示回放

  Nuance系统允许播放预先录好的提示和由文本到语音转换系统产生的提示。如果应用程序使用多个文本到语音转换服务器,资源管理器将对这些服务器的转换负载进行平衡,以提高硬件效率。

SNMP支持

  系统为远程监控提供了简单网络管理协议(SNMP)支持,独具可视化工具,便于进行配置、管理和操作。

用户资料

  用户资料将特定呼叫者的所有有关信息结合在一条数据库记录里,从而提供了一个方便的机制。可存储的信息包括声纹鉴别的声纹或您想增加的任何特定应用的数据。

Nuance公司供稿 CTI论坛编辑



相关链接:
Nuance发布Vocalizer 5.0文本语音转换方案 2009-09-04
化繁为简,让手机“一切行动听指挥” 2009-08-13
Nuance语音识别技术助力医学中心节省开支 2009-08-12
Nuance携手IBM提供先进的语音识别解决方案 2009-08-05
Nuance语音识别技术将进军中国 2009-06-17