用于流式处理数据的方法和设备的制作方法

文档序号:7958454阅读:181来源:国知局
专利名称:用于流式处理数据的方法和设备的制作方法
技术领域
本发明涉及用于流式处理数据的方法和设备。具体地,本发明涉及在服务器中实时生成大量连续的语音数据并将其提供给客户的方法和设备。
背景技术
服务器从客户接收用于实时处理的请求。此请求需要服务器实行连续的处理,而同时提供经处理的数据块到客户。数据块从服务器流式处理到客户,客户连续地播放这些数据块。
在无问题的情形下,服务器端的处理能够连续地提供数据块到客户。取决于正在被流式处理的数据,客户可以在允许进行播放之前设定不缓冲数据块、缓冲全部数据块、或只缓冲规定数目的数据块。
服务器预期会经历很多次处于压力下的情形;例如,在带宽很低或CPU使用率很高时。这很可能影响服务器连续地处理和流式处理数据的能力。在某种程度上,进行缓冲提供对此问题的解决方案。然而,静态的客户端缓冲器没有考虑服务器的当前工作负荷或网络带宽。
对于客户端,结果可以是可变的。会出现两个可能的情形。1)客户存储额外数据,在开始播放之前实际上等待所请求的所有数据到达。对于客户和用户的含意在于,他们必须在请求和接收数据的播放之间等待不想要的时间长度。2)客户存储了不完全数据,并出现缓冲器欠载运行。因此,最终用户在播放时将经历中断。
给文本到语音(TTS)系统进行大小估计不是无关紧要的,并且如果TTS数据传输的大小计算不正确,则会出现若干问题。对于处于压力下的客户系统,TTS的质量显著下降。如果TTS服务器处在压力下,则TTS可以被以比特播放给呼叫方,这将显得不太自然。如果客户系统(典型地为交互话音响应系统)检测到欠载运行,则整个提示会被重放。在所有的情形下,呼叫方会体会到系统的负面经历,并且将来很可能不再使用该系统。
美国专利出版物6766407即Microsoft Corp.的“Intelligent streamingframework”描述流式处理框架管理器,其根据特定连接的属性的分析来协调流式处理解决方案的单元。该出版物没有考虑流式处理生成器的工作负荷。
美国专利出版物6112239即Intervu Inc.的“System and method forserver-side optimization of data delivery on a distributed computernetwork”涉及服务器端优化和网络性能信息。该出版物涉及根据网络信息把数据重定向到各个传送站点和服务器。
欧洲专利出版物11 82875即MatsushitaElectric Co.的“Streamingmethod and corresponding system”是根据由客户而非服务器能力所驱动的协商进行描述的,但其涉及到优化,以避免缓冲器的下溢和上溢。传输能力的改变被检测到,并对其作出反应。客户终端负责使用传输能力来计算适当的缓冲水平和延迟,并从而指示服务器以特定的速率进行传输。然而,没有考虑到服务器性能。

发明内容
根据本发明的第一方面,提供了一种控制从数据流播放器播放所生成的媒体数据流的方法,包括估计用于生成数据流的生成时间;估计数据流的播放时间;通过使用数据流生成资源来生成数据流,以便由数据流播放器输出;以及如果剩余生成时间不大于播放时间(即,剩余生成时间等于或小于播放时间),则提醒数据流播放器。
在本发明的优选实施例中,服务器在给定网络知识后计算它可以做什么,并发送消息,以保证从一个时间点起的服务水平。在客户可以可靠地开始播放信号时的时间点,把“可开始播放”消息发送到客户。本发明的优选实施例考虑了服务器的处理能力,并负责按优先权顺序处理,以保证对客户的服务水平。
本发明的优选实施例确定何时已发送足够的音频以及客户应当在何时开始播放。控制的服务器客户通信在被用来发送数据的协议内实现,并且此信息应该可被用于客户端应用。
在本说明书中,在数据流的播放时间与数据流的剩余生成时间之间的差值被称为临界缓冲点。当达到临界缓冲点时,也就是当临界缓冲器变为零时,提醒数据流播放器。
有利地,在提醒已被发出后,使数据流的生成速率为相同速率或更快速率。更有利的是,每个数据流具有优先权,并且优先权在生成资源内被提升,以便在提醒被发出后保持速率。
优选地,每次从数据流生成资源得到剩余的生成时间,把它与播放时间相比较。剩余生成时间可以从生成时间的初始估计的经过时间中进行估计,或更有利地,可以在初始估计以后作出对生成时间的新的估计。对生成时间的新的估计允许所考虑的生成资源的变化的工作负荷。
更优选地,提醒是从服务器发送到客户的。在优选实施例中,正是服务器计算了生成与播放时间之间的差值,因为较容易在服务器处得到在服务器处生成时间的改变与生成时间的更新。然而,如果生成时间被发送到客户,则客户可以计算开始播放数据的最好时间。
在媒体数据流是语音数据以及生成资源是文本到语音引擎时,所述实施例是最适用的。TTS特别容易受到中断,因为它必须以恒定的速率播出,但其它类型的生成引擎可以使用此技术来减小媒体流的中断,所述媒体流例如需要恒定速率输出的视频图形。TTS引擎保持TTS控制器在TTS数据流传输过程中用TTS生成时间进行更新。


