CN109920417B - 一种语音处理方法、装置、设备和存储介质 - Google Patents

一种语音处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN109920417B
CN109920417B CN201910123621.1A CN201910123621A CN109920417B CN 109920417 B CN109920417 B CN 109920417B CN 201910123621 A CN201910123621 A CN 201910123621A CN 109920417 B CN109920417 B CN 109920417B
Authority
CN
China
Prior art keywords
thread
cpu core
time
online cpu
consuming
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
Application number
CN201910123621.1A
Other languages
English (en)
Other versions
CN109920417A (zh
Inventor
宋夏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Shiyuan Electronics Thecnology Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201910123621.1A priority Critical patent/CN109920417B/zh
Publication of CN109920417A publication Critical patent/CN109920417A/zh
Application granted granted Critical
Publication of CN109920417B publication Critical patent/CN109920417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Selective Calling Equipment (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种语音处理方法、装置、设备和存储介质。该方法包括:接收到语音信息,则查找在线CPU核心和对应的运行线程列表;确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;调用目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。本发明实现了动态根据智能家电中在线CPU核心的占用情况,创建语音识别线程,以调整语音识别算法的计算策略,充分利用了CPU资源,优化了语音识别算法的计算速度,进而提高了语音识别速度。

Description

一种语音处理方法、装置、设备和存储介质
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种语音处理方法、装置、设备和存储介质。
背景技术
随着科技的快速发展,越来越多的智能家电增加有语音识别功能。为了加快语音识别速度,一般可采用多线程并行运行语音识别算法,以对语音信息进行识别处理。
目前,由于考虑到智能家电的功耗,智能家电中的中央处理器(CentralProcessing Unit,CPU)会动态的调整在线CPU核心的数量。但当在线CPU核心的数量较少时,会出现多个线程在同一个在线CPU核心上工作,多线程运行语音识别算法,因为线程的调度浪费额外的时间,导致减慢了语音识别算法的处理速度,进而降低了语音识别速度。
发明内容
有鉴于此,本发明提供一种语音处理方法、装置、设备和存储介质,提高语音识别速度。
第一方面,本发明实施例提供了一种语音处理方法,包括:
接收到语音信息,则查找在线CPU核心和对应的运行线程列表;
确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;
调用所述目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
进一步的,在所述接收到语音信息之前,还包括:
获取智能家电的所有预装应用;
对所述所有预装应用对应的线程信息进行分析,以确定耗时线程。
进一步的,所述对所述所有预装应用对应的线程信息进行分析,以确定耗时线程,包括:
获取每个线程的平均连续工作时间和平均重启时间间隔;
将至少满足如下条件之一的线程作为耗时线程:所述平均连续工作时间大于预设工作时间阈值,以及,所述平均重启时间间隔小于预设时间间隔阈值。
进一步的,至多一个所述在线CPU核心的运行线程列表中未包含有耗时线程,
所述确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心,包括:
获取每个所述在线CPU核心的运行线程列表中的耗时线程,并统计耗时线程数量;
确定所述耗时线程数量最少的在线CPU核心为目标在线CPU核心。
进一步的,至少两个所述在线CPU核心的运行线程列表中未包含有耗时线程,
所述确定运行线程中耗时线程数量最少的在线CPU核心为目标在线CPU核心,包括:
获取每个在线CPU核心的运行线程列表中所有运行线程的运行总时间,以确定每个在线CPU核心的当前占用率;
确定所述当前占用率小于预设占用率阈值的在线CPU核心为目标在线CPU核心。
进一步的,在所述调用所述目标在线CPU核心创建语音识别线程之前,还包括:
确定目标在线CPU核心数;
根据所述目标在线CPU核心数确定所要创建的语音识别线程数量。
进一步的,在所述调用所述目标在线CPU核心创建语音识别线程之后,还包括:
根据语音识别线程数量确定对应的线程模式,线程模式包括单线程模式和多线程模式;
采用所述线程模式运行语音识别算法。
进一步的,在所述调用所述目标在线CPU核心创建语音识别线程之后,还包括:
利用CPU亲和性函数,对所述语音识别线程和对应的目标在线CPU核心进行绑定。
第二方面,本发明实施例提供了一种语音处理装置,该装置包括:
查找模块,用于接收到语音信息,则查找在线CPU核心和对应的运行线程列表;
第一确定模块,用于确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;
调用模块,用于调用所述目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
进一步的,所述语音处理装置,还包括:
获取模块,用于获取智能家电的所有预装应用;
第二确定模块,用于对所述所有预装应用对应的线程信息进行分析,以确定耗时线程。
进一步的,所述第二确定模块,包括:
第一获取单元,用于获取每个线程的平均连续工作时间和平均重启时间间隔;
第一确定单元,用于将至少满足如下条件之一的线程作为耗时线程:所述平均连续工作时间大于预设工作时间阈值,以及,所述平均重启时间间隔小于预设时间间隔阈值。
进一步的,所述第一确定模块,包括:
第二获取单元,用于在至多一个所述在线CPU核心的运行线程列表中未包含有耗时线程,获取每个所述在线CPU核心的运行线程列表中的耗时线程,并统计耗时线程数量;
第二确定单元,用于确定所述耗时线程数量最少的在线CPU核心为目标在线CPU核心。
进一步的,所述第一确定模块,还包括:
第三获取单元,用于在至少两个所述在线CPU核心的运行线程列表中未包含有耗时线程,获取每个在线CPU核心的运行线程列表中所有运行线程的运行总时间,以确定每个在线CPU核心的当前占用率;
第三确定单元,用于确定所述当前占用率小于预设占用率阈值的在线CPU核心为目标在线CPU核心。
进一步的,所述语音处理装置,还包括:
第三确定模块,用于在所述调用所述目标在线CPU核心创建语音识别线程之前,确定目标在线CPU核心数;
第四确定模块,用于根据所述目标在线CPU核心数确定所要创建的语音识别线程数量。
进一步的,所述语音处理装置,还包括:
第五确定模块,用于在所述调用所述目标在线CPU核心创建语音识别线程之后,根据语音识别线程数量确定对应的线程模式,线程模式包括单线程模式和多线程模式;
运行模块,用于采用所述线程模式运行语音识别算法。
进一步的,所述语音处理装置,还包括:
绑定模块,用于在所述调用所述目标在线CPU核心创建语音识别线程之后,利用CPU亲和性函数,对所述语音识别线程和对应的目标在线CPU核心进行绑定。
第三方面,本发明实施例还提供了一种设备,包括:显示屏、存储器以及一个或多个处理器;
所述显示屏,用于显示智能家电的状态信息;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的语音处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的语音处理方法。
本发明通过在接收到语音信息时,查找在线CPU核心和对应的运行线程列表,然后运行线程列表中耗时线程数量最少的在线CPU核心确定为目标在线CPU核心,并调用目标在线CPU核心创建语音识别线程,并在语音识别线程中运行语音识别算法,以对语音信息进行识别处理,动态根据智能家电中在线CPU核心的占用情况,创建语音识别线程,以调整语音识别算法的计算策略,充分利用了CPU资源,优化了语音识别算法的计算速度,进而提高了语音识别速度。
附图说明
图1是本发明实施例一提供的一种语音处理方法的流程图;
图2是本发明实施例二提供的一种语音处理方法的流程图;
图3是本发明实施例三提供的一种语音处理方法的流程图;
图4是本发明实施例三提供的一种语音控制智能家电的结构示意图;
图5是本发明实施例四提供的一种语音处理装置的结构框图;
图6为本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种语音处理方法的流程图,实施例中提供的语音识别算法可以由智能家电执行,该智能家电包括两个或两个以上物理实体,或者为一个物理实体。例如,智能家电包括但不限于智能油烟机、智能空调、智能电视和智能热水器等。
如图1所示,该语音处理方法具体包括如下步骤:
S110、接收到语音信息,则查找在线CPU核心和对应的运行线程列表。
其中,语音信息是指用户向智能家电所发出的语音操作指令。在实施例中,语音信息的语种无需限定,比如,普通话、英文或者各种类型的方言;语音信息的语句排序、语句类型等也无需限定,比如,语音信息可以为“关闭风机”,或者语音信息为“将风量调大”等。
其中,在线CPU核心可以理解为保持在线工作的CPU核心。在实施例中,为了提高智能家电的计算能力,可在智能家电中配置有双核处理器、四核处理器或六核处理器等,对此并不进行限定。其中,双核处理器指的是一个处理器上集成两个运算核心,即一个CPU芯片上集成有两个CPU核心,以此类推,四核处理器就是一个CPU芯片上集成有四个CPU核心,六核处理器就是一个CPU芯片上集成有六个CPU核心。当然,每个处理器上所集成的两个或多个处理器核心的功能是相同的。比如,双核处理器即是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心,换句话说,双核处理器即是将两个物理处理器核心整合入一个核中。当然,为了避免CPU资源的浪费,以及减少智能家电的功耗,可将部分CPU核心处于离线状态。比如,智能油烟机配置有四核处理器,但此时只使用智能油烟机的灯光功能,可只需两个CPU核心或一个CPU核心保持在线工作状态,而其他的CPU核心处于离线状态,从而减少了智能油烟机的功耗和CPU资源的浪费。其中,运行线程列表可以理解为包含有至少一个运行线程的列表,需要理解的是,当用户语音控制智能家电时,在智能家电接收到用户发出的语音信息之后,智能家电对其配置的CPU核心进行扫描,以确定每个CPU核心的状态,并将处于工作中状态的CPU核心作为在线CPU核心,然后对每个在线CPU核心上的运行线程进行扫描确定,并对所有的运行线程进行统计,以构成运行线程列表。其中,运行线程是指在在线CPU核心上所运行的线程。当然,每个在线CPU核心上运行线程的数量是不确定的,对此并不进行限定。
S120、确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心。
其中,耗时线程是根据每个线程所占用CPU资源的多少而确定的。在实施例中,每个在线CPU核心上均会有多个运行线程,但为了提高智能家电对语音信息的识别速度,在创建语音识别线程时,需选取所占用CPU资源最小的在线CPU核心作为目标在线CPU核心,其中,目标在线CPU核心可以理解为处于空闲状态或即将空闲的CPU核心。其中,处于空闲状态可以理解为未包含有耗时线程的在线CPU核心;而即将空闲可以理解为虽未包含有耗时线程,但运行线程所占的CPU资源总和超过一定阈值(比如,CPU资源的70%)的在线CPU核心,因此,该在线CPU核心不是空闲的。但由于该在线CPU核心上未包含有耗时线程,则该在线CPU核心中的运行线程在短时间内将会结束,即该在线CPU核心即将空闲,则也可将该在线CPU核心认为是目标在线CPU核心。当然,在智能家电中的每个在线CPU核心上存在有多个耗时线程运行的情况,也存在没有耗时线程运行的情况。也可理解为,当智能家电的在线CPU核心为多个时,可以存在全部在线CPU核心上都有耗时线程运行的情况,也存在全部在线CPU核心均没有耗时线程运行的情况。为了便于说明这几种情况,该步骤可分为至多一个在线CPU核心的运行线程列表中未包含有耗时线程,以及至少两个在线CPU核心的运行线程列表中未包含有耗时线程这两种情况。
一个实施例中,当至多一个在线CPU核心的运行线程列表中未包含有耗时线程,步骤S120可包括步骤S1201-S1202,在此需要说明的是,当智能家电中有多个在线CPU核心,同时至多一个在线CPU核心中未包含有耗时线程,可对包含有耗时线程的在线CPU核心中耗时线程数量进行统计,以确定目标在线CPU核心。具体如下:
S1201、获取每个在线CPU核心的运行线程列表中的耗时线程,并统计耗时线程数量。
其中,耗时线程数量为每个在线CPU核心上所运行线程中耗时线程的数量。在实施例中,每个在线CPU核心上均运行多个线程,为了提高智能家电对线程的处理速度,可采用所有在线CPU核心对同一个算法创建多个线程,以并行运行该算法对应的多个线程。示例性地,以智能家电为智能油烟机为例,对目标在线CPU核心的确定进行说明。假设智能油烟机上配置有四核处理器,即智能油烟机包含有四个CPU核心,均为CPU核心11、CPU核心22、CPU核心33和CPU核心44,同时在智能油烟机上配置有语音识别功能,若该智能油烟机正在使用视频播放器对应的应用程序,以及四个CPU核心都处于在线工作状态,而其中CPU核心11、CPU核心22、CPU核心33和CPU核心44这四个在线CPU核心都在运行音视频的编解码线程,以及CPU核心11、、CPU核心22和CPU核心33还运行有网络通讯线程。由于每个视频的播放时长至少为几秒钟、几分钟甚至更长时间,则可认为在短时间内这四个在线CPU核心无法释放CPU资源,以及网络通讯线程由于需长时间与服务器建立通信连接,则可认为短时间内也无法释放CPU资源,此时可确定每个在线CPU核心上的耗时线程数量,即CPU核心11、CPU核心22、CPU核心33这三个在线CPU核心的运行线程列表中均包含有两个耗时线程,而CPU核心44的运行线程列表中的耗时线程数量为一个。
S1202、确定耗时线程数量最少的在线CPU核心为目标在线CPU核心。
在实施例中,在确定每个在线CPU核心上所运行的耗时线程数量之后,智能家电直接将耗时线程数量最小的在线CPU核心确定为目标在线CPU核心。示例性地,在步骤S1201中确定CPU核心44的运行线程列表中的耗时线程数量为一个,比其它三个在线CPU核心中的耗时线程数量少,则可将CPU核心44确定为目标在线CPU核心。
一个实施例中,当至少两个在线CPU核心的运行线程列表中未包含有耗时线程时,步骤S120可包括步骤S1203-S1204。在此需要说明的是,当智能家电中有多个在线CPU核心,同时至少两个在线CPU核心中均未包含有耗时线程,可对未包含有耗时线程的在线CPU核心中所有运行线程的运行总时间进行统计,以确定每个在线CPU核心的当前占用率,以根据当前占用率确定目标在线CPU核心。具体如下:
S1203、获取每个在线CPU核心的运行线程列表中所有运行线程的运行总时间,以确定每个在线CPU核心的当前占用率。
其中,运行总时间可以理解为单位时间内每个线程在在线CPU核心上从开始运行到结束运行所需要的总时长。需要理解的是,每个在线CPU核心中的所有运行线程均是交替运行的,即运行总时间可以为单位时间内每个在线CPU核心上除了***空闲线程之外的其它所有线程所需要的运行时间。示例性地,假设智能家电中的一个在线CPU核心55中运行有线程A、线程B、线程C三个运行线程,若线程A所需要的运行时间为200ms,而线程B所需要的运行时间为300ms,线程C所需要的运行时间为300ms,则在线CPU核心55的运行线程列表中所有运行线程在单位时间内的运行总时间为800ms。其中,占用率是根据单位时间内该CPU核心上除了***空闲线程之外其他所有线程的运行总时间与单位时间的比值。比如,单位时间为1秒钟,则在线CPU核心55的当前占用率为800ms/1s=0.8,则在线CPU核心55的当前占用率为80%。
S1204、确定所述当前占用率小于预设占用率阈值的在线CPU核心为目标在线CPU核心。
在实施例中,在确定单位时间内每个在线CPU核心中所有运行线程的运行总时间之后,智能家电对运行总时间进行统计分析,以确定每个在线CPU核心的当前占用率,以选取当前占用率小于预设占用率阈值的在线CPU核心为目标在线CPU核心。其中,预设占用率阈值为衡量在线CPU核心是否空闲的参数。比如,预设占用率阈值可为70%。当然,对预设占用率阈值的大小不进行限定,开发人员可根据智能家电的不同设备参数进行自行设定。示例性地,假设智能油烟机上有四个在线CPU核心,分别为CPU核心11、CPU核心22、CPU核心33和CPU核心44,其中,CPU核心11、CPU核心22这两个在线CPU核心上没有耗时线程,并且在单位时间内CPU核心11和CPU核心22的当前占用率分别为60%和40%,由于CPU核心11和CPU核心22的当前占用率均小于预设占用率阈值70%,则将CPU核心11和CPU核心22均确定为目标在线CPU核心。再如,假设CPU核心77和CPU核心88上均没有耗时线程,并且CPU核心77的当前占用率为80%,则CPU核心88的当前占用率为50%,由于CPU核心77的当前占用率大于预设占用率70%,则只将CPU核心88确定为目标在线CPU核心。
S130、调用目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
其中,语音识别线程是用来运行语音识别算法的线程。在实施例中,每个目标在线CPU核心上均有多个线程,为了对语音信息进行识别处理,需在目标在线CPU核心上创建语音识别线程,以运行语音识别算法,从而对语音信息进行识别处理。具体来说,假设目标在线CPU核心为至少两个时,则在每个目标在线CPU核心上创建一个语音识别线程,以并行运行语音识别算法,从而充分利用了CPU资源,并加快了语音识别速度。当然,若目标在线CPU核心只有一个时,则只在该目标在线CPU核心上创建一个语音识别线程,以运行语音识别算法,以避免同一个目标在线CPU核心上有多个语音识别线程,而导致存在线程调度的问题。
本实施例的技术方案,通过在接收到语音信息时,查找在线CPU核心和对应的运行线程列表,然后运行线程列表中耗时线程数量最少的在线CPU核心确定为目标在线CPU核心,并调用目标在线CPU核心创建语音识别线程,并在语音识别线程中运行语音识别算法,以对语音信息进行识别处理,动态根据智能家电中在线CPU核心的占用情况,创建语音识别线程,以调整语音识别算法的计算策略,充分利用了CPU资源,优化了语音识别算法的计算速度,进而提高了语音识别速度。
实施例二
图2是本发明实施例二提供的一种语音处理方法的流程图。本实施例是在上述实施例的基础上,对语音处理方法作进一步的说明。参考图2,该语音处理方法具体包括如下步骤:
S210、获取智能家电的所有预装应用。
在此需要说明的是,由于在智能家电出厂之后,用户不可对智能家电中的应用程序进行重新下载安装,因此为了使用户智能地对智能家电进行控制和使用,在智能家电出厂之前,开发人员需在智能家电中配置有该智能家电对应的应用程序。在智能家电的研发阶段,对智能家电中的所有预装应用进行获取,以确定每个预装应用中会长时间占用CPU资源的线程信息。
S220、对所有预装应用对应的线程信息进行分析,以确定耗时线程。
在实施例中,在获取到该智能家电中的所有预装应用之后,对每个预装应用对应的线程信息进行分析,以确定耗时线程,该步骤具体可包括步骤S2201-S2202:
S2201、获取每个线程的平均连续工作时间和平均重启时间间隔。
其中,平均连续工作时间可以理解为每个线程在CPU核心上连续工作的时长;平均重启时间间隔可以理解为每个线程在CPU核心上连续两次重新启动之间的时间间隔。在实施例中,每个线程在CPU核心上的连续工作时间是不固定的,以及两次重新启动之间的时间间隔也是不固定的,为了便于确定耗时线程,可对每个线程的平均连续工作时间和平均重启时间间隔进行获取。示例性地,假设线程A在CPU核心11上第一次连续工作时间为4秒,第二次连续工作时间为8秒,第三个连续工作时间为6秒,则可认为该线程A的平均连续工作时间为6秒。同样地,假设线程B在CPU核心22上第一次启动和第二次启动之间的时间间隔为6毫秒,第二次启动和第三次启动之间的时间间隔为10毫秒,第三次启动和第四次启动之间的时间间隔为5毫秒,则可认为线程B的平均重启时间间隔为7毫秒。
S2202、将至少满足如下条件之一的线程作为耗时线程:平均连续工作时间大于预设工作时间阈值,以及,平均重启时间间隔大于预设时间间隔阈值。
其中,预设工作时间阈值指的是判断是否为耗时线程的平均连续工作时间的一个临界值;预设时间间隔阈值指的是判断是否为耗时线程的平均重启时间间隔的一个临界值。示例性地,预设工作时间阈值可设置为5秒钟,预设时间间隔阈值可设置为10毫秒。需要理解的是,当一个线程的平均连续工作时间大于预设工作时间阈值时,就可认为该线程是耗时线程;同样地,当一个线程的平均重启时间间隔小于预设时间间隔阈值时,就可认为该线程是耗时线程。示例性地,步骤S2201中CPU核心11中线程A的平均连续工作时间为6s,该平均连续工作时间大于5秒,则线程A为耗时线程;而CPU核心22中线程B的平均重启时间间隔为7毫秒,该平均重启时间间隔小于10毫秒,则线程B是耗时线程。当然,并不对预设工作时间阈值和预设时间间隔阈值的具体数值进行限定,开发人员可根据智能家电的具体实际情况进行限定。
当然,在实施例中,也可通过智能家电的工作场景确定耗时线程。示例性地,假设智能油烟机处于烹饪场景,在此工作场景下用户不会长时间观看视频,虽然视频编解码线程在其它场景下会长时间占用CPU资源,但在烹饪场景下,视频编解码线程会很快被用户关闭,从而不占用CPU资源,此时在建立耗时线程数据库中,可将运行线程的平均连续工作时间和工作场景作为判断标准,以确定耗时线程。
S230、确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心。
S240、确定目标在线CPU核心数。
其中,目标CPU核心数可以理解为目标在线CPU核心的数量。在实施例中,目标在线CPU核心数是不固定的,其与当前在线CPU核心的运行线程列表中是否有耗时线程有关。具体来说,当一个在线CPU核心上没有耗时线程时,就可认为该在线CPU核心为目标在线CPU核心,当然,若智能家电中有多个在线CPU核心上没有耗时线程,则该多个在线CPU核心均可认为是目标在线CPU核心。其中,目标在线CPU核心数的确定过程可参考上述实施例的描述,在此不再赘述。
S250、根据目标在线CPU核心数确定所要创建的语音识别线程数量。
其中,语音识别线程数量为智能家电中所有在线CPU核心上所创建的语音识别线程的数量。在此需要注意的是,为了提高智能家电对语音信息的识别速度,并且避免在同一个在线CPU核心上创建多个语音识别线程,而在对语音信息进行识别处理时,因语音识别线程的调度而降低语音识别速度,在实施例中,语音识别线程数量与目标在线CPU核心数是相同的。可以理解为,在每个目标在线CPU核心上只创建一个语音识别线程。
S260、调用目标在线CPU核心创建语音识别线程。
在实施例中,在确定目标在线CPU核心之后,在每个目标在线CPU核心上创建一个对应的语音识别线程。示例性地,假设智能油烟机上的目标在线CPU核心为CPU核心11和CPU核心22,在CPU核心11和CPU核心22上分别创建一个语音识别线程,即智能油烟机上有两个语音识别线程。又如,假设智能油烟机上的目标在线CPU核心只有CPU核心88,则在CPU核心88上创建一个语音识别线程,即智能油烟机上只有一个语音识别线程。
S270、根据语音识别线程数量确定对应的线程模式。
其中,线程模式包括单线程模式和多线程模式。
在实施例中,线程模式用来确定一个进程中所运行的线程数量,其可包括单线程和多线程模式。其中,单线程模式就是一个进程中只有一个线程;而多线程模式就是一个进程中有多个线程。需要说明的是,当语音识别线程数量为一个时,就采用单线程模式;而当语音识别线程数量为两个或两个以上时,就采用多线程模式。
S280、采用线程模式运行语音识别算法。
在实施例中,在确定线程模式之后,对应的在线CPU核心上的语音识别线程采用该线程模式运行语音识别算法。具体来说,当采用单线程模式时,说明目标在线CPU核心数量为一个,直接才该目标在线CPU核心上创建对应的语音识别线程,以运行语音识别算法;当采用多线程模式时,说明目标在线CPU核心数量为两个或两个以上,则在每个目标在线CPU核心上创建一个语音识别线程,在目标在线CPU核心上并行运行该两个或两个以上的语音识别线程,以对语音识别算法进行计算,从而提高语音识别速度。
S290、对语音信息进行识别处理。
在实施例中,在通过每个语音识别线程对语音识别算法进行计算处理之后,对语音信息进行识别处理,以识别出用户发出的语音命令,并根据该语音命令对智能家电进行控制。
本实施例的技术方案,在上述实施例的基础上,获取每个线程的平均连续工作时间和平均重启时间间隔,并将平均连续工作时间大于预设工作时间阈值,和/或平均重启时间间隔小于预设时间间隔阈值的线程作为耗时线程,实现了在接收到用户的语音信息之后,直接将智能家电中的运行线程和耗时线程进行比对,就可确定目标在线CPU核心,以根据目标在线CPU核心的数量确定语音识别线程数量,然后根据语音识别线程数量确定对应的线程模式,以运行语音识别算法,从而充分利用了智能家电的CPU资源,以及优化了语音识别算法的计算速度。
在上述实施例的基础上,为了提高语音识别线程和目标在线CPU核心的亲密度,在步骤S260之后,该语音识别处理方法,还可包括:利用CPU亲和性函数,对语音识别线程和对应的目标在线CPU核心进行绑定。
其中,CPU亲和性函数为CPU Affinity函数。在实施例中,利用CPU亲和性函数对语音识别线程和对应的目标在线CPU核心进行绑定的过程在此不再赘述。需要说明的是,将语音识别线程和对应的目标在线CPU核心进行绑定,是为了提高该语音识别线程在该目标在线CPU核心上运行的概率。比如,语音识别线程A和目标在线CPU核心11进行绑定之后,其两者之间的亲和度为80;而语音识别线程A和目标在线CPU核心22未进行绑定,其两者之间的亲和度为20,则在创建语音识别线程A之后,自动在目标在线CPU核心11上运行该语音识别线程A。
实施例三
图3是本发明实施例三提供的一种语音处理方法的流程图。本实施例的技术方案是在上述实施例的基础上,作为一个优选实施例对语音处理方法进行说明。参考图3,该语音处理方法包括:
S310、获取智能家电的所有预装应用,建立耗时线程数据库。
其中,耗时线程数据库可以理解为包含有智能家电中所有预装应用对应的耗时线程的仓库。在实施例中,在智能家电的研发阶段,对该智能家电中的所有预装应用进行获取并分析,以分析得到会长时间占用CPU资源,或间隔很短时间频繁占用CPU资源的线程信息,比如,音、视频软件编解码线程,大数据量的网络通讯线程等,均可认为是耗时线程,在确定耗时线程之后,将所有的耗时线程存储至预先设置的耗时线程数据库中,以便于调取使用。对耗时线程的具体判断可参见上述实施例的描述,在此不再赘述。
S320、接收语音信息。
在实施例中,在智能家电对语音信息进行识别处理之前,智能家电会接收到一段用户发出的语音信息,以使智能家电对该语音信息进行识别处理。其中,语音信息对应的音频数据长度与语音识别算法的复杂度有关。比如,音频数据长度越长,其语音识别算法的复杂度就越高。在实施例中,将语音信息对应的音频数据长度设置为几百毫秒,比如,可为300毫秒。
图4是本发明实施例三提供的一种语音控制智能家电的结构示意图。如图4所示,在以某个用户的家中配置有智能油烟机301、智能空调302、智能电视303以及智能热水器304这四个终端设备,对语音控制智能家电进行具体说明。在用户300发出“关闭风机”的语音信息后,智能油烟机301、智能空调302、智能电视303以及智能热水器304这四个终端设备对该语音信息进行识别处理,以将该语音信息转换为智能家电预设设置的语音命令词,由于这四个终端设备中只有智能油烟机301保存有该语音信息对应的语音命令词,则智能油烟机301根据该语音命令词执行对应的操作,即关闭智能油烟机301的风机,而其它的终端设备不执行对应的操作。
S330、查找在线CPU核心和对应的运行线程列表。
在实施例中,对智能家电中的每个CPU核心进行轮询扫描,以确定在线CPU核心,然后对每个在线CPU核心进行轮询扫描,以获取每个在线CPU核心上的运行线程,并构成对应的运行线程列表。在确定运行线程列表之后,判断该运行线程列表中是否包含有步骤S310中的耗时线程,以及所包含的耗时线程的数量。其中,每个在线CPU核心均有一个运行线程列表,且每个运行线程列表是独立的,以便于对每个在线CPU核心上的耗时线程进行统计分析。
S340、确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心。
在实施例中,在确定每个在线CPU核心上的运行线程列表之后,确定每个在线CPU核心上的耗时线程数量,若其中一个在线CPU核心的运行线程列表中未包含有耗时线程,则直接将该在线CPU核心确定为目标在线CPU核心;若智能家电中的每个在线CPU核心上均有耗时线程时,则选取耗时线程数量最少的在线CPU核心为目标在线CPU核心。当然,也存在有两个或两个以上的在线CPU核心未包含有耗时线程,此时获取该两个或两个以上的在线CPU核心的当前占用率,并将当前占用率小于预设占用率阈值的在线CPU核心确定为目标在线CPU核心,可以理解为,若该两个或两个以上的在线CPU核心的当前占用率均小于预设占用率阈值,则将该两个或两个以上的在线CPU核心均确定为目标在线CPU核心;若只有一个在线CPU核心的当前占用率小于预设占用率阈值,则将该一个在线CPU核心确定为目标在线CPU核心。
S350、调用目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
在实施例中,在确定目标在线CPU核心之后,根据目标在线CPU核心数量确定语音识别线程数量,并在每个语音识别线程中运行语音识别算法,以对语音信息进行识别处理。
本实施例的技术方案,动态根据在线CPU核心的占用情况,创建语音识别线程,然后通过语音识别线程对语音识别算法进行计算,以对语音信息进行识别处理,从而实现了在不影响CPU功耗的情况下充分利用了CPU资源,优化了语音识别算法的计算速度,进而优化了语音识别速度。
实施例四
图5是本发明实施例四提供的一种语音处理装置的结构框图。本实施例的语音处理装置可配置于智能家电中,参考图5,该语音处理装置包括:查找模块410、第一确定模块420和调用模块430。
其中,查找模块410,用于接收到语音信息,则查找在线CPU核心和对应的运行线程列表;
第一确定模块420,用于确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;
调用模块430,用于调用目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
本实施例的技术方案,在接收到语音信息时,查找在线CPU核心和对应的运行线程列表,然后运行线程列表中耗时线程数量最少的在线CPU核心确定为目标在线CPU核心,并调用目标在线CPU核心创建语音识别线程,并在语音识别线程中运行语音识别算法,以对语音信息进行识别处理,动态根据智能家电中在线CPU核心的占用情况,创建语音识别线程,以调整语音识别算法的计算策略,充分利用了CPU资源,优化了语音识别算法的计算速度,进而提高了语音识别速度。
在上述实施例的基础上,语音处理装置,还包括:
获取模块,用于获取智能家电的所有预装应用;
第二确定模块,用于对所有预装应用对应的线程信息进行分析,以确定耗时线程。
在上述实施例的基础上,第二确定模块,包括:
第一获取单元,用于获取每个线程的平均连续工作时间和平均重启时间间隔;
第一确定单元,用于将至少满足如下条件之一的线程作为耗时线程:平均连续工作时间大于预设工作时间阈值,以及,所述平均重启时间间隔小于预设时间间隔阈值。
在上述实施例的基础上,第一确定模块420,包括:
第二获取单元,用于在至多一个在线CPU核心的运行线程列表中未包含有耗时线程,获取每个在线CPU核心的运行线程列表中的耗时线程,并统计耗时线程数量;
第二确定单元,用于确定耗时线程数量最少的在线CPU核心为目标在线CPU核心。
在上述实施例的基础上,第一确定模块420,还包括:
第三获取单元,用于在至少两个在线CPU核心的运行线程列表中未包含有耗时线程,获取每个在线CPU核心的运行线程列表中所有运行线程的运行总时间,以确定每个在线CPU核心的当前占用率;
第三确定单元,用于确定所述当前占用率小于预设占用率阈值的在线CPU核心为目标在线CPU核心。
在上述实施例的基础上,语音处理装置,还包括:
第三确定模块,用于在调用目标在线CPU核心创建语音识别线程之前,确定目标在线CPU核心数;
第四确定模块,用于根据目标在线CPU核心数确定所要创建的语音识别线程数量。
在上述实施例的基础上,语音处理装置,还包括:
第五确定模块,用于在调用目标在线CPU核心创建语音识别线程之后,根据语音识别线程数量确定对应的线程模式,线程模式包括单线程模式和多线程模式;
运行模块,用于采用线程模式运行语音识别算法。
在上述实施例的基础上,语音处理装置,还包括:
绑定模块,用于在调用目标在线CPU核心创建语音识别线程之后,利用CPU亲和性函数,对语音识别线程和对应的目标在线CPU核心进行绑定。
上述语音处理装置可执行本发明任意实施例所提供的语音处理方法,具备执行方法相应的功能模块和有益效果。
实施例五
图6为本发明实施例五提供的一种设备的结构示意图。该设备包括:处理器510、存储器520、输入装置530、输出装置540以及显示屏550。该设备可为智能家电,该设备中处理器510的数量可以是一个或者多个,图6中以一个处理器510为例。该设备中存储器520的数量可以是一个或者多个,图6中以一个存储器520为例。该设备的处理器510、存储器520、输入装置530、输出装置540以及显示屏550可以通过总线或者其他方式连接,图6中以通过总线连接为例。实施例中,智能家电可以为智能油烟机、智能空调、智能电视、智能热水器等。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的智能家电对应的程序指令/模块(例如,语音处理装置中的查找模块410、第一确定模块420和调用模块430)。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或者字符信息,以及产生与智能家电的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置540可以包括扬声器等音频设备。需要说明的是,输入装置530和输出装置540的具体组成可以根据实际情况设定。
显示屏550可以为具有触摸功能的显示屏550,其可以是电容屏、电磁屏或红外屏。一般而言,显示屏550用于根据处理器510的指示显示数据,例如显示智能家电的状态信息,比如,用于显示电量信息、所处工作模式等信息,还用于接收作用于显示屏550的触摸操作,比如,在智能家电为油烟机时,可为调大风量、切换工作模式等选项,并将相应的信号发送至处理器510或其他装置。
处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的语音处理方法。
上述提供的设备可用于执行上述任意实施例提供的语音处理方法,具备相应的功能和有益效果。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种语音处理方法,包括:
接收到语音信息,则查找在线CPU核心和对应的运行线程列表;
确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;
调用目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的语音处理方法操作,还可以执行本发明任意实施例所提供的语音处理方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的语音处理方法。
值得注意的是,上述语音处理装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种语音处理方法,其特征在于,包括:
获取智能家电的所有预装应用;
对所述所有预装应用对应的线程信息进行分析,以确定耗时线程;
接收到语音信息,则查找在线CPU核心和对应的运行线程列表;
确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;
调用所述目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
2.根据权利要求1所述的语音处理方法,其特征在于,所述对所述所有预装应用对应的线程信息进行分析,以确定耗时线程,包括:
获取每个线程的平均连续工作时间和平均重启时间间隔;
将至少满足如下条件之一的线程作为耗时线程:所述平均连续工作时间大于预设工作时间阈值,以及,所述平均重启时间间隔小于预设时间间隔阈值。
3.根据权利要求1所述的语音处理方法,其特征在于,至多一个所述在线CPU核心的运行线程列表中未包含有耗时线程,
所述确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心,包括:
获取每个所述在线CPU核心的运行线程列表中的耗时线程,并统计耗时线程数量;
确定所述耗时线程数量最少的在线CPU核心为目标在线CPU核心。
4.根据权利要求1所述的语音处理方法,其特征在于,至少两个所述在线CPU核心的运行线程列表中未包含有耗时线程,
所述确定运行线程中耗时线程数量最少的在线CPU核心为目标在线CPU核心,包括:
获取每个在线CPU核心的运行线程列表中所有运行线程的运行总时间,以确定每个在线CPU核心的当前占用率;
确定所述当前占用率小于预设占用率阈值的在线CPU核心为目标在线CPU核心。
5.根据权利要求1所述的语音处理方法,其特征在于,在所述调用所述目标在线CPU核心创建语音识别线程之前,还包括:
确定目标在线CPU核心数;
根据所述目标在线CPU核心数确定所要创建的语音识别线程数量。
6.根据权利要求5所述的语音处理方法,其特征在于,在所述调用所述目标在线CPU核心创建语音识别线程之后,还包括:
根据语音识别线程数量确定对应的线程模式,线程模式包括单线程模式和多线程模式;
采用所述线程模式运行语音识别算法。
7.根据权利要求1所述的语音处理方法,其特征在于,在所述调用所述目标在线CPU核心创建语音识别线程之后,还包括:
利用CPU亲和性函数,对所述语音识别线程和对应的目标在线CPU核心进行绑定。
8.一种语音处理装置,其特征在于,包括:
获取模块,用于获取智能家电的所有预装应用;
第二确定模块,用于对所述所有预装应用对应的线程信息进行分析,以确定耗时线程;
查找模块,用于接收到语音信息,则查找在线CPU核心和对应的运行线程列表;
第一确定模块,用于确定运行线程列表中耗时线程数量最少的在线CPU核心为目标在线CPU核心;
调用模块,用于调用所述目标在线CPU核心创建语音识别线程,对语音信息进行识别处理。
9.一种设备,其特征在于,包括:显示屏、存储器以及一个或多个处理器;
所述显示屏,用于显示智能家电的状态信息;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的语音处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的语音处理方法。
CN201910123621.1A 2019-02-18 2019-02-18 一种语音处理方法、装置、设备和存储介质 Active CN109920417B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910123621.1A CN109920417B (zh) 2019-02-18 2019-02-18 一种语音处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910123621.1A CN109920417B (zh) 2019-02-18 2019-02-18 一种语音处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109920417A CN109920417A (zh) 2019-06-21
CN109920417B true CN109920417B (zh) 2021-05-18

Family

ID=66961856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910123621.1A Active CN109920417B (zh) 2019-02-18 2019-02-18 一种语音处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109920417B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157105A (ja) * 2008-12-26 2010-07-15 Toshiba Corp モデル検査用プログラム作成装置
CN103365718A (zh) * 2013-06-28 2013-10-23 贵阳朗玛信息技术股份有限公司 一种线程调度方法、线程调度装置及多核处理器***
CN107526640A (zh) * 2017-08-17 2017-12-29 广东欧珀移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157105A (ja) * 2008-12-26 2010-07-15 Toshiba Corp モデル検査用プログラム作成装置
CN103365718A (zh) * 2013-06-28 2013-10-23 贵阳朗玛信息技术股份有限公司 一种线程调度方法、线程调度装置及多核处理器***
CN107526640A (zh) * 2017-08-17 2017-12-29 广东欧珀移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN109920417A (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN113168304A (zh) 有条件地将各种自动助理功能分配给与***助理控制设备的交互
CN109688036B (zh) 一种智能家电的控制方法、装置、智能家电和存储介质
CN110308782B (zh) 功耗预测、控制方法、设备及计算机可读存储介质
CN110875041A (zh) 语音控制方法、装置及***
CN111091813B (zh) 语音唤醒模型更新及唤醒方法、***、装置、设备及介质
CN110808044B (zh) 智能家居设备语音控制方法、装置、电子设备及存储介质
JP7017598B2 (ja) スマートデバイスのデータ処理方法、装置、機器及び記憶媒体
JP7262532B2 (ja) 音声インタラクティブの処理方法、装置、電子機器、記憶媒体及びプログラム
CN111192590B (zh) 语音唤醒方法、装置、设备及存储介质
KR20220165777A (ko) 사용자가 현재 사용자 입력을 완료하기 위한 특정 자동완성 제안을 선택하기 전에 실행가능한 요청의 이행
CN111367828B (zh) 内存压缩方法、装置、终端及存储介质
CN114174972B (zh) 用于复杂应用gui的自动化助理控制的压缩口头话语
JP2022518127A (ja) リソーススケジューリング方法及び装置、電子デバイス並びに記録媒体
CN109360551B (zh) 一种语音识别方法及装置
CN112908321A (zh) 设备控制方法、装置、存储介质及电子装置
JP2013545158A (ja) 性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法
CN112233676A (zh) 智能设备唤醒方法、装置、电子设备及存储介质
CN111782409A (zh) 任务处理、风险识别任务处理方法、装置及电子设备
CN112925634A (zh) 异构资源调度方法和***
CN109920417B (zh) 一种语音处理方法、装置、设备和存储介质
CN116661964A (zh) 任务处理方法、装置及电子设备
CN112575512B (zh) 一种基于语音识别调整洗衣机洗涤参数的方法和装置
CN109062396B (zh) 用于控制设备的方法和装置
CN107870809B (zh) 应用关闭方法、装置、存储介质及电子设备
CN113383311A (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
TA01 Transfer of patent application right

Effective date of registration: 20200403

Address after: 510530 Guangdong city of Guangzhou province YUNPU Whampoa district four Road No. 6

Applicant after: Guangzhou Shiyuan Electronic Technology Company Limited

Address before: 510530, No. four, 6, Po Po Road, Yun Po Industrial Zone, Whampoa District, Guangzhou, Guangdong

Applicant before: Guangzhou Shiyuan Electronic Technology Company Limited

Applicant before: GUANGZHOU RUIXIN ELECTRONICS Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant