技术 - 呼叫中心 - 语音识别与分析技术频道

天朗分布式语音识别系统产品白皮书

2003-09-27 00:00:00   作者:   来源:   评论:0 点击:


一.前言
  语音识别是指从语音到文本的转换,即让计算机能够把人发出的有意义的话音变成书面语言。通俗地说就是让机器能够听懂人说的话。所谓听懂,有两层意思,一是指把用户所说的话逐词逐句转换成文本;二是指正确理解语音中所包含的要求,而不要求所有词都转换正确。
  语音识别技术(ASR)是以语音为研究对象,涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动作可帮助对方理解),目前常见的识别技术一般采用隐马尔可夫模型HMM(Hidden Markov Model)来建模。它的基本原理是系统首先对大量的真实世界中的人的语音进行分析,并建立模型。在识别时,系统同样先对输入的语音进行分析,提取特征,然后通过一定的算法并使用已建立的模型,从而识别出用户所说的话。
  随着语音识别技术的逐渐成熟,语音识别技术开始得到广泛的应用,涉及日常生活的各个方面如电信、金融、新闻、公共事业等各个行业,通过采用语音识别技术,可以极大的简化这些领域的业务流程以及操作;提高系统的应用效率。
二、语音识别的原理
2.1 语音识别的基本原理

  从图1中看出,输入的语音首先要通过端点检测(也称静音检测模块),检测得到输入语音的有效语音数据部分(也就是去除了静音数据、噪声数据等);然后进入特征提取模块,这里需要提取语音信号最本质的信息,一般采用MFCC特征,它是采用复杂的数字信号处理技术来完成的;语音信号的特征信息被送入识别引擎,在声学模型和语言模型的指导下进行识别,最终得到识别结果,这里常常需要采用非常复杂的搜索算法,简单地说,它需要根据语言模型考虑各种词的组合(句子)及其发生概率,对于每一种可能的句子,都给出一个得分,选择得分最大者作为识别结果。但是由于可能的搜索空间非常大,所以需要利用剪枝技术,有效地去除大量冗余空间,加快搜索速度,满足实际系统的要求。
2. 2 基于语法的识别引擎

  对于很多领域的语音识别来说,如自动总机、火车定票系统、股票查询系统等,他们具有一个共同的特点:所用的句型典型,且句型数有限,可以用规则来描述。对于这样的系统,采用语法的方式来指导其语音识别,一方面可以得到很高的识别率,另一方面,又能达到较快的识别速度,满足实际系统的需要。因此,基于语法方式的语音识别技术得到广泛应用。本文中我们采用的核心识别引擎也是采用语法的方式。
三、天朗分布式语音识别系统简介
  天朗分布式语音识别引擎是天朗公司针对电信级、大企业级应用特点开发出来的一个基于多机的分布式语音识别引擎,它通过局域网连接多个识别服务器,来同时完成大量的语音识别任务,极大的拓展了单机版语音识别引擎在识别任务上的限制,可以同时支持几百到几千个语音识别任务并发执行,从而满足电信级这样的具有大识别任务量的应用。系统的主要功能有:
·支持非特定人、大词汇量、连续语音识别,能够达到高的识别准确率;

  为了方便客户使用,我们提供了一套客户端API给用户,用户在使用本系统时,可以在其应用程序中调用我们的API来调用我们的识别系统。

4.2 天朗分布式语音识别系统工作原理
  应用程序通过DSR的API函数来调用语音识别功能,一般来说过程如下:
  1、 当有电话到达时,应用程序负责接起电话,然后播放一个欢迎的提示音,提示用户说出要做的动作(如查询人名、股票信息等),并开始等待用户说话;

4.3 识别结果
  需要注意的是:引擎返回的句子的个数可能没有用户设定的数目多,另外,设定较大数目的返回结果候选会影响系统的效率。
4.4引擎的三种调用方式

  下面以电信级应用来说明不同的调用方式的差别。
  一般来说,一个基于电话语音识别的对话系统(如图5所示),一般由识别服务器、应用服务器、电话交换机、智能交换机设备、 IVR设备等设备组成,电话交换机与成千上万个电话终端通过各种交换设备相连接,电信应用软件在这些硬件的支持下提供各种服务,如:1860查询服务等。此时,电信应用开通的线数视系统的业务需求而定,一般总是大大小于终端连接的总数。系统连接数与终端连接数常常是1:1000或者1:10000的级别。"一路对话"是指物理上的一条线路,对于上述的电信应用,电信开通的每一条线路都是一路对话。
  "一次对话"是指用户的一次电话从打入到挂机之间一个交互服务过程称。比如:用户拨打1860进行话费查询,在用户拨通电话至用户挂机这个过程中用户和应用程序交互的整个过程称作一次对话。
  "一路会话"这里是指语音识别中,一次识别从分配识别资源开始到释放这个资源的整个过程。
  第一种:直接为每一路对话分配一个会话,用户应用程序在程序一开始就为每一路对话建立到引擎的连接,然后,该路对话就会一直保持该会话,再也不释放该会话,直到程序结束。这种方式编程简单,但是,在系统的稳定性和有效性方面都是最差的。因为每一路对话都一直使用,且一直独占该会话,一旦该会话出现问题,则该路对话就永远不能用了,除非重启程序。另外,由于每路对话都独占一个会话,因此即使该路对话没有在使用引擎,其独占的会话也不能被别的对话使用。降低了系统的效率。
  第二种:在一次对话开始时就建立到引擎的连接,然后该对话一直独占该会话,直到该次对话结束。很显然,这种方式和第一种方式比起来,在稳定性和效率方面都有很大提高。主要是这种方式不再一直独占一个会话,会话可以在多路对话之间共享,即使有一路会话出现问题,只会影响一次对话的一次工作,而不会影响本路对话以及其他路对话的以后的识别。
  尽管第二种已比较优化,但它的一个缺点就是仍然会影响一次对话的进行。
  第三种:在每一次识别开始时建立连接,识别结束后立刻释放(这种方式与第二种不同,是因为在一次对话过程中会存在多轮的识别过程)。这种方式的优点除了第二种的优点外,他还克服了它的缺点。因为,此时一个会话的失败只会影响该路对话的一句的识别,通过编程我们可以在发现一个会话失败后,再申请另一个会话,这时最多让用户重复一边刚才的话外,对这次对话没有影响。
  另外,采用三种的哪一种方式还和应用的不同有关,如果应用是类似于股票查询这样的系统,每个识别服务器都完成相同的功能,这时采用第三种方式比较合适。而对于某些应用系统如需要动态改变语法的,则最好采用第一、二种方法。如果改变的语法只在一次对话中有效,可以采用第二种,如果改变的语法一直持续有效的话,第一种可能更适合。
4.5 语法
  在天朗分布式识别系统中,语法的使用有两种形式:
  1. 静态语法,对于目前许多基于语音识别的应用系统,大多数用到的语法都是固定的,在系统运行中,不需要对语法进行更改(如1860系统,火车订票系统等),对于这种应用,最方便的方法就是在系统启动时就把用到的语法加载进系统,用到时激活(enable)就行了。这样可以节约大量的时间,提高系统的效率。为了方便用户的使用,天朗分布式识别引擎提供了静态语法功能,用户只要通过对识别服务器的预加载语法进行配置,系统会在启动时自动把这些语法加载到系统中供系统使用。在这种情况下,整个系统可以不需要语法服务器,从而节约投资成本。要注意的是,静态语法必须是已编译过的语法格式。
  2. 动态语法,所谓的动态语法是指在运行前并不知道需要加载那些语法,或者在运行时,需要对语法进行编译或修改。动态语法常用在比较大型的复杂的系统中。对于动态语法,系统必须要有语法服务器来支持,动态语法可以是文本格式,也可以是编译后的格式,系统会根据传入的语法的格式自动进行选择是否进行编译。
  在天朗分布式识别引擎中,语法是通过一个key来唯一指定的,这个key由用户自己指定,且必须保证不同的语法的key的唯一性。不同的语法采用相同的key可能会导致语法的相互覆盖。
  系统可以同时支持静态语法和动态语法。在加载一个语法时,系统首先会通知对应的识别服务器去加载一个指定的语法,如果该语法已加载,则仅返回语法的句柄以供以后调用;否则,系统从识别服务器所在的硬盘上加载所指定的语法。如果识别服务器上也不存在对应的语法,则先判断系统中是否有语法服务器,如果系统中不存在语法服务器,返回加载失败。否则,识别服务器会向语法服务器申请该语法。如果语法服务器上无该语法或其他原因无法得到该语法,返回加载失败。否则,下载该语法服务器到本地。并加载。返回句柄。
  引擎在加载语法时,如果找不到指定的语法Key的语法,就会加载用户指定的二进制语法文件,同时将指定的语法Key作为该语法的key。最后返回语法的handle。 要注意的是,语法加载是针对会话的。
4.6 系统的稳健性和效率
  对于电信或大企业级别的的应用系统来说,稳健性和效率是系统成功的关键。天朗分布式识别系统通过多种有效技术,来提高系统的效率和稳健性。
  1. 系统通过设立资源管理器来统一管理整个系统的识别资源分配和回收,资源管理器通过一个高效的负载分析策略,根据系统的当前状态,分配负载最轻的识别服务器以提高整个系统的整体效率。
  2. 一般来说,一个系统只要一个资源管理器就可以稳定工作,但是,采用多个资源管理器互相备份可以更有效的保证系统的稳定性。天朗分布式识别系统可以同时支持多个资源管理器同时工作。和其他的类似系统不同的是,其他类似系统在工作时只有主资源管理器在工作,而备份资源管理器是不工作的。而天朗的分布式识别系统的每个资源管理器都负担部分的资源分配工作,因此,可以充分利用系统的资源,提高系统的效率。另外,每个资源管理器又是互相备份的,当一个资源管理器出现问题,其他的资源管理器会自动的接过出现问题的服务器的工作,所以对于系统的稳定性有了充分的保障。
  3. 对于识别服务器,和资源管理器一样,备份的服务器并不是闲着不工作,它们和其他识别服务器一样承担识别任务,这样可以有效的分配负载,提高系统的效率,同时减轻系统的投资。同样的,识别服务器又是互相备份的,当一个识别服务器出现故障时,该服务器会自动的从系统中被剔除,其工作会由其他的识别服务器承担。
  4. 服务器可以动态加入和退出,不论是资源管理器还是识别服务器,抑或是语法服务器,都可以动态的随时加入整个系统中,也可以动态的从系统中退出,而对整个系统的稳定运行不会产生影响。因此,用户可以根据整个系统的运行情况,随时加入新的服务器以应付增加的呼叫量,也可以在负载变轻的时候,随时关闭某些服务器。同时,这种特性也保证某个服务器出现故障时不会影响系统的稳定运行。
  5. 由于分布式语音识别系统是一套比较复杂的系统,为了进一步保证系统的稳定性,我们还开发了一套监控程序来监视系统各个服务器的运行,一旦某个服务器出现故障,监控程序可以随时重启该服务器。这样可以保证系统可靠运行。
五、天朗分布式语音识别引擎系统架构和识别技术的特点和优势
  天朗分布式语音识别引擎的分布式结构具有伸缩性强、成本效率高和配置灵活等特点,具有支持大话务量、实时性高的能力;其客户/服务结构使语音识别应用程序强大,具有极其高效的容错性和负载平衡能力,保证了应用程序的高效可靠运行。
5.1系统架构的功能特点:
·高密度接口 将对CPU运算需求密集的语音识别任务从客户端转移到识别服务器端,使得客户端可以抽出处理能力来支持高密度的接口,从而提高应用程序系统的接入量。
·容错和可靠性 整个识别引擎经过精心的设计,具有很高的容错和可靠性,使得各个服务器可以动态的加入和退出系统,而对整个系统的运行没有影响,因此,即使个别服务器失效,也不会使系统崩溃。当一个识别服务器失效时,资源管理器会自动停止向其发送请求,当服务器恢复时,又会自动开始向它发送请求。另外,系统允许配备备份服务器来保证系统的可靠运行,在平时,备份服务器和其他服务器一样,一起工作,承担相同的工作,当有服务器崩溃时,其他服务器会自动的承担崩溃服务器的工作。不仅为系统的可靠运行提供保证,而且可以充分利用备份服务器的能力。
·自动监控 系统为每个服务器都配备了一个自动监控程序来监控服务器的运行,如果监控程序发现服务器崩溃后,系统会自动重启服务器,并保存崩溃时的现场供以后分析。这不仅大大节约维护人员的时间和精力,而且自动监控方式可以提供比人更快更准确的维护服务,保证系统的稳定运行。
·可伸缩性 随着呼叫量的增加,系统可以随时动态增加服务器,而无须停止任何运行着的应用程序或关闭IVR系统,这对那些需要常年连续运行的系统特别有用。
5.2 系统架构的综合优势:
1. 实时性
2. 稳定性
  稳定性的另一个方面反映在强健的容错能力和快速的错误修复能力,容错能力是指当一个识别服务器宕机后,不会导致整个系统的崩溃。快速的修复能力是指系统在一个识别服务器出问题后,可以很容易的通过重起服务器,或用一个新的识别服务器替代问题服务器,而不需要系统整个重起。
  天朗分布式语音识别引擎通过精心设计,使得整个引擎在稳定性上取得重大突破,系统可以长时稳定运行。另外,系统的优异的架构设计使得系统中的任意一个服务器出现问题后,其任务会被其他同类服务器承担,而不会对整个系统造成影响。另外,为了保证万无一失,我们还开发了自动监控程序来监视各个服务器的运行,从而保证当服务器宕机后,能很快恢复,从而保证系统的稳定运行。
3. 灵活性
5.3识别引擎的技术特点:
六、天朗分布式语音识别系统运行环境
1. 硬件环境
  Intel 奔腾3或以上的PC、服务器(包括各种CPU类型的服务器)、工作站(包括各种CPU类型的工作站);内存建议为256Mb以上DDR或RAMBUS内存,40GB以上硬盘, 网络采用100M带宽以上局域网,支持TCP/IP协议。
2. 软件环境
  WINDOWS NT/2000/XP操作系统。

天朗语音公司供稿 CTI论坛编辑

相关阅读:

分享到: 收藏