现在将仅通过示例并参考附图来描述本发明的实施例,在附图中图1是本实施例的示意性的客户和服务器布置;图2是本实施例的服务器控制器方法的流程图;图3是客户控制器方法的流程图;
图4A是示例的TTS服务器工作负荷相对于时间的图;以及图4B是相应的TTS生成和临界缓冲点的图。
具体实施例方式
参照图1,示出了根据优选实施例的客户10和服务器12的布置。服务器12包括TTS控制器14;文本到语音(TTS)引擎16;以及优先权引擎18。客户10包括音频播放器20;缓冲器控制器22;以及缓冲器24。
TTS控制器14处理来自一个或多个客户10的TTS请求,并使用TTS方法300从TTS引擎16进行TTS传输。
TTS引擎16根据来自客户10的请求生成TTS数据流。作为启动发送的一部分,TTS引擎16计算生成TTS数据流所需时间(生成时间)和播放TTS数据流所需时间(播放时间)。
优先权引擎18通过根据数据流的优先权控制TTS引擎资源的分配来执行TTS引擎16上的负荷平衡。首先,每个数据流被分配以平均优先权,但这个优先权在处理期间可被改变。如果一个数据流比其它数据流具有更高的优先权,则这一个数据流将比其它数据流更快地处理。优先权引擎18响应于TTS控制器14,并且随之调整TTS引擎资源的分配。
客户缓冲器24接收来自服务器12的数据流,并且存储它直至播放器20请求数据用于播放为止。
在简单的情形下,在由用户通过客户音频播放器20的接口进行提示后,缓冲器控制器22启动对数据流的请求。在更复杂的情形下,用户接口由交互话音响应应用进行控制,并且在某些用户交互后,所述应用做出对音频流的请求。
客户音频播放器20包括具有输入与输出的接口。输入取得用于选择数据流、或用于应用交互话音应用的用户命令。
参照图2,描述了由TTS控制器14所执行的TTS控制器方法200。
在从客户接收TTS请求后开始步骤202。在步骤202,TTS控制器14通过从TTS生成时间中减去TTS数据流的播放时间而计算临界缓冲点(CBP)。在优选实施例中,考虑用于转换的文本的大小和TTS引擎的工作负荷而计算TTS生成时间。另一实施例在计算中还将使用网络工作负荷。可替换地,单独的文本大小是给出有用的TTS生成时间的简单因素。
步骤204是启动从TTS引擎16发送TTS数据流到客户10。当TTS数据流被生成和发送时,生成TTS数据流所需时间随TTS引擎的负荷的改变而改变。
在步骤206,开始连续循环,根据新的TTS生成时间重新计算新的CBP。TTS引擎16在TTS数据流的传输过程中保持用TTS生成时间来更新TTS控制器14。在优选实施例中,对CBP的连续的重新计算在TTS生成时间可以随不同的点而变化的高工作负荷的情形下大大地提高了精度。然而,有用的实施例还可包括仅仅计算一次的CBP。
在步骤208,检查CBP,以查看它是否为零或更小(即,剩余的生成时间等于或小于播放时间),并且在它达到零或更小之前,循环回到步骤206。在此循环期间,TTS数据正被发送到客户缓冲器24,并且剩余的生成时间正在减小。一旦CBP达到零之后,过程就移到步骤210。
在步骤210,TTS控制器14通过发送“可以播放缓冲器”消息来提醒客户10CBP已达到零。
在步骤212,TTS控制器14通过指示优先权引擎增加数据流处理的优先权而提交TTS引擎生成和传递速率。
步骤21 4是控制方法的结束,虽然TTS引擎仍旧可生成TTS数据流以及客户仍旧可播放数据流。
客户缓冲器控制器22使用客户控制器方法300来处理TTS数据流。
在步骤302,缓冲器控制器22向服务器12请求TTS。
在步骤304,缓冲器控制器22从服务器接收TTS数据流。
在步骤306,缓冲器控制器22一直等待至能够开始播放缓冲器。
在可选的步骤308,缓冲器控制器22等待开始播放缓冲器。
在步骤310,播放缓冲器被播放,而同时仍旧接收TTS数据流。
下面是需要12秒来生成和需要6秒来播放的文本到语音数据流的优选实施例的操作的示例。
图4A是示例的TTS服务器12的工作负荷相对于时间的图,所述服务器在前2秒内能够每秒处理0.5秒的音频。在2秒后,因为减小的工作负荷,TTS服务器12能够每秒处理0.75秒的音频。当服务器12首先接收TTS请求时,TTS服务器12在经过的每秒内只能传递0.5秒的音频。通过从处理请求的时间(12秒)中减去播放请求的时间(6秒),确定6秒的临界点。在经过6秒后,服务器过程进行调度,以发送“可以播放缓冲器”信号到客户。
然而,在2秒的经过时间后,服务器的负荷已减小,而现在,系统在经过的每秒内能够传递0.75秒的音频。通过从处理请求的时间(5/0.75=6.67秒)中减去播放请求的时间(6秒)以给出0.67秒,或者从接收初始请求开始的2.67秒,确定新的临界缓冲点(见图4B)。在2.67秒以后而不是6秒后,发送“可以播放缓冲”消息(图4B中的START_PLAY)。
总之,描述了一种用于对流式处理数据进行协商的方法、设备和计算机程序。具体地,其涉及在服务器中实时生成大量连续的语音数据并将其提供到客户的方法和设备。根据一方面,提供了一种控制从数据流播放器播放所生成的媒体数据流的方法,包括估计用于生成数据流的生成时间;估计数据流的播放时间;通过使用数据流生成资源来生成数据流,以便由数据流播放器输出;以及如果剩余生成时间实质上等于或小于播放时间,则提醒数据流播放器。在优选实施例中,服务器在给定网络的知识后计算它可以做什么,并发送消息,以保证从一个时间点起的服务水平。在客户可以可靠地开始播放信号时的时间点,把“可开始播放”消息发送到客户。本发明的优选实施例考虑了服务器的处理能力,并负责按优先权顺序处理,以保证对客户的服务水平。
权利要求
1.一种用于控制从数据流播放器播放所生成的媒体数据流的方法,包括估计用于生成数据流的生成时间;估计数据流的播放时间;通过使用数据流生成资源来生成数据流,以便由数据流播放器输出;以及如果剩余生成时间不大于播放时间,则提醒数据流播放器。
2.如权利要求1所述的方法,还包括在提醒被发送后保持生成速率为同一速率或更快速率。
3.如权利要求2所述的方法,其中所述流生成具有优先权,并且在生成资源内提升所述优先权,以便在提醒被发送后保持速率。
4.如权利要求1到3的任一项所述的方法,其中所述剩余生成时间是在生成数据流期间从数据流生成资源中得到的。
5.如权利要求1到4的任一项所述的方法,其中所述提醒是从服务器发送到客户的。
6.如权利要求1到5的任一项所述的方法,其中所述媒体数据流是语音,而所述生成资源是文本到语音引擎。
7.一种用于控制从数据流播放器播放所生成的媒体数据流的系统,包括用于估计用于生成数据流的生成时间的装置;用于估计数据流的播放时间的装置;用于通过使用数据流生成资源来生成数据流以便由数据流播放器输出的装置;以及用于如果剩余生成时间不大于播放时间则提醒数据流播放器的装置。
8.如权利要求7所述的系统,还包括在提醒被发送后保持生成速率为同一速率或更快速率。
9.如权利要求8所述的系统,其中所述流生成具有优先权,并且在生成资源内提升所述优先权,以便在提醒被发送后保持速率。
10.如权利要求7到9的任一项所述的系统,其中所述剩余生成时间是在生成数据流期间从数据流生成资源中得到的。
11.如权利要求7到10的任一项所述的系统,其中所述提醒是从服务器发送到客户的。
12.如权利要求7到11的任一项所述的系统,其中所述媒体数据流是语音,而所述生成资源是文本到语音引擎。
13.一种用于控制从数据流播放器播放所生成的媒体数据流的计算机程序产品,所述计算机程序产品包括计算机可读代码,当其被装入计算机上并被执行时实现如权利要求1到6的任一项所述的方法。
全文摘要
本发明涉及一种用于对流式处理数据进行协商的方法和设备。具体地,本发明涉及一种在服务器中实时生成大量连续的语音数据并将其提供到客户的方法和设备。根据一方面,提供了一种控制从数据流播放器播放所生成的媒体数据流的方法,包括估计用于生成数据流的生成时间;估计数据流的播放时间;通过使用数据流生成资源来生成数据流,以便由数据流播放器输出;以及如果剩余生成时间实质上等于或小于播放时间,则提醒数据流播放器。本发明的优选实施例考虑了服务器的处理能力,并负责按优先权顺序处理,以保证对客户的服务水平。
文档编号H04L29/06GK1855824SQ20061006547
公开日2006年11月1日 申请日期2006年3月22日 优先权日2005年4月30日
发明者C·P·杰克逊, N·史密斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1