一种基于自适应控制策略的长连接通信连接池管理方法与流程



1.本技术涉及车载语音处理技术领域,具体涉及一种基于自适应控制策略的长连接通信连接池管理方法及车联网系统。


背景技术:



2.参见图1,在车辆上,驾驶员或者乘客完成一次语音请求大体上经历三个步骤:
3.①
客户端发起请求,和智能语音接入网关之间建立长连接,并通过长连接发送音频请求;
4.②
将客户端请求的音频请求基于长连接转发给语音识别服务,识别成语音对应的中间识别文本结果和最终识别文本结果,中间识别文本结果返回给客户端,最终识别文本结果用于语义理解处理;
5.③
将语音识别出来的最终文本转发给语义理解服务,获得语义解析的结果,返回给客户端。
6.在这个交互过程中,因为语音识别服务是基于长连接实现流式识别,对于语音识别服务而言,每一个请求接入都会有网络和内存开销,为了节省资源开销,增加吞吐量,语音识别服务会在一次语音识别结束后主动断开这个长连接。
7.此外语音识别服务还会在设定的时间段内检测连接是否空闲,如无数据流入流出,也会主动断开连接,来节省资源开销。
8.另一方面,对于智能语音接入网关而言,为实现流式语音识别,就需要在每次请求语音识别服务时创建新的长连接来完成语音识别,这样频繁的创建连接带来的性能上的损耗是比较大的,目前通过测试业界主流的流式语音识别模型服务,平均连接耗时在50ms左右。在高并发请求下,这个数值还会上升到100ms~200ms之间。因建连接而产生的耗时一方面会降低语音交互的吞吐量,另外也会导致业务响应速度明显下降。
9.现有技术中,目前业界主要有两种语音识别处理的范式:一种是流式语音识别,是指可以在处理音频流的过程中,支持实时返回识别结果的一类asr模型。与之相对的是非流式模型,它必须在处理完整句音频后才能返回结果。这种请求模型的缺点比较多,主要有以下几点:
10.①
客户端一次性发送完整的语音请求,在移动网络环境不好的情况下,失败率比较高,影响用户体验
11.②
语音识别时需要拿到完整的用户请求音频数据才能完成识别,性能比较差,没有提升空间。
12.当前各种场景(如车载场景,智能音箱场景,手机语音助手场景等)下的的智能语音交互系统中,为了提升用户体验和提高交互响应速度,都已经采用流式语音识别模型(streaming asr model)。在流式识别模式中,每次请求时去建立asr识别长连接,存在如下问题:
13.①
每次建立连接的耗时,叠加业务请求耗时,影响响应速度。
14.②
随着并发量的提升,连接耗时会因为系统开销的增大也随之攀升,不仅给系统响应速度带来很大影响,同时也会拉低系统的吞吐量。
15.业界已有的技术中,针对短连接场景和连接可复用的场景有比较成熟可靠的方案,比如数据库连接池,http连接池等,这类常规思路是一次性建立基础数量的通信连接,达到减少频繁创建连接的操作,这种思路本身就存在一些不足,一方面,当通信很少时,空闲过多的连接造成系统资源的浪费,另一方面通信需求很多时,会出现预设连接数不能满足通信需求,通信等待时间过长而会出现超时异常。另外这类实现都是基于一个重要的前提:连接可以重复使用。而如前所述,对于语音识别场景而言,连接用过后,语音识别服务就会主动断开,或者连接建立后在设定的时间段内如果没有数据流入流出,也会被语音识别服务因空闲超时机制主动断开,因此在处理这类不可复用的长连接的连接池管理上,尚无成熟可靠的技术方案。
16.因此,希望有一种技术方案来解决或至少减轻现有技术的上述不足。


技术实现要素:



17.本发明的目的在于提供一种基于自适应控制策略的长连接通信连接池管理方法来至少解决上述的一个技术问题。
18.本发明的一个方面,提供一种基于自适应控制策略的长连接通信连接池管理方法,所述基于自适应控制策略的长连接通信连接池管理方法包括:
19.第一端获取第一时间点下第二端的连接请求数,其中,一个第二端所发出的请求用于使第一端借用所述第一端与第三端的长连接连接池中的一个空闲连接;
20.第一端获取在第一时间点之前的预设时间段内,所述长连接通信连接池中的任务完成连接的平均耗时时间;
21.第一端根据所述长连接通信连接池中的任务完成连接的平均耗时时间以及所述连接请求数,获取长连接通信连接池在第一时间点情形下需保持的最小空闲连接数;
22.第一端根据所述最小空闲连接数调整长连接连接池中的空闲连接数量。
23.可选地,所述第二端的数量为多个。
24.可选地,所述第一端获取在第一时间点之前的预设时间段内,所述长连接通信连接池中的任务完成连接的平均耗时时间包括:
25.第一端获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值
26.第一端获取在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值;
27.第一端获取在第一时间点之前的预设时间段内的语义请求耗时序列的平均值;
28.根据所述与长连接通信连接池创建连接耗时序列的平均值、通过长连接通信连接池获取语音识别请求耗时序列的平均值以及语义请求耗时序列的平均值获取所述平均耗时时间。
29.可选地,所述第一端根据所述长连接通信连接池中的任务完成连接的平均耗时时间以及所述连接请求数,获取长连接通信连接池需保持的最小空闲连接数包括:
30.第一端获取在第一时间点之前的预设时间段内的客户端的连接请求数;
31.根据所述平均耗时时间以及所述连接请求数获取连接池需保持的最小空闲连接数。
32.可选地,最小空闲连接数采用如下公式进行计算:
33.newminidle=[n/(t
ave
+t’ave
+t
nlu
)];其中,
[0034]
t
ave
为长连接通信连接池创建连接耗时序列的平均值;t’ave
为长连接通信连接池获取语音识别请求耗时序列的平均值;t
nlu为
语义请求耗时序列的平均值;时间单位为秒;[]为取整操作。
[0035]
可选地,所述第一端获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值包括:
[0036]
获取每个连接创建所需时间以及创建的连接数量;
[0037]
根据每个连接创建所需时间以及创建的连接数量获取预设时间段内与长连接通信连接池创建连接耗时序列的平均值。
[0038]
可选地,所述获取在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值包括:
[0039]
获取每个语音识别请求所需时间以及创建的语音识别请求数量;
[0040]
根据每个语音识别请求所需时间以及创建的语音识别请求数量获取长连接通信连接池获取语音识别请求耗时序列的平均值。
[0041]
可选地,所述获取在第一时间点之前的预设时间段内的语义请求耗时序列的平均值包括:
[0042]
获取每个语义请求所需时间以及创建的语义请求数量;
[0043]
根据每个语义请求所需时间以及创建的语义请求数量获取语义请求耗时序列的平均值。
[0044]
可选地,所述第一端为服务端,所述第二端为客户端,所述第三端为语音识别服务服务端。
[0045]
本技术还提供了一种车联网系统,所述车联网系统包括:服务端、语音识别服务服务端以及至少一个车辆,每个车辆均包括一个客户端;
[0046]
所述服务端、语音解析服务端以及所述客户端配合实现如上所述的基于自适应控制策略的长连接通信连接池管理方法。
[0047]
有益效果
[0048]
本技术的基于自适应控制策略的长连接通信连接池管理方法基于长连接通信连接池中的任务完成连接的平均耗时时间以及在当前时间点需要请求连接的连接请求数,来获取最小空闲连接数,并根据最小空闲连接数来动态调整长连接连接池中的空闲连接数量,从而能够尽最大可能性确保每一个第二端的连接请求过来时,都有连接可用,降低了业务请求的耗时。
附图说明
[0049]
图1是现有技术中的全链路智能语音交互系统数据流框架图。
[0050]
图2是本技术一实施例中的基于自适应控制策略的长连接通信连接池管理方法的流程示意图。
[0051]
图3为语音识别请求长连接通信连接池构成示意图。
具体实施方式
[0052]
为使本技术实施的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本技术一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。下面结合附图对本技术的实施例进行详细说明。
[0053]
图2是本技术一实施例中的基于自适应控制策略的长连接通信连接池管理方法的流程示意图。
[0054]
如图2所示的基于自适应控制策略的长连接通信连接池管理方法包括:
[0055]
步骤1:第一端获取第一时间点下第二端的连接请求数,其中,一个第二端所发出的请求用于使第一端借用所述第一端与第三端的长连接连接池中的一个空闲连接;
[0056]
步骤2:第一端获取在第一时间点之前的预设时间段内,所述长连接通信连接池中的任务完成连接的平均耗时时间;
[0057]
步骤3:第一端根据所述长连接通信连接池中的任务完成连接的平均耗时时间以及所述连接请求数,获取长连接通信连接池在第一时间点情形下需保持的最小空闲连接数;
[0058]
步骤4:第一端根据所述最小空闲连接数调整长连接连接池中的空闲连接数量。
[0059]
本技术的基于自适应控制策略的长连接通信连接池管理方法基于长连接通信连接池中的任务完成连接的平均耗时时间以及在当前时间点需要请求连接的连接请求数,来获取最小空闲连接数,并根据最小空闲连接数来动态调整长连接连接池中的空闲连接数量,从而能够尽最大可能性确保每一个第二端的连接请求过来时,都有连接可用,降低了业务请求的耗时。
[0060]
在本实施例中,所述第二端的数量为多个。
[0061]
在本实施例中,所述第一端获取在第一时间点之前的预设时间段内,所述长连接通信连接池中的任务完成连接的平均耗时时间包括:
[0062]
第一端获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值;
[0063]
第一端获取在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值;
[0064]
第一端获取在第一时间点之前的预设时间段内的语义请求耗时序列的平均值;
[0065]
根据所述与长连接通信连接池创建连接耗时序列的平均值、通过长连接通信连接池获取语音识别请求耗时序列的平均值以及语义请求耗时序列的平均值获取所述平均耗时时间。
[0066]
在本实施例中,所述第一端根据所述长连接通信连接池中的任务完成连接的平均耗时时间以及所述连接请求数,获取长连接通信连接池需保持的最小空闲连接数包括:
[0067]
第一端获取在第一时间点之前的预设时间段内的客户端的连接请求数;
[0068]
根据所述平均耗时时间以及所述连接请求数获取连接池需保持的最小空闲连接数。
[0069]
在本实施例中,采用如下公式进行计算:
[0070]
newminidle=[n/(t
ave
+t’ave
+t
nlu
)];其中,
[0071]
t
ave
为长连接通信连接池创建连接耗时序列的平均值;t’ave
为长连接通信连接池获取语音识别请求耗时序列的平均值;t
nlu为
语义请求耗时序列的平均值;时间单位为秒;[]为取整操作。
[0072]
在本实施例中,所述第一端获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值包括:
[0073]
获取每个连接创建所需时间以及创建的连接数量;
[0074]
根据每个连接创建所需时间以及创建的连接数量获取预设时间段内与长连接通信连接池创建连接耗时序列的平均值。
[0075]
在本实施例中,所述获取在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值包括:
[0076]
获取每个语音识别请求所需时间以及创建的语音识别请求数量;
[0077]
根据每个语音识别请求所需时间以及创建的语音识别请求数量获取长连接通信连接池获取语音识别请求耗时序列的平均值。
[0078]
在本实施例中,所述获取在第一时间点之前的预设时间段内的语义请求耗时序列的平均值包括:
[0079]
获取每个语义请求所需时间以及创建的语义请求数量;
[0080]
根据每个语义请求所需时间以及创建的语义请求数量获取语义请求耗时序列的平均值。
[0081]
在本实施例中,所述第一端为服务端,所述第二端为客户端,所述第三端为语音识别服务服务端。
[0082]
下面以举例的方式对本技术进行进一步具体阐述,可以理解的是,该举例并不构成对本技术的任何限制。
[0083]
在本技术的第一端与第三端工作时,第一端与第三端之间设置有长连接通信连接池,首先会初始设置语音识别请求长连接通信连接池参数:根据配置文件初始化设置基础连接池参数,如图3所示。
[0084]
在进行本技术的方法时,首先,第一端获取数据:即第一端从日志中获取当前时间点(即第一时间点下)智能语音接入网关服务的客户端的连接请求数n。
[0085]
还需要获取当前当前时间点前(即在第一时间点之前的预设时间段内)每个连接创建所需时间以及创建的连接数量,并根据每个连接创建所需时间以及创建的连接数量生成p个创建语音识别长连接耗时序列(t1,t2,...,tp);
[0086]
还需要获取当前当前时间点前(即在第一时间点之前的预设时间段内)每个语音识别请求所需时间以及创建的语音识别请求数量,并根据语音识别请求所需时间以及创建的语音识别请求数量生成q个语音识别请求的耗时序列(t’1,t’2,...,t’q);
[0087]
还需要获取当前当前时间点前(即在第一时间点之前的预设时间段内)每个语义
请求所需时间以及创建的语义请求数量,并根据每个语义请求所需时间以及创建的语义请求数量生成r个语义识别请求的耗时序列(t”1,t”2,...,t”r)

处理数据。
[0088]
下面分别获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值、在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值以及在第一时间点之前的预设时间段内的语义请求耗时序列的平均值如下:
[0089]
计算p个创建连接耗时序列的平均值:
[0090]
t
ave
=sum(t1,t2,...,t
p
)/p
[0091]
计算q个语音识别请求耗时序列的平均值:
[0092]
t’ave
=sum(t
’1,t
’2,...,t’q
)/q
[0093]
计算r个语义请求耗时序列的平均值:
[0094]
t
nlu
=sum(t”1
,t”2
,...,t”r
)/r
[0095]
将上述的t
ave、
t’ave
以及t
nlu
相加即为平均耗时时间。
[0096]
计算连接池需保持的最小空闲连接数
[0097]
newminidle=[n/(t
ave
+t’ave
+t
nlu
)]。其中,[]为取整操作。
[0098]
本技术还提供了一个连接池不活跃连接释放算法:依赖asr服务连接空闲超时或使用完毕关闭连接,定期根据连接是否活跃的属性来清理不活跃的连接,确保池中长连接对象均为可用连接。
[0099]
举例来说,第一端实时获取自身与第三端连接的长连接数量,并监控这些长连接是否活跃,如果这些长连接中有一个或者几个长连接不活跃,则清理这些长连接,防止一些长连接虽然连接上,但是并没有使用的情况出现,又或者系统没有将本身应该断开的长连接断开的情况出现。
[0100]
举例来说:
[0101]
假设在一个长连接连接池中,现有连接数10个,空闲连接数10个,预设空闲连接数10个,最大连接数50个。
[0102]
在a时间点,有5个第二端的连接请求,此时,在a时间点,长连接连接池中,现有连接数15个,空闲连接数5个。
[0103]
假设计算a时间点之前的10秒的时间里,长连接连接池中的任务完成连接的平均耗时时间通过上述公式获取,则最小空闲连接数也可以通过上述公式获取。
[0104]
假设计算完以后最小空闲连接数为10个,此时,从上述描述可以看出,在时间点a以后,空闲连接数变为了5个,然而,需要的最小空闲连接数为10个,则5个小于10个,就需要增加空闲连接数,在没有超过最大连接数50个的情况下,可以根据自己的需求随意增加,例如,可以增加5个,以保持预设空闲连接数一直是10个,也可以增加更多,例如,可以增加的比预设空闲连接数多,增加10个,此时,空闲连接数就变成了15个。
[0105]
通过本技术的方法,能够带来如下优点:
[0106]
1.结合智能语音接入网关负载、建立连接耗时和语音识别请求耗时等多个关键参数来判断连接池中最小可用长连接数,尽最大可能性确保每一个客户端的连接请求过来时,都有连接可用,节省了创建连接的耗时。
[0107]
2.基于语音识别请求长连接不可复用的特点,优化长连接连接池的实现:定期驱
逐不活跃的连接,确保每一个从池中出借的连接都是可用连接。
[0108]
3.基于长连接连接池实现智能语音客户端请求连接和语音识别请求连接的动态平衡,既满足业务需求,也不给语音识别服务造成不必要的资源挤占。
[0109]
本技术还提供了一种车联网系统,所述车联网系统包括:服务端、语音识别服务服务端以及至少一个车辆,每个车辆均包括一个客户端;
[0110]
所述服务端、语音解析服务端以及所述客户端配合实现如上所述的基于自适应控制策略的长连接通信连接池管理方法。
[0111]
虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

