一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

上下文关联的语音处理方法及电子设备和存储介质与流程

2022-11-30 15:07:51 来源:中国专利 TAG:


1.本发明属于语音处理技术领域,尤其涉及一种上下文关联的语音处理方法及电子设备和存储介质。


背景技术:

2.在现有技术中,线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。
3.通用线程池技术,如java线程池,线程池其实就是一个存放线程的容器。调用线程池去执行并发任务时,从线程池中取出线程去执行任务,每个线程执行完任务,并不被销毁,而是被线程池回收,下一次继续执行任务,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。
4.发明人发现:在现有技术中虽然实现了任务的自动调度,但是对于存在上下文相关的业务,会存在线程安全问题,以及时序错乱问题,需要额外的机制保证同步和互斥,对于计算密集型业务(如语音处理),其执行线程个数匹配物理执行单元个数才能最大化并发量,而通用线程池往往会依据队列阻塞情况动态扩展。


技术实现要素:

5.本发明实施例旨在至少解决上述技术问题之一。
6.第一方面,本发明实施例提供一种上下文关联的语音处理方法,包括:对采集的外部声音进行开关门声音检测,判断所述外部声音是否为当前住户的开关门声;若所述外部声音为所述当前住户的开关门声,开启所述当前住户的摄像头进行上下文关联的语音处理。
7.第二方面,本发明实施例提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项上下文关联的语音处理方法。
8.第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项上下文关联的语音处理方法。
9.第四方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算
机执行时,使所述计算机执行上述任一项上下文关联的语音处理方法。
10.本发明实施例通过在创建任务的时候绑定上下文关系,并存放在公共队列中方便查找和执行,解决了上下文依赖的关系,并维护一个全局的标签映射表,以实现任务到执行线程的动态映射,对没有上下文依赖关系的业务并发执行。
附图说明
11.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1为本发明的上下文关联的语音处理方法的一实施例的流程图;
13.图2为本发明的上下文关联的语音处理方法的另一实施例的流程图;
14.图3为本发明的上下文关联的语音处理方法的又一实施例的流程图;
15.图4为本发明的上下文关联的语音处理方法的任务创建流程图;
16.图5为本发明的上下文关联的语音处理方法的任务执行流程图;
17.图6为本发明的上下文关联的语音处理方法的生产线程产生的标签队列示意图;
18.图7为本发明的上下文关联的语音处理方法的消费线程可能的处理时序示意图;
19.图8为本发明的电子设备的一实施例的结构示意图。
具体实施方式
20.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
22.本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
23.在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
24.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
25.本发明实施例提供一种上下文关联的语音处理方法,该方法可以应用于电子设备。电子设备可以是电脑、服务器或者其他电子产品等,本发明对此不作限定。
26.请参考图1,其示出了本发明一实施例提供的一种上下文关联的语音处理方法。
27.如图1所示,在步骤101中,创建语音任务,确认所述语音任务是否与上下文关联,基于是否上下文关联对所述语音任务填充标签,将带有标签的语音任务加入公共队列中,其中,所述语音任务由生产线程进行创建和装配;
28.在步骤102中,根据上下文关联关系,在所述公共队列中查找对应的目标语音任务,并执行所述目标语音任务,其中,所述目标语音任务由消费线程进行执行和分配;
29.在本实施例中,对于步骤101,创建新的语音task(任务),通过对语音任务添加tag(标签)来做标记,语音任务创建的时候绑定上下文关系,判断创建的语音任务是否与上下文关联,根据是否与上下文关联来对该语音任务填充标签,语音任务填充完标签之后将该语音任务存放至公共列队中,公共列队中拥有多个待执行的语音任务,通过查找公共列队中的语音任务来进行执行,方便执行端做查询操作,语音任务由生产线程进行创建和装配,生产线程数由实际业务需要产生,生产线程是依据处理的业务由业务方产生的,个数由用户依据具体业务量决定,可动态扩展。
30.之后,对于步骤102,语音任务通过生产线程确定上下文关系,当确定完上下文关系之后在公共队列语音任务中查找对应的目标语音任务,查找到目标语音任务后通过消费线程来对该目标语音任务进行执行该任务,目标语音任务通过消费线程来执行和分配消费线程依据上下文关系获取到目标任务并执行。
31.本技术实施例的方法通过在创建任务的时候绑定上下文关系,并存放在公共队列中方便查找和执行,解决了上下文依赖的关系,并维护一个全局的标签映射表,以实现任务到执行线程的动态映射,对没有上下文依赖关系的业务并发执行。
32.请参考图2,其示出了本发明一实施例提供的另一种上下文关联的语音处理方法。该流程图主要是对流程图图1中步骤101“确认所述语音任务是否与上下文关联,基于是否上下文关联对所述语音任务填充标签”进一步限定的步骤的流程图。
33.如图2所示,在步骤201中,当所述语音任务与上下文关联时,为所述语音任务填充与上下文关联并缓存好的同一个标签,其中,一个语音任务对应一个标签,所述一个标签至少被一个语音任务使用,同一标签对应的不同语音任务按产生时序顺序排列;
34.在步骤202中,当所述语音任务不与上下文关联时,为所述语音任务申请新的标签,并对所述新的标签进行缓存。
35.在本实施例中,对于步骤201,判断语音任务是否与上下文关联,当语音任务与上下文关联时,将该语音任务填充与上下文关联一至的语音任务对应的标签,并将该标签进行缓存,其中一个语音任务对应一个标签,一个标签至少被一个语音任务使用,同一标签对应的不同语音任务按产生时序顺序排列,例如,每个任务都必须带一个标签,同一个标签可
能被用在多个任务中,属于1对多的映射关系,同一个标签的多个任务需要保证顺序执行(上下文相关),不同标签的任务,不需要保证顺序执行;对于步骤202,判断语音任务是否与上下文关联,当语音任务不与上下文关联时,需要为该语音任务申请新的标签,并将新的标签进行缓存。
36.本技术实施例的方法通过为语音任务填充或申请对应的标签,并将同一标签对应的不同语音任务按产生时序顺序排列,可以解决时序错乱问题。
37.再请参考图3,其示出了本发明一实施例提供的另一种上下文关联的语音处理方法。该流程图主要是对流程图图1中步骤102“在所述公共队列中查找对应的目标语音任务,并执行所述目标语音任务”进一步限定的步骤的流程图。
38.如图3所示,在步骤301中,消费线程获取缓存好的标签,并根据所述缓存好的标签查找与所述缓存好的标签对应的目标语音任务;
39.在步骤302中,当查找到与所述缓存好的标签对应的目标语音任务,在全局标签表中进行登记,将所述标签对应的目标语音任务取出并执行语音任务,其中,所述全局标签表用于登记已经被消费线程领走的任务。
40.在本实施例中,对于步骤301,通过消费线程来获取缓存好的标签,并查找与该缓存好的标签对应的任务,消费线程个数是确定的,受限于具体的执行单元(在dsp上由系统创建),通过消费线程先获取缓存的标签,根据该缓存的标签来查找对应的目标语音任务,之后对于步骤302,当查找到与该缓存好的标签对应的目标语音任务,将该缓存好的标签在全局标签表中进行登记,同时将该缓存好的标签对应的目标语音任务从公共列队中提取出来,并通过消费线程来执行该目标语音任务,其中全局标签表用于登记已经被消费线程领走的任务,例如,到目标任务的话,先登记到全局的登记表中,代表目标标签的任务被领走,从公共列队中取出该目标任务,并执行该目标任务。
41.本技术实施例的方法通过查找与缓存好的标签对应的目标语音任务,并在全局标签表中进行登记,可以实现查找和执行公共列队中的目标任务时不会出现阻塞情况。
42.在一些可选的实施例中,按照具有同一标签的语音任务的产生时序顺序重新在公共队列中查找与已经执行完成的目标语音任务具有同一标签的新的目标语音任务,若在述公共队列中查找到具有同一标签的新的目标语音任务,则在全局标签表中进行登记,并将标签对应的目标语音任务提取出,并执行该目标语音任务,例如,根据执行过后的目标语音任务对应的标签,重新从公共队列中查找与该标签对应的目标语音任务,如果找到对应标签的目标语音任务时,先登记到全局的登记表中,提取该标签对应的目标语音任务,并执行该目标语音任务。
43.在一些可选的实施例中,若在公共队列中没有找到具有同一标签的新的目标语音任务时,则重新在公共队列中查找不在全局标签表登记的标签对应的目标语音任务,若在公共队列中没有查找到不在全局标签表登记的标签对应的目标语音任务时,则使消费线程进入等待状态,直至所述公共队列中出现新的目标语音任务,例如,如果在公共队列中没有找到对应标签的目标语音任务时,则重新从公共队列中按顺序查找不在全局登记表登记的标签对应的目标语音任务,如果在公共列队中没有找到对应标签的目标语音任务时,则消费线程进入等待状态,直至等待公共队列中有新的目标语音任务到来。
44.在一些可选的实施例中,将带有标签的语音任务加入公共队列后设置该语音任务
为待执行状态,等待需要提取对应的语音任务并执行该语音任务,通过消费线程来对语音任务进行提取和执行,其中带有标签的语音任务能够激活任意一个消费线程。
45.在一些可选的实施例中,同一个标签对应的语音任务可以在不同的消费线程执行且同一个标签对应的语音任务按照语音任务的产生时序顺序同一时刻只能在一个消费线程执行,同一个标签对应的目标语音任务并不一定会始终在同一个消费线程执行,但是保证同一个标签对应的目标语音任务同一时刻只在同一个消费线程中执行,如此在保证上下文关联的情况下,最大化并发执行。
46.需要说明的是,在本技术的技术方案中还提供另一种备选方案,前期采用的是分散式的调度策略,即每个消费线程维护一个队列,在生产线程创建标签时,依据消费线程的队列深度,评估消费线程繁忙程度,以此来决定绑定关系,提前确定绑定关系,其优点是逻辑和实现都简单,缺点是不够灵活,缺乏通用性;因为单纯通过队列深度无法有效评估线程的繁忙程度,无法准确预估任务的处理时间,评估依据不是很准确。会导致部分消费线程其队列虽然不是很深,但是其分配的都是耗时的业务,其队列末尾业务可能需要等待时间较长,进而影响整个系统的并发量。
47.需要说明的是,本技术不仅限于语音识别模型的处理,对于在dsp等特定的处理单元处理上下文相关的业务,以及在通用处理器上处理上下文相关的业务时,均可适用。
48.需要说明的是,本技术涉及两个概念,语音任务,是一段封装好的可执行的代码片段,用来完成一段具体的业务(如n帧音频的识别);标签,是全局唯一的标志,用来给任务做标志的标识物,每个任务都必须带一个标签,同一个标签可能被用在多个语音任务中,属于1对多的映射关系。同一个标签的多个语音任务需要保证顺序执行(上下文相关);不同标签的语音任务,不需要保证顺序执行。
49.请参考图4,其出示了本发明的上下文关联的语音处理方法的任务创建流程图。
50.如图4所示,生产线程和消费线程属于x对n(x是动态值,n是固定值)的关系,生产者线程是依据处理的业务由业务方产生的,个数由用户依据具体业务量决定,可动态扩展;在一个确定的系统中,消费者线程个数是固定的,受物理芯片的执行单元限制,如(高通8155p芯片)dsp部件上是2个物理执行单元,即2个消费线程。
51.步骤1:生产线程数由实际业务需要产生(图4示例包含两个线程),个数不确定。
52.步骤2:语音任务由生产者确定是否上下文相关,上下文相关的语音任务共用同一个标签。
53.步骤3:语音任务加入到一个公共消息队列,处于待执行状态,激活任意一个消费线程。
54.步骤4:语音任务存储是按产生时序顺序排列。
55.请参考图5,其出示了本发明的上下文关联的语音处理方法的任务执行流程图。
56.如图5所示,步骤1:消费线程个数是确定的,受限于具体的执行单元(在dsp上由系统创建)。
57.步骤2:消费线程先获取缓存的标签tag(第一次为空),依据标签tag查找对应的目标语音任务task。
58.步骤3:找到目标语音任务task的话,先登记到全局的登记表中,代表目标标签tag的目标语音任务task被领走。
59.步骤4:从队列中取出目标语音任务task,并执行目标语音任务task。
60.步骤5:依据执行过后的目标语音任务task对应的标签tag重新从队列中查找目标语音任务task。
61.步骤6:如果找到对应标签tag的目标语音任务task继续执行步骤3,未找到的话执行步骤7。
62.步骤7:重新从队列中顺序查找不在全局登记表登记标签tag对应的目标语音任务task。
63.步骤8:如果找到满足条件的目标语音任务task,继续执行步骤3。
64.步骤9:如果没有找到,则线程进入等待状态,等待队列中有新的任务到来。
65.请参考图6,其出示了本发明的上下文关联的语音处理方法的生产线程产生的标签队列示意图。
66.如图6所示,同一个标签tag对应的目标语音任务task并不一定会始终在同一个线程执行,但是保证同一个标签tag对应的目标语音任务task同一时刻只在同一个线程中执行(如图6标签tag2的处理,能保证线程x处理标签tag2的时候,线程y已经处理完了所有的标签tag2标志的目标语音任务task),如此在保证上下文相关的情况下,最大化并发执行。
67.如图6所示是3个生产线程,2个消费线程的映射关系,标签tag分别为(0、1、2、m、n),部分标签tag包含多个子任务(子任务是上下文相关的)。
68.请参考图7,其出示了本发明的上下文关联的语音处理方法的消费线程可能的处理时序示意图。
69.如图7所示,该处理时序不是固定的,图7只是其中一种可能的处理时序,由于是并发执行,语音任务task绑定的执行线程和task的执行顺序并不是固定的,而是实时动态调整的。
70.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
71.在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项上下文关联的语音处理方法。
72.在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项上下文关联的语音处理方法。
73.在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能
够执行上下文关联的语音处理方法。
74.图8是本技术另一实施例提供的执行上下文关联的语音处理方法的电子设备的硬件结构示意图,如图8所示,该设备包括:
75.一个或多个处理器810以及存储器820,图7中以一个处理器810为例。
76.执行上下文关联的语音处理方法的设备还可以包括:输入装置830和输出装置840。
77.处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
78.存储器820作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的上下文关联的语音处理方法对应的程序指令/模块。处理器810通过运行存储在存储器820中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例上下文关联的语音处理方法。
79.存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据上下文关联的语音处理设备的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至上下文关联的语音处理设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
80.输入装置830可接收输入的数字或字符信息,以及产生与上下文关联的语音处理设备的用户设置以及功能控制有关的信号。输出装置840可包括显示屏等显示设备。
81.所述一个或者多个模块存储在所述存储器820中,当被所述一个或者多个处理器810执行时,执行上述任意方法实施例中的上下文关联的语音处理方法。
82.上述产品可执行本技术实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本技术实施例所提供的方法。
83.本技术实施例的电子设备以多种形式存在,包括但不限于:
84.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
85.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等。
86.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
87.(4)其他具有数据交互功能的机载电子装置,例如安装上车辆上的车机装置。
88.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
89.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可
借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
90.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献