本发明涉及语音识别技术领域,具体而言,涉及一种语音识别方法、装置、计算机可读存储介质以及处理器。
背景技术:
可控制的一句话语音识别常见于智能家居、语音助手等场景中。例如,用户使用遥控器或手机进行语音输入,先按键(或按住按钮)开始录音,然后可以说出指令,最后再次按键(或松开按钮)结束录音,过程中将录音以base64等方式压缩,流式分片发送给语音识别服务器进行语音识别。
一般的端云协同语音识别的方案的目标多为提升识别效果,将音频同时发送给端侧和云侧识别;或通过云端更新本地模型识别;或解决网络异常情况下的识别,根据网络信号强度选择本地或云端识别。
例如,现有技术一般需要端云同时处理,处理时长一般受限于云服务器的处理能力,云服务器的处理时长比本地客户端慢,且所有语音识别的请求均发送给云服务器,会导致云服务器的压力较大。而不需要云服务器处理的方案,一般在检测网络不好时才会仅调用本地客户端,在网络正常时仍会使用云服务器进行处理。
针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种语音识别方法、装置、计算机可读存储介质以及处理器,以至少解决现有技术均需要端和云同时进行一些操作或处理才能实现语音识别的技术问题。
根据本发明实施例的一个方面,提供了一种语音识别方法,包括:确定语音指令的音频时长;根据所述音频时长和预设音频时长,确定所述语音指令的识别方式,其中,所述识别方式包括以下至少之一:端侧识别、云侧识别;依据所述语音指令的识别方式对所述语音指令进行识别。
可选地,根据所述音频时长和预设音频时长,确定所述语音指令的识别方式包括:判断所述音频时长是否大于所述预设音频时长;在所述音频时长小于等于所述预设音频时长的情况下,则所述语音指令的识别方式为端侧识别;在所述音频时长大于所述预设音频时长的情况下,则所述语音指令的识别方式为云侧识别。
可选地,所述语音指令的识别方式为端侧识别,依据所述语音指令的识别方式对所述语音指令进行识别包括:在端侧对所述语音指令进行语法识别;接收所述端侧的语法识别结果。
可选地,在接收所述端侧的语法识别结果之后,所述方法还包括:判断所述端侧的语法识别结果的置信度是否小于预设置信度;在所述置信度小于所述预设置信度时,将所述语音指令发送给云侧进行自由说识别;接收所述云侧的自由说识别结果。
可选地,所述语音指令的识别方式为云侧识别,依据所述语音指令的识别方式对所述语音指令进行识别包括:将所述语音指令发送给云侧进行自由说识别;接收所述云侧的自由说识别结果。
可选地,所述方法还包括:在依据所述语音指令的识别方式对所述语音指令进行识别后,得到识别结果,根据所述识别结果,执行所述语音指令。
根据本发明实施例的另一方面,还提供了一种语音识别装置,包括:第一确定模块,用于确定语音指令的音频时长;第二确定模块,用于根据所述音频时长和预设音频时长,确定所述语音指令的识别方式,其中,所述识别方式包括以下至少之一:端侧识别、云侧识别;识别模块,用于依据所述语音指令的识别方式对所述语音指令进行识别。
可选地,所述第二确定模块包括:第一判断单元,用于判断所述音频时长是否大于所述预设音频时长;第一处理单元,用于在所述音频时长小于等于所述预设音频时长的情况下,则所述语音指令的识别方式为端侧识别;第二处理单元,用于在所述音频时长大于所述预设音频时长的情况下,则所述语音指令的识别方式为云侧识别。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的语音识别方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的语音识别方法。
在本发明实施例中,采用确定语音指令的音频时长;根据所述音频时长和预设音频时长,确定所述语音指令的识别方式,其中,所述识别方式包括以下至少之一:端侧识别、云侧识别;依据所述语音指令的识别方式对所述语音指令进行识别的方式,通过对音频时长的判断,选择相适应的语音指令的识别方式,对语音指令进行识别,达到了对不同音频时长的语音指令进行识别的目的,从而实现了缩短系统平均响应时间,提高语音识别效果,减轻云服务器访问压力的技术效果,同时也解决了现有技术均需要端和云同时进行一些操作或处理才能实现语音识别的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的语音识别方法的流程图;
图2是根据本发明可选实施例的语音识别方法的流程图;
图3是根据本发明实施例的语音识别装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,下面对本发明中出现的部分名词或术语进行详细说明。
端云协同:是一种客户端和云服务端协同处理完成任务的方法。其中“端”一般指的是本地客户端,“云”一般指的是云服务端。
语音识别:是一种将音频中的说话人声音转换为文字的人工智能技术。其中,语音识别至少包括语法识别、自由说识别等方式。
可控制的一句话语音识别:特指一种由用户控制语音音频的起始和结束,音频时长相对较短,一般为一句话左右的语音识别场景。
语法识别:是一种语音识别的方式,仅能识别出指定语法文件内的词汇。该方式一般识别的是短语或控制指令的用户语音,识别范围窄,但范围内的识别效果相对较好,识别速度快。
自由说识别:是一种语音识别的方式,不限定用户说话范围,可以识别出用户自由说出的词汇。该方式一般识别的是不限定范围的用户语音,使用较大语言模型,因计算量大,识别范围广,识别速度相对语法识别较慢一些。
sdk:即软件开发工具包(softwaredevelopmentkit,简称为sdk),是指为特定的软件包等建立应用软件时的开发工具的集合。在本发明实施例中,特指一种集成了语法识别技术和语音识别控制逻辑的应用软件包集合。
实施例1
根据本发明实施例,提供了一种语音识别方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的语音识别方法的流程图,如图1所示,该方法包括如下步骤:
步骤s102,确定语音指令的音频时长;
作为一种可选的实施例,在确定语音指令的音频时长之前还包括:采集语音指令。在具体实施过程中,可以采用多种方式采集语音指令,例如,可以在端侧设置音频采集模块,利用该音频采集模块采集语音指令,还可以通过与端侧通信连接的设备,采集语音指令,其中,与端侧通信连接的设备包括但不限于有线或者无线的拾音设备,例如,麦克风等。
作为一种可选的实施例,在确定语音指令的音频时长之前还包括:对采集语音指令进行预处理,其中,该预处理至少包括语音去噪、语音增强、语音合并等。通过对采集语音指令进行预处理,可以降低环境噪声,声音重复等对语音指令的不利影响,使得处理后的语音指令更加清楚、准确。
步骤s104,根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;
作为一种可选的实施例,可以将音频时长和预设音频时长进行比较,从而确定语音指令的识别方式;例如,在音频时长小于等于预设音频时长的情况下,则语音指令的识别方式为端侧识别;在音频时长大于预设音频时长的情况下,则语音指令的识别方式为云侧识别。此时,语音指令的识别方式的选择与音频时长密切相关。
步骤s106,依据语音指令的识别方式对语音指令进行识别。
需要说明的是,可以利用端侧识别和/或云侧识别对语音指令进行识别。上述语音指令可以是全部或者部分的语音指令。
上述方法可应用于智能家居、语音助手等可控制的一句话语音识别的应用场景。
通过上述步骤,可以实现采用确定语音指令的音频时长;根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;依据语音指令的识别方式对语音指令进行识别的方式,通过对音频时长的判断,选择相适应的语音指令的识别方式,对语音指令进行识别,达到了对不同音频时长的语音指令进行识别的目的,从而实现了缩短系统平均响应时间,提高语音识别效果,减轻云服务器访问压力的技术效果,同时也解决了现有技术均需要端和云同时进行一些操作或处理才能实现语音识别的技术问题。
可选地,根据音频时长和预设音频时长,确定语音指令的识别方式包括:判断音频时长是否大于预设音频时长;在音频时长小于等于预设音频时长的情况下,则语音指令的识别方式为端侧识别;在音频时长大于预设音频时长的情况下,则语音指令的识别方式为云侧识别。
在上述实施方式中,通过对音频时长的判断来选择语音指令的识别方式,在具体实施过程中,首先,需要判断音频时长是否大于预设音频时长;其次,根据判断结果来确定语音指令的识别方式,一般会存在以下情况:如果在音频时长小于等于预设音频时长的情况下,则可以语音指令的识别方式为端侧识别;如果在音频时长大于预设音频时长的情况下,则可以语音指令的识别方式为云侧识别。
需要说明的是,上述端侧识别是在本地客户端进行识别,其中,本地客户端包括但不限于控制器,智能手机,平板,笔记本等;上述云侧识别是在云服务器进行识别,其中,该云服务器可以为高性能的云服务器。
可选地,上述语音指令的识别方式为端侧识别,依据语音指令的识别方式对语音指令进行识别包括:在端侧对语音指令进行语法识别;接收端侧的语法识别结果。
在端侧对语音指令进行语法识别能够识别出指定语法文件内的词汇,例如,短语或控制指令的用户语音。需要说明的是,上述识别方法的识别范围窄,但在预定识别范围内的识别效果相对较好,识别速度快。
在接收端侧的语法识别结果过程中,该端侧的语法识别结果包括:好与不好。如果语音指令在端侧的预定识别范围内,则端侧的语法识别结果的置信度较高,识别效果较好;如果语音指令不在端侧的预定识别范围内,则端侧的语法识别结果的置信度较低,识别效果也就不好。在具体实施过程中,上述端侧的语法识别结果的好与坏,与端侧的语法识别结果的置信度相关。
作为一种可选的实施例,如果在音频时长小于等于预设音频时长的情况下,则可以语音指令的识别方式为端侧识别;利用端侧对语音指令进行语法识别,从而得到相应的语法识别结果。通过上述实施方式,对于常见的语音指令,例如,短语或控制指令的用户语音等,均可以在端侧通过语法识别处理,可以有效提高常见短语音请求的处理能力,缩短平均响应时间,从而提高语音系统整体的处理效率。另外,有识别结果的短语音不再发送给云侧处理,可以有效减轻云侧访问压力。
可选地,在接收端侧的语法识别结果之后,上述方法还包括:判断端侧的语法识别结果的置信度是否小于预设置信度;在置信度小于预设置信度时,将语音指令发送给云侧进行自由说识别;接收云侧的自由说识别结果。
在端侧对语音指令进行语法识别,得到端侧的语法识别结果,进而对端侧的语法识别结果的置信度进行判断;如果语法识别结果的置信度小于预设置信度,再将语音指令发送给云侧进行自由说识别,并接收云侧的自由说识别结果。
通过上述实施方式,可以在端侧无法识别或者识别效果不好的情况下,利用云侧对语音指令进行自由说识别,由于自由说识别不受限于识别范围,可以对端侧无法识别或者识别效果不好的语音指令进行识别,从而进一步提高语音识别效果。
可选地,上述语音指令的识别方式为云侧识别,依据语音指令的识别方式对语音指令进行识别包括:将语音指令发送给云侧进行自由说识别;接收云侧的自由说识别结果。
作为一种可选的实施例,如果在音频时长大于预设音频时长的情况下,则可以语音指令的识别方式为云侧识别;利用云侧对语音指令进行自由说识别,从而得到相应的语法识别结果。由于语音指令的音频时长超出了端侧的识别能力,通过上述实施方式,可以在端侧无法识别或者识别效果不好的情况下,利用云侧对语音指令进行自由说识别,由于自由说识别不受限于语音指令的音频时长,可以对端侧无法识别或者识别效果不好的语音指令进行识别,从而进一步提高语音识别效果。
可选地,上述方法还包括:在依据语音指令的识别方式对语音指令进行识别后,得到识别结果,根据识别结果,执行语音指令。
需要说明的是,上述识别结果可以是端侧的语法识别结果,可以是云侧的自由说识别结果,还可以是包括上述两种的识别结果。在具体实施过程中,可以根据实际应用场景执行识别结果对应的语音指令。
下面对本发明一种可选的实施方式进行详细说明。
作为一种可选的实施方式,在可控制的一句话语音识别场景下,对于音频时长相对短的语音,直接使用本地客户端的语法识别结果,响应时间更快,识别结果更准确,且不需要再发送给云服务器进行语音识别,减轻云服务器的压力。图2是根据本发明可选实施例的语音识别方法的流程图,如图2所示,该语音识别方法至少包括端侧sdk(相当于上述端侧识别)和云侧服务(相当于上述云侧识别)。具体实施过程如下:
在端侧sdk中,除一般的音频采集等模块外,还集成了语法识别技术和语音识别控制逻辑。
音频录音完成后,先判断音频时长是否大于指定值。该指定值可以根据业务测试情况,结合端侧语音发送情况给出,例如使用http协议分片发送请求,500ms一个分片,平均音频时长为3s,则该指定值可以设置为1s。
如果音频时长不大于指定值,则优先使用端侧语法识别进行处理。语法识别对于已指定范围内的语音识别效果相对较好,识别速度快,而对于非指定范围内的语音,识别结果相对的置信度阈值较低,此时不再采用端侧的识别结果。
如果音频时长大于指定值,或端侧语法识别的置信度较低,则继续使用云侧自由说识别进行处理。
这样对于常见的请求可以做在端侧通过语法识别处理,极大程度上提高常见短语音请求的处理能力,缩短平均响应时间,从而提高语音系统整体的处理效率。另外,有识别结果的短语音不再发送给云侧处理,可以有效减轻云侧访问压力。
相比于现有技术均需要端和云同时进行一些操作或处理,本发明的实施方式可以在本地客户端进行音频的时长判断,直接在端侧进行语音识别,常见短语音的识别不用再发送给云侧,缩短系统平均响应时间,提高语音识别效果,减轻云服务器访问压力。
实施例2
根据本发明实施例的另外一个方面,还提供了一种语音识别装置,图3是根据本发明实施例的语音识别装置的示意图,如图3所示,该语音识别装置包括:第一确定模块32、第二确定模块34以及识别模块36。下面对该语音识别装置进行详细说明。
第一确定模块32,用于确定语音指令的音频时长;第二确定模块34,连接至上述第一确定模块32,用于根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;识别模块36,连接至上述第二确定模块34,用于依据语音指令的识别方式对语音指令进行识别。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述第一确定模块32、第二确定模块34以及识别模块36对应于实施例1中的步骤s102至s106,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
由上可知,在本申请上述实施例中,采用第一确定模块32确定语音指令的音频时长;第二确定模块34根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;识别模块36依据语音指令的识别方式对语音指令进行识别的方式,通过对音频时长的判断,选择相适应的语音指令的识别方式,对语音指令进行识别,达到了对不同音频时长的语音指令进行识别的目的,从而实现了缩短系统平均响应时间,提高语音识别效果,减轻云服务器访问压力的技术效果,同时也解决了现有技术均需要端和云同时进行一些操作或处理才能实现语音识别的技术问题。
可选地,上述第二确定模块包括:第一判断单元,用于判断音频时长是否大于预设音频时长;第一处理单元,用于在音频时长小于等于预设音频时长的情况下,则语音指令的识别方式为端侧识别;第二处理单元,用于在音频时长大于预设音频时长的情况下,则语音指令的识别方式为云侧识别。
可选地,语音指令的识别方式为端侧识别,上述识别模块包括:第一识别单元,用于在端侧对语音指令进行语法识别;第一接收单元,用于接收端侧的语法识别结果。
可选地,在接收端侧的语法识别结果之后,上述装置还包括:判断模块,用于判断端侧的语法识别结果的置信度是否小于预设置信度;发送模块,用于在置信度小于预设置信度时,将语音指令发送给云侧进行自由说识别;接收模块,用于接收云侧的自由说识别结果。
可选地,语音指令的识别方式为云侧识别,上述识别模块包括:第二识别单元,用于将语音指令发送给云侧进行自由说识别;第二接收单元,用于接收云侧的自由说识别结果。
可选地,上述装置还包括:执行模块,用于在依据语音指令的识别方式对语音指令进行识别后,得到识别结果,根据识别结果,执行语音指令。
实施例3
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述中任意一项的语音识别方法。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
可选地,在程序运行时控制存储介质所在设备执行以下功能:确定语音指令的音频时长;根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;依据语音指令的识别方式对语音指令进行识别。
实施例4
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行上述中任意一项的语音识别方法。
本申请实施例提供了一种设备,该设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:确定语音指令的音频时长;根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;依据语音指令的识别方式对语音指令进行识别。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:确定语音指令的音频时长;根据音频时长和预设音频时长,确定语音指令的识别方式,其中,识别方式包括以下至少之一:端侧识别、云侧识别;依据语音指令的识别方式对语音指令进行识别。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。