技术特征:


1.一种基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述基于自适应控制策略的长连接通信连接池管理方法包括:第一端获取第一时间点下第二端的连接请求数,其中,一个第二端所发出的请求用于使第一端借用所述第一端与第三端的长连接连接池中的一个空闲连接;第一端获取在第一时间点之前的预设时间段内,所述长连接通信连接池中的任务完成连接的平均耗时时间;第一端根据所述长连接通信连接池中的任务完成连接的平均耗时时间以及所述连接请求数,获取长连接通信连接池在第一时间点情形下需保持的最小空闲连接数;第一端根据所述最小空闲连接数调整长连接连接池中的空闲连接数量。2.如权利要求1所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述第二端的数量为多个。3.如权利要求2所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述第一端获取在第一时间点之前的预设时间段内,所述长连接通信连接池中的任务完成连接的平均耗时时间包括:第一端获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值;第一端获取在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值;第一端获取在第一时间点之前的预设时间段内的语义请求耗时序列的平均值;根据所述与长连接通信连接池创建连接耗时序列的平均值、通过长连接通信连接池获取语音识别请求耗时序列的平均值以及语义请求耗时序列的平均值获取所述平均耗时时间。4.如权利要求3所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述第一端根据所述长连接通信连接池中的任务完成连接的平均耗时时间以及所述连接请求数,获取长连接通信连接池需保持的最小空闲连接数包括:第一端获取在第一时间点之前的预设时间段内的客户端的连接请求数;根据所述平均耗时时间以及所述连接请求数获取连接池需保持的最小空闲连接数。5.如权利要求4所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,最小空闲连接数采用如下公式进行计算:newminidle=[n/(t
ave
+t’ave
+t
nlu
)];其中,t
ave
为长连接通信连接池创建连接耗时序列的平均值;t’ave
为长连接通信连接池获取语音识别请求耗时序列的平均值;t
nlu为
语义请求耗时序列的平均值;时间单位为秒;[]为取整操作。6.如权利要求5所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述第一端获取在第一时间点之前的预设时间段内与长连接通信连接池创建连接耗时序列的平均值包括:获取每个连接创建所需时间以及创建的连接数量;根据每个连接创建所需时间以及创建的连接数量获取预设时间段内与长连接通信连接池创建连接耗时序列的平均值。
7.如权利要求5所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述获取在第一时间点之前的预设时间段内的通过长连接通信连接池获取语音识别请求耗时序列的平均值包括:获取每个语音识别请求所需时间以及创建的语音识别请求数量;根据每个语音识别请求所需时间以及创建的语音识别请求数量获取长连接通信连接池获取语音识别请求耗时序列的平均值。8.如权利要求5所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述获取在第一时间点之前的预设时间段内的语义请求耗时序列的平均值包括:获取每个语义请求所需时间以及创建的语义请求数量;根据每个语义请求所需时间以及创建的语义请求数量获取语义请求耗时序列的平均值。9.如权利要求1至8中任意一项所述的基于自适应控制策略的长连接通信连接池管理方法,其特征在于,所述第一端为服务端,所述第二端为客户端,所述第三端为语音识别服务服务端。10.一种车联网系统,其特征在于,所述车联网系统包括:服务端、语音识别服务服务端以及至少一个车辆,每个车辆均包括一个客户端;所述服务端、语音解析服务端以及所述客户端配合实现如权利要求1至9中任意一项所述的基于自适应控制策略的长连接通信连接池管理方法。

技术总结


本申请公开了一种基于自适应控制策略的长连接通信连接池管理方法。所述基于自适应控制策略的长连接通信连接池管理方法包括:第一端获取第一时间点下第二端的连接请求数;第一端获取在第一时间点之前的预设时间段内,长连接通信连接池中的任务完成连接的平均耗时时间;第一端根据长连接通信连接池中的任务完成连接的平均耗时时间以及连接请求数,获取长连接通信连接池在第一时间点情形下需保持的最小空闲连接数;根据最小空闲连接数调整长连接连接池中的空闲连接数量。本申请根据最小空闲连接数来动态调整长连接连接池中的空闲连接数量,从而能够尽最大可能性确保每一个第二端的连接请求过来时,都有连接可用,降低了业务请求的耗时。请求的耗时。请求的耗时。


技术研发人员:

樊波

受保护的技术使用者:

中国第一汽车股份有限公司

技术研发日:

2022.06.10

技术公布日:

2022/9/30

本文发布于:2024-09-24 14:25:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/81637.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   通信   平均值   连接池
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议