CN115242735B - 一种实时语音流切片分析方法、系统及计算机设备 - Google Patents
一种实时语音流切片分析方法、系统及计算机设备 Download PDFInfo
- Publication number
- CN115242735B CN115242735B CN202211154852.7A CN202211154852A CN115242735B CN 115242735 B CN115242735 B CN 115242735B CN 202211154852 A CN202211154852 A CN 202211154852A CN 115242735 B CN115242735 B CN 115242735B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- analysis
- voice stream
- buffer area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种实时语音流切片分析方法、系统及计算机设备,本发明提供的实时语音流切片分析方法,包括如下步骤:接收分析请求;建立环形缓冲区;持续接收语音流数据,当语音流数据达到预设值后,往环形缓冲区中写入;按照写入环形缓冲区的顺序连续读取缓冲区块的数据;当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积;调用分析程序对数据切片进行处理分析。本发明提供的实时语音流切片分析方法具有零阻塞,延迟率大幅降低,高稳定性和高时效性的优点。
Description
技术领域
本发明涉及语音流分析技术领域,尤其涉及一种实时语音流切片分析方法、系统及计算机设备。
背景技术
近年来,随着互联网技术的不断发展,基于语音识别技术实现的智能化电子设备逐渐吸引了人们的注意。尤其是在电话销售、回访等领域,对通话语音数据进行智能化实时在线识别和分析是用户关注的重点。目前,实时语音流分析方法可分为连续分析和切片分析。切片分析把连续的语音流切分为数据段,对每个数据段进行单独分析。
但目前的实时语音流分析方法存在如下缺点:
1、分析程序的处理能力与实时语音流的流速不一致时,会导致语音流的输入发生阻塞。
2、分析过程发生阻塞时,会使得分析的结果出现延迟,影响实时分析的效果。
因此,现有技术中的实时语音流分析方法分析处理速度不匹配。语音流一直进行输入,分析处理也是一直进行,如果使用同步方式处理(接收语音数据后处理完成后再接收语音数据),语音接收会发生时快时慢的现象;分析程序的处理速度也受接收端影响,可能发生阻塞现象,这两者的速度不能完全适配。
发明内容
基于此,有必要提供一种零阻塞,延迟率大幅降低,高稳定性和高时效性的实时语音流切片分析方法、系统及计算机设备。
本发明提供一种实时语音流切片分析方法,包括如下步骤:
S1、接收分析请求;
S2、根据所述分析请求建立由多个缓冲区块首尾连接形成的环形缓冲区;
S3、持续接收语音流数据,当语音流数据达到预设值后,往所述环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入;
S4、按照写入环形缓冲区的顺序连续读取缓冲区块的数据;
S5、当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积;
S6、调用分析程序对所述数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果。
优选地,所述步骤S2中,根据预设缓冲数据块计算得到所述环形缓冲区占用空间,所述预设缓冲数据块包括序号和时间戳,所述环形缓冲区占用空间满足如下条件:
其中,Ss为环形缓冲区占用空间;Sseq为预设缓冲数据块的序号占用空间大小;Sts为缓冲数据块的时间戳占用空间大小,Sb为缓冲数据块大小,n为缓冲区块的个数。
优选地,所述缓冲区块的个数满足如下条件:
其中, St为单位时间语音数据大小,t为缓冲音频持续时间。
优选地,所述步骤S3中,每写入一个缓冲区块,区块编号加1,写入计数器的值设置为当前区块号,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入;所述步骤S4中,每读取一个缓冲区块,区块编号加1,读取计数器的值设置为当前区块编号。
优选地,所述步骤S4中,当读取计数器的值大于或等于写入计数器的值时,停止读取缓冲区块中的数据,停止读取后,若收到写入通知,继续进行数据的读取环形缓冲区的数据。
优选地,当环形缓冲区中在预设时间内没有写入的操作,并且读取计数器的值等于写入计数器的值时,不再对数据切片进行处理分析,同时不再接收语音流数据。
优选地,所述步骤S6中, 分析程序使用HTTP协议接收数据切片并返回结果,分析程序调用完成后,才进行下一个调用。
本发明还提供一种实时语音流切片分析系统,包括:
数据输入端,用于接收分析请求,并根据所述分析请求建立由多个缓冲区块首尾连接形成的环形缓冲区,所述数据输入端还用于持续接收语音流数据,当语音流数据达到预设值后,往所述环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入;
分析端,用于按照写入环形缓冲区的顺序连续读取缓冲区块的数据,当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积,所述分析端还用于调用分析程序对所述数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果。
优选地,包括作为所述数据输入端的数据接收器、作为数据输入端和分析端的缓冲管理器、作为分析端的数据切分器、作为分析端的分析处理器和分析结果管理器;
所述数据接收器用于接收分析请求,并在分析请求接受后,生成分析上下文;所述数据接收器还用于持续接收语音流数据;
所述缓冲管理器用于建立由多个缓冲区块首尾连接形成的环形缓冲区,还用于当语音流数据达到预设值后,往所述环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入,所述缓冲管理器还用于按照写入环形缓冲区的顺序连续读取缓冲区块的数据;
所述数据切分器用于当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积;
所述分析处理器用于获取当前上下文,并调用分析程序对所述数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果;
所述分析结果管理器用于对分析结果进行分类和转换。
本发明还提供一种计算机设备,所述计算机设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现实时语音流切片分析方法。
本发明提供的实时语音流切片分析方法、系统及计算机设备,解决语音流接收和分析速度不一致产生的阻塞和延迟问题,通过流控和跳帧技术,对分析处理速度做到自动适配。语音流输入实现零阻塞,延迟率大幅降低,实现高稳定性和高时效性的语音分析。
附图说明
通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明实施例提供的实时语音流切片分析方法流程示意图。
图2为本发明实施例提供的环形缓冲区示意图。
图3为本发明实施例提供的预设缓冲数据块示意图。
图4为本发明实施例提供的语音流切片分析方法包括含注册阶段、分析阶段和中止阶段示意图。
图5为本发明实施例提供的实时语音流切片分析系统处理框架图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
请参考图1,本发明实施例提供一种实时语音流切片分析方法,包括如下步骤:
S1、数据输入端接收分析请求;
S2、数据输入端根据分析请求建立由多个缓冲区块301首尾连接形成的环形缓冲区300,参考图2 。
S3、数据输入端持续接收语音流数据,当语音流数据达到预设值后,往环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入。
参考图2,此步骤中,每写入一个缓冲区块,区块编号加1,写入计数器的值设置为当前区块号,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入。
S4、分析端按照写入环形缓冲区的顺序连续读取缓冲区块的数据。
此步骤中,每读取一个缓冲区块,区块编号加1,读取计数器的值设置为当前区块编号。当读取计数器的值大于或等于写入计数器的值时,停止读取缓冲区块中的数据,读取操作挂起,停止读取后,若收到写入通知,继续进行数据的读取环形缓冲区的数据。
S5、分析端当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积。
S6、分析端调用分析程序对数据切片进行处理分析,分析结果发送到结果消息队列。当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,当正在处理的数据切片数量低于可同时处理的最大值时,新形成的数据切片可继续进入处理,并输出分析结果。
当环形缓冲区中在预设时间内没有写入的操作,也就是较长时间没有写入了,并且读取计数器的值等于写入计数器的值时,则判断分析端数据已全部处理,分析端进入关闭状态,不再对数据切片进行处理分析,同时数据输入端进入关闭状态,不再接收语音流数据。
本实施例提供的实时语音流切片分析方法,通过建立缓冲区块首尾连接形成的环形缓冲区,可有效防止数据的溢出。
本实施例提供的实时语音流切片分析方法,通过建立环形缓冲区,来实现多线程模型,数据输入端和分析端使用单独的线程,数据输入端进行连续的数据接收,并持续写入环形缓冲区,分析端从环形缓冲区中读取数据并进行分析,实现数据的写入和读取进行解耦,实现无阻塞的数据传输。
本实施例提供的语音流切片分析方法,当读取到的数据累积达到预设大小后,形成数据切片,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,采用流控技术,可实现保证分析过程的稳定性,语音流输入实现零阻塞。
本实施例提供的实时语音流切片分析方法,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,采用跳帧技术,控制数据段调用分析程序的速率,延迟过大时自动跳帧,提升了实时语音流分析的实时性,延迟率大幅降低。
综上,本发明提供的实时语音流切片分析方法使用多线程模型,数据输入端和分析端使用单独的线程。数据接收线程进行连续的数据接收,持续写入缓冲区。分析线程从缓冲区读取数据,当数据累积到指定大小后,形成切片,调用分析程序进行分析。分析线程根据分析程序的负载判断分析是否执行,根据数据块的生成时间判断是否跳过。
本发明解决了语音流接收和分析速度不一致产生的阻塞和延迟问题。通过流控和跳帧技术,对分析处理速度做到自动适配,和传统方式比较,语音流输入实现零阻塞,延迟率大幅降低,实现高稳定性和高时效性的语音分析。
本发明提供的实时语音流切片分析方法,使用异步处理方式,语音流接收不阻塞,分析程序不断进行处理,当分析处理速度较慢时,超过处理能力的切片自动丢弃,保证实时性;当处理速度恢复时,新产生的切片会继续处理;接收端和分析端各自都按照自身的速度进行处理,做到速度匹配。
参考图3,在优选实施例中,步骤S2中,建立缓冲区时,分配存储空间,根据预设缓冲数据块计算得到环形缓冲区占用空间,预设缓冲数据块400包括序号401、时间戳402和数据块403,环形缓冲区占用空间满足如下条件:
其中,Ss为环形缓冲区占用空间;Sseq为预设缓冲数据块的序号占用空间大小;Sts为缓冲数据块的时间戳占用空间大小,Sb为缓冲数据块大小,n为缓冲区块的个数。
在进一步优选实施例中,缓冲区块的个数满足如下条件:
其中,St为单位时间语音数据大小,单位时间内语音数据的大小,例如是缓冲10秒,以8k16bit音频为例,则语音数据大小为(8000*16*10)bit;t为缓冲音频持续时间。
缓冲区块使用计算机内存,确定缓冲占用空间,能确定计算机能承受的最大音频流处理数量;缓冲区大小可根据计算机内存资源,进行适度增大或缩小缓冲区;增大缓冲区可减少缓冲区数据覆盖几率,缩小缓冲区可支持更多音频流。
参考图4,本发明提供的实时语音流切片分析方法,包括含注册阶段、分析阶段和中止阶段。
注册阶段包括如下步骤:f1、建立缓冲区;f2、分析注册器。
分析阶段包括如下步骤:g1、数据输入端写入缓冲;g2、分析端读取缓冲;g3、累积数据形成切片;g4、流量控制;g5、切片数据分析。
中止阶段包括如下步骤:k1、数据输入端中止写入;k2、分析端继续处理;k3、分析端中止处理;k4程序中止。步骤k1之后可直接进入步骤k3,也可先经过步骤k2然后进入步骤k3。具体为:步骤k1之后,当读取计数器的值小于写入计数器的值时,先进入步骤k2,待当读取计数器的值等于写入计数器的值,处理完成后再进入步骤k3;当读取计数器的值等于写入计数器的值时,处理完成,进入步骤k3。
本实施例中,通过上下文管理器,实现分析任务的数据共享,各个组件通过上下文取得分析任务的数据,数据接收器接收到分析请求后,处理过程进入注册阶段,生成分析所需要的环境,注册阶段完成后,进入分析阶段,在分析阶段,语音流数据持续输入,经数据接收器、流转发管理器、缓冲管理器、数据切分器、分析处理器和分析结果管理器,产生分析结果;在中止阶段,各组件处理完数据后,回收资源并中止。
步骤f1具体为:建立由多个缓冲区块首尾连接形成的环形缓冲区。
步骤g1具体为:持续接收语音流数据,当语音流数据达到预设值后,往环形缓冲区中进行写入。
步骤g2具体为:按照写入环形缓冲区的顺序连续读取缓冲区块的数据。
步骤g3具体为:当读取到的数据累积达到预设大小后,形成数据切片。
步骤g4具体为:若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,实现流量控制。
步骤g5具体为:调用分析程序对数据切片进行处理分析。
本发明还提供一种实时语音流切片分析系统,包括:
数据输入端,用于接收分析请求,并根据分析请求建立由多个缓冲区块首尾连接形成的环形缓冲区,数据输入端还用于持续接收语音流数据,当语音流数据达到预设值后,往环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入;
分析端,用于按照写入环形缓冲区的顺序连续读取缓冲区块的数据,当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积,分析端还用于调用分析程序对数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果。
在优选实施例中,实时语音流切片分析系统包括作为数据输入端的数据接收器、作为数据输入端和分析端的缓冲管理器、作为分析端的数据切分器、作为分析端的分析处理器和分析结果管理器,还包括有上下文管理器、流转发管理器。
本实施例提供的实时语音流切片分析系统使用Java语言编写,接收Websocket协议语音数据,分析结果发送到Kafka消息队列。
上下文管理器:上下文管理器负责该分析任务的上下文管理,各个组件可以通过该分析任务的任务标识,获取该分析任务的业务参数、过程数据等任务相关数据。
数据接收器:用于接收分析请求,对语音分析请求进行识别和处理,接收业务参数,对其进行校验和处理。并在分析请求接受后,生成分析上下文,上下文存放该语音分析的相关业务数据。在建立分析通道、建立缓冲区后,数据接收器还用于持续接收语音流数据。
流转发管理器:流转发管理器负责语音流的转发处理。流转发管理器根据业务的场景,建立对应的分析通道(如情感分析、ASR等)。数据接收器接收到的数据,将输入到流转发管理器,转发管理器将数据转发到各分析通道。
缓冲管理器:负责输入数据的缓冲处理,分析通道上建立由多个缓冲区块首尾连接形成的环形缓冲区,还用于当语音流数据达到预设值后,往环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入,缓冲管理器还用于按照写入环形缓冲区的顺序连续读取缓冲区块的数据,缓冲管理器的读写采用生产者-消费者多线程模型,生产者线程连续将数据写入缓冲区,消费线程持续从缓冲区读取数据。当消费线程已将数据全部读取,则消费线程挂起;生产者线程写入新的数据后,通知消费线程继续读取。缓冲管理器的读写采用生产者-消费者多线程模型,生产者线程连续将数据写入缓冲区,消费线程持续从缓冲区读取数据。当消费线程已将数据全部读取,则消费线程挂起;生产者线程写入新的数据后,通知消费线程继续读取。
数据切分器:负责缓冲数据的收集和切分,用于当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据块的时间戳超过预设的最大有效时间,则该数据块丢弃,累积的数据清空,重新进行累积。
分析处理器:用于获取当前上下文,并调用分析程序对数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果。析处理器采用同步处理方式,分析程序调用完成后,才进行下一个调用,避免发生分析程序过载的情况。分析处理器得到结果后,把分析结果传送到分析结果管理器。
分析结果管理器:对分析结果进行分类和转换。分析结果管理器负责分析结果的收集和分发。分析结果管理器接收到分析结果后,对结果进行分类和转换,转换结果发送到Kafka消息队列,供业务系统订阅使用。
参考图5,本发明提供的实时语音流切片分析系统中,数据接收器10接收实时语音流20,并将实时语音流20写入环形缓冲区30,数据切分器40用于当读取到的数据累积达到预设大小后,形成数据切片50,调用分析程序60对数据切片进行分析,分析结果在分析结果管理器70中消息队列。
本发明实施例还提供一种计算机设备,计算机设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一项实施例提到的实时语音流切片分析方法。其中,该计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSSMemory,随即存储器)、EPROM(EraSableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyEraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现的实时语音流切片分析方法。该计算机设备可以是可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器、处理器。
处理器在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制计算机设备的总体操作。本实施例中,处理器用于运行存储器中存储的程序代码或者处理数据,以实现上述实施例的业绩归属方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种实时语音流切片分析方法,其特征在于,包括如下步骤:
S1、接收分析请求;
S2、根据所述分析请求建立由多个缓冲区块首尾连接形成的环形缓冲区;
所述缓冲区块的个数满足如下条件:
其中, St为单位时间语音数据大小,t为缓冲音频持续时间,Sb为缓冲数据大小;
根据预设缓冲数据计算得到所述环形缓冲区占用空间,所述预设缓冲数据包括序号和时间戳,所述环形缓冲区占用空间满足如下条件:
其中,Ss为环形缓冲区占用空间;Sseq为预设缓冲数据的序号占用空间大小;Sts为缓冲数据的时间戳占用空间大小,n为缓冲区块的个数;
S3、持续接收语音流数据,当语音流数据达到预设值后,往所述环形缓冲区中进行写入,每写入一个缓冲区块,区块编号加1,写入计数器的值设置为当前区块号,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入;
S4、按照写入环形缓冲区的顺序连续读取缓冲区块的数据;
当读取计数器的值大于或等于写入计数器的值时,停止读取缓冲区块中的数据,停止读取后,若收到写入通知,继续进行读取环形缓冲区的数据;
每读取一个缓冲区块,区块编号加1,读取计数器的值设置为当前区块编号;
S5、当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据的时间戳超过预设的最大有效时间,则该数据丢弃,累积的数据清空,重新进行累积;
S6、调用分析程序对所述数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃;当正在处理的数据切片数量低于可同时处理的最大值时,新形成的数据切片可继续处理,并输出分析结果。
2.如权利要求1所述的实时语音流切片分析方法,其特征在于,当环形缓冲区中在预设时间内没有写入的操作,并且读取计数器的值等于写入计数器的值时,不再对数据切片进行处理分析,同时不再接收语音流数据。
3.如权利要求1所述的实时语音流切片分析方法,其特征在于,所述步骤S6中, 分析程序使用HTTP协议接收数据切片并返回结果,分析程序调用完成后,才进行下一个调用。
4.一种实时语音流切片分析系统,其特征在于,包括:
数据输入端,用于接收分析请求,并根据所述分析请求建立由多个缓冲区块首尾连接形成的环形缓冲区,
所述缓冲区块的个数满足如下条件:
其中, St为单位时间语音数据大小,t为缓冲音频持续时间,Sb为缓冲数据大小;
根据预设缓冲数据计算得到所述环形缓冲区占用空间,所述预设缓冲数据包括序号和时间戳,所述环形缓冲区占用空间满足如下条件:
其中,Ss为环形缓冲区占用空间;Sseq为预设缓冲数据的序号占用空间大小;Sts为缓冲数据的时间戳占用空间大小,n为缓冲区块的个数;
所述数据输入端还用于持续接收语音流数据,当语音流数据达到预设值后,往所述环形缓冲区中进行写入,每写入一个缓冲区块,区块编号加1,写入计数器的值设置为当前区块号,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入;
分析端,用于按照写入环形缓冲区的顺序连续读取缓冲区块的数据,当读取计数器的值大于或等于写入计数器的值时,停止读取缓冲区块中的数据,停止读取后,若收到写入通知,继续进行数据的读取环形缓冲区的数据;
每读取一个缓冲区块,区块编号加1,读取计数器的值设置为当前区块编号,
当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据的时间戳超过预设的最大有效时间,则该数据丢弃,累积的数据清空,重新进行累积,所述分析端还用于调用分析程序对所述数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果。
5.如权利要求4所述的实时语音流切片分析系统,其特征在于,包括作为所述数据输入端的数据接收器、作为数据输入端和分析端的缓冲管理器、作为分析端的数据切分器、作为分析端的分析处理器和分析结果管理器;
所述数据接收器用于接收分析请求,并在分析请求接受后,生成分析上下文;所述数据接收器还用于持续接收语音流数据;
所述缓冲管理器用于建立由多个缓冲区块首尾连接形成的环形缓冲区,还用于当语音流数据达到预设值后,往所述环形缓冲区中进行写入,当环形缓冲区写入到达缓冲区尾部的缓冲区块时,下一个缓冲区块作为写入的缓冲头部,继续写入,所述缓冲管理器还用于按照写入环形缓冲区的顺序连续读取缓冲区块的数据;
所述数据切分器用于当读取到的数据累积达到预设大小后,形成数据切片,若读取到的缓冲数据的时间戳超过预设的最大有效时间,则该数据丢弃,累积的数据清空,重新进行累积;
所述分析处理器用于获取当前上下文,并调用分析程序对所述数据切片进行处理分析,当正在处理分析的数据切片数量超过预设的可同时处理的最大值时,则该数据切片丢弃,对重新形成的数据切片进行处理分析,并输出分析结果;
所述分析结果管理器用于对分析结果进行分类和转换。
6.一种计算机设备,其特征在于,所述计算机设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的实时语音流切片分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211154852.7A CN115242735B (zh) | 2022-09-22 | 2022-09-22 | 一种实时语音流切片分析方法、系统及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211154852.7A CN115242735B (zh) | 2022-09-22 | 2022-09-22 | 一种实时语音流切片分析方法、系统及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242735A CN115242735A (zh) | 2022-10-25 |
CN115242735B true CN115242735B (zh) | 2022-12-16 |
Family
ID=83667598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211154852.7A Active CN115242735B (zh) | 2022-09-22 | 2022-09-22 | 一种实时语音流切片分析方法、系统及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242735B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868908A (zh) * | 2011-07-04 | 2013-01-09 | 哈尔滨融智达网络科技有限公司 | 高效流媒体播放方法和装置 |
CN114073098A (zh) * | 2020-04-28 | 2022-02-18 | 青岛海信传媒网络技术有限公司 | 流媒体同步方法及显示设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771865B (zh) * | 2009-01-07 | 2011-11-16 | 财团法人工业技术研究院 | 影音控制响应及频宽调适方法、服务器 |
CN101783941B (zh) * | 2009-09-15 | 2011-12-14 | 上海海事大学 | 一种基于ip网络的实时视频传输方法 |
CN103491426A (zh) * | 2013-08-31 | 2014-01-01 | 中山大学 | 一种iptv的视频点播系统 |
CN103581611A (zh) * | 2013-11-19 | 2014-02-12 | 北京兆维电子(集团)有限责任公司 | 基于路由服务器音视频录制的实现方法及路由服务器 |
CN108491333A (zh) * | 2018-03-21 | 2018-09-04 | 广州多益网络股份有限公司 | 环形缓冲区的数据写入方法、装置、设备及介质 |
-
2022
- 2022-09-22 CN CN202211154852.7A patent/CN115242735B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868908A (zh) * | 2011-07-04 | 2013-01-09 | 哈尔滨融智达网络科技有限公司 | 高效流媒体播放方法和装置 |
CN114073098A (zh) * | 2020-04-28 | 2022-02-18 | 青岛海信传媒网络技术有限公司 | 流媒体同步方法及显示设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115242735A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955807B (zh) | 一种任务处理系统及方法 | |
CN111510395A (zh) | 业务消息上报方法、装置、设备及介质 | |
CN111966289B (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN111277848B (zh) | 直播间互动消息的处理方法、装置、电子设备及存储介质 | |
CN113891114B (zh) | 转码任务调度方法及装置 | |
CN108418743B (zh) | 一种聊天室消息分发方法、装置及电子设备 | |
CN111522786A (zh) | 日志处理系统及方法 | |
CN109711323A (zh) | 一种实时视频流分析加速方法、装置和设备 | |
CN110620699A (zh) | 消息到达率确定方法、装置、设备和计算机可读存储介质 | |
CN112035534A (zh) | 一种实时大数据处理方法、装置及电子设备 | |
CN114223189A (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
CN113079062B (zh) | 一种资源调整方法、装置、计算机设备和存储介质 | |
CN115242735B (zh) | 一种实时语音流切片分析方法、系统及计算机设备 | |
CN111309442B (zh) | 微服务容器数量的调整方法、装置、系统、介质及设备 | |
CN112073327B (zh) | 一种抗拥塞的软件分流方法、装置及存储介质 | |
CN112040090A (zh) | 视频流处理方法、装置、电子设备和存储介质 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
CN116069774A (zh) | 基于无线超时智能分析的数据清洗方法、装置及介质 | |
CN113645585A (zh) | 一种物联网数据采集方法 | |
CN114090409A (zh) | 一种消息处理方法及装置 | |
CN112749204B (zh) | 一种读取数据的方法和装置 | |
CN112988417A (zh) | 消息处理方法、装置、电子设备及计算机可读介质 | |
CN114500398A (zh) | 一种处理器协同加速的方法、装置、设备及介质 | |
CN110119364B (zh) | 一种输入/输出批量提交的方法和系统 | |
CN112687293A (zh) | 一种基于机器学习及数据挖掘的智能坐席训练方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |