本公开涉及语音识别技术领域,尤其涉及一种流式语音识别方法。
背景技术:
随着移动互联网和多媒体技术的发展,包含音频流的产品形态也越来越多,比如常见的直播应用、语音聊天室应用等。对音频流(流式语音)进行语音识别,识别后得到的文字结果对于内容安全审核,内容分析打标签等都有非常重要的作用。
在传统方案中,对音频流做语音识别时,通常由客户端将音频流的多个连续语音片段数据都发送给语音识别引擎,由语音识别引擎依次识别并返回识别结果。这样做每台引擎能够并发识别的音频流数量不高,对于一个并发直播上万的产品来说,如果要覆盖识别所有的直播流,会造成很大的计算资源消耗。
技术实现要素:
针对上述技术问题,本公开实施例提供一种流式语音识别方法,技术方案如下:
根据本公开实施例的第一方面,提供一种流式语音识别方法,包括:
将待检测语音片段发送给语音端点检测端,根据返回结果确定所述待检测语音片段中的无效子片段;
在待检测语音片段中抽除所述无效子片段,得到被所述无效子片段分割的多个有效子片段,其中,有效子片段包含有效语音数据,无效子片段包含静音数据;
在所述待检测语音片段的末尾片段为有效子片段的情况下,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
将所述待识别有效语音片段发送给语音识别端,以获得识别结果。
可选的,所述得到被所述无效子片段分割的多个有效子片段后,还包括:
在所述待检测语音片段的末尾片段为无效子片段的情况下,将分割出的多个有效子片段按照时间顺序拼接为待识别有效语音片段。
可选的,所述待检测语音片段的获取方式,包括:
接收目标语音片段,检查状态数据库中是否缓存了所述目标语音片段的前序子片段,其中,流式语音由多个连续语音片段组成,所述目标语音片段的前序子片段为所述目标语音片段的上个语音片段的末尾有效子片段;
若状态数据库中缓存了所述前序有效子片段,将所述前序有效子片段拼接在目标语音片段的开端,将拼接后的语音片段确定为待检测的语音片段。
可选的,所述接收目标语音片段,检查状态数据库中是否缓存了所述目标语音片段的前序子片段,包括:
接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段;
若查找到携带同样音频流标识的有效子片段,则将查找到的有效子片段确定为目标语音片段的前序有效子片段。
可选的,所述接收目标语音片段,检查状态数据库中是否缓存了所述目标语音片段的前序子片段,包括:
接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段;
若未查找到携带同样音频流标识的有效子片段,则直接将目标语音片段确根据本公开实施例的第二方面,提供一种流式语音识别装置,包括:
静音检测单元,被配置为将待检测语音片段发送给语音端点检测端,根据返回结果确定所述待检测语音片段中的无效子片段;
静音消除单元,被配置为在待检测语音片段中抽除所述无效子片段,得到被所述无效子片段分割的多个有效子片段,其中,有效子片段包含有效语音数据,无效子片段包含静音数据;
状态存储单元,被配置为在所述待检测语音片段的末尾片段为有效子片段的情况下,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
语音识别单元,被配置为将所述待识别有效语音片段发送给语音识别端,以获得识别结果。
可选的,所述流式语音识别装置,还包括:
语音拼接单元,被配置为在所述待检测语音片段的末尾片段为无效子片段的情况下,将分割出的多个有效子片段按照时间顺序拼接为待识别有效语音片段。
可选的,所述流式语音识别装置,还包括:
目标语音处理模块:被配置为接收目标语音片段,检查状态数据库中是否缓存了所述目标语音片段的前序子片段,其中,流式语音由多个连续语音片段组成,所述目标语音片段的前序子片段为所述目标语音片段的上个语音片段的末尾有效子片段;
在状态数据库中缓存了所述前序有效子片段的情况下,将所述前序有效子片段拼接在目标语音片段的开端,将拼接后的语音片段确定为待检测的语音片段。
可选的,所述目标语音处理模块,具体用于:
接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段;
若查找到携带同样音频流标识的有效子片段,则将查找到的有效子片段确定为目标语音片段的前序有效子片段。
可选的,所述目标语音接收模块,具体用于:
接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段;
若未查找到携带同样音频流标识的有效子片段,则直接将目标语音片段确定为待检测的语音片段。
根据本公开实施例的第三方面,提供一种流式语音识别电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的流式语音识别方法。
根据本公开实施例的第四方面,提供一种流式语音识别存储介质,当所述存储介质中的指令由流式语音识别电子设备的处理器执行时,使得流式语音识别电子设备能够执行如第一方面所述的流式语音识别方法。
本公开提供了一种流式语音的识别方法,一方面将待检测语音片段发送给语音端点检测端,根据返回结果抽除待检测语音片段中的静音数据,只保留有效语音数据进行识别,减少所需的语音识别计算资源。一方面将每段语音片段末尾的未结束片段存入状态数据库,以将状态数据库作为多个语音片段的上下文状态保存装置,进一步避免语音识别引擎维护音频流上下文数据造成的资源消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
此外,本公开实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本公开一示例性实施例示出的流式语音识别方法一种流程图;
图2是本公开一示例性实施例示出的待检测音频片段获取方法的一种流程图;
图3是本公开一示例性实施例示出的有效音频片段获取方法的一种流程图;
图4是本公开一示例性实施例示出的流式语音的第一片段处理方法一种示意图;
图5是本公开一示例性实施例示出的第一片段的一种示意图;
图6是本公开一示例性实施例示出的流式语音的第二片段处理方法一种示意图;
图7是本公开一示例性实施例示出的流式语音的第n片段处理方法一种示意图;
图8是本公开一示例性实施例示出的流式语音识别装置一种示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着移动互联网和多媒体技术的发展,包含音频流的产品形态也越来越多,比如常见的直播应用、语音聊天室应用等。对音频流(流式语音)进行语音识别,识别后得到的文字结果对于内容安全审核,内容分析打标签等都有非常重要的作用。
在传统方案中,对音频流做语音识别时,通常由客户端将音频流的多个连续语音片段数据都发送给语音识别引擎,由语音识别引擎依次识别并返回识别结果。这样做每台引擎能够并发识别的音频流数量不高,对于一个并发直播上万的产品来说,如果要覆盖识别所有的直播流,会造成很大的计算资源消耗。
流式语音的数据也不完全是有效的语音数据,会存在很多的静音片段数据。传统方案中,将静音的数据也发送到识别引擎来处理,造成计算资源的浪费。
针对以上问题,本公开提供了一种流式语音识别方法,以及应用所述流式语音识别方法的流式语音识别设备,首先对该流式语音识别方法进行说明。参见图1,包括以下步骤:
s101,将待检测语音片段发送给语音端点检测端,根据返回结果确定所述待检测语音片段中的无效子片段;
语音端点检测端为进行语音活动检测的单元,该检测也可以称为语音边界检测。主要用于检测语音片段中的语音活动信号,进而在语音片段数据中,确定存在连续语音信号的有效数据,以及不存在语音信号数据的静音数据。
其中,存在连续语音信号的有效数据片段为语音片段中的有效子片段,不存在语音信号数据的静音片段为语音片段中的无效子片段。
s102,在待检测语音片段中抽除所述无效子片段,得到被所述无效子片段分割的多个有效子片段,其中,有效子片段包含有效语音数据,无效子片段包含静音数据;
经过语音端点检测端的语音边界检测之后,待检测语音片段中间的无效子片段被检测出来,同时可得到被无效子片段分割出的多个有效子片段。
举例说明:待检测语音片段总时长为30秒,其中,该待检测语音片段的0~7秒为检测出语音数据的第一子片段,8~15秒为检测出语音数据的第二子片段,16~30秒为检测出语音数据的第三子片段。则第二子片段为无效子片段,第一子片段和第三子片段为被无效子片段分割开的两个有效子片段。一般地,语音片段被分为不同的子片段都为有效子片段-无效子片段-有效子片段-的有效-无效的间隔模式。
s103,在所述待检测语音片段的末尾片段为有效子片段的情况下,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
在流式语音处理过程中,音频流将多个连续语音片段持续发送给识别系统进行识别,其中,每个语音片段的开端和末尾都可能是一段不完整的语音。
举例说明:音频流的第二语音片段总时长为50秒,其中,0~7秒为检测出语音数据的第一子片段,该第一子片段为一句完整语音的后半部分,8~15秒为检测出语音数据的第二子片段,该第二子片段为静音子片段,16~30秒为检测出语音数据的第三子片段,该第三子片段为一句完整语音,30~35秒为第四子片段,该第三子片段为静音子片段,36~50秒为第五子片段,该第五子片段为一句完整语音的前半部分。
为了使流式语音的识别结果完整,清晰。本实施例预先构建了状态数据库,该状态数据库用于存储连续语音片段中的上下文数据。具体而言,当待检测语音片段的末尾片段为有效子片段时,说明该末尾子片段是未结束的语音子片段,则将该末尾子片段存入状态数据库中,作为下一个语音片段的前序片段。
举例说明:音频流的第二语音片段末尾子片段为有效子片段时,该末尾子片段可能为一句完整语音的前半部分,后半部分必然在同一路音频流的下一语音片段,即第三语音片段的开端。则可将第二语音片段末尾子片段进行缓存,在第三语音片段到来后,由第三语音片段进行提取。
而在所述待检测语音片段的末尾片段为无效子片段的情况下,将分割出的多个有效子片段按照时间顺序拼接为待识别有效语音片段。具体而言,若所述待检测语音片段的末尾片段为无效子片段,则说明待检测语音片段的末尾不包含下一个语句的开头部分,不需要将末尾子片段进行缓存,直接将分割出的多个有效子片段按照时间顺序拼接为待识别有效语音片段。
获取待检测语音片段后,先进行语音端点检测,获取并抽除待检测语音片段中的无效子片段(静音数据),只保留有效语音数据进行语音识别。
可以知道,预先对待检测语音片段进行无效子片段抽除可减少需要识别的语音片段的长度,由于语音端点检测所需的计算资源远少于语音识别所需的计算资源,可有效减少整体语音识别流程所需的总计算资源。
s105,将所述待识别有效语音片段发送给语音识别端,以获得识别结果。
一种可能的情况是,在待检测语音片段中没有检测到静音数据,即待检测语音片段整体都为有效片段,则不需要额外处理这个待检测语音片段,直接将该待检测语音片段确定为待识别有效语音片段,发送给语音识别端。
另一种可能的情况是,在待检测语音片段中没有检测到语音信号数据,即待检测语音片段整体都为静音片段,则直接丢弃该待检测语音片段。
在步骤s101中,待检测语音片段并不是调用端直接发送来的语音片段,将调用端发送的语音片段处理后才是待检测语音片段,具体处理方式参见图2,包括以下步骤:
s201,接收目标语音片段;
目标语音片段为调用端发送的同一路音频流被拆分出的多个连续语音片段之一,同一路音频流的概念可以参考直播,同一个直播间发送的持续语音即可视为音频流。目标语音片段即直接从音频流中拆分出的片段。
这些音频流以多个连续的语音片段的形式被调用端发送到语音识别侧进行语音识别,在步骤s201中,目标语音片段即发送来的组成音频流的多个连续语音片段的其中之一。
s202,检查状态数据库中是否缓存了所述目标语音片段的前序有效子片段,若缓存了前序有效子片段,则执行步骤s203,若没有缓存前序有效子片段,执行步骤s204;
s203,将所述前序有效子片段拼接在目标语音片段的开端,将拼接后的语音片段确定为待检测的语音片段;
s204,直接将目标语音片段确定为待检测的语音片段。
如果目标语音的上一个语音片段的末尾片段为有效子片段,则说明该末尾片段的为未结束语音,可以理解为一句语音的上半部分在上一个语音片段的末尾,下半部分在目标语音片段的开端。
因此,目标语音片段需要检查状态数据库中是否缓存了所述目标语音片段的前序有效子片段,若缓存有目标语音片段的前序有效子片段,则将所述前序有效子片段拼接在目标语音片段的开端,若没有缓存目标语音片段的前序有效子片段,则说明上一个语音片段的末尾片段是无效子片段,则可直接将目标语音片段确定为待检测的语音片段。该状态数据库中存储的前序有效子片段可以称为音频流的上下文状态数据。
在本公开的一种可选实施例中,状态数据库可以为一个公共的上下文存储数据库,其中存储了多路音频流的上下文状态数据。在某一路音频流语音片段进行检查时,需要根据携带的音频流标识查找属于同一路音频流的子片段。在本实施例中,针对同一路音频流,其连续的语音片段,以及语音片段被分隔出的各个有效子片段中,均包含有该路音频流的语音标识。
由于每个语音片段以及有效子片段均会携带其所在音频流的音频流标识,当状态数据库中存储了多路视频流的上下文状态数据时,语音片段先确定自身携带的音频流标识,再通过同样音频流标识查找前序有效子片段,可以保证多路音频流之间不出现串接,每一路音频流的各个语音片段正确衔接。
具体而言,可先接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段。
若查找到携带同样音频流标识的有效子片段,则将查找到的有效子片段确定为目标语音片段的前序有效子片段。
若未查找到携带同样音频流标识的有效子片段,则直接将目标语音片段确定为待检测的语音片段。
当状态数据库中存储有与当前的目标语音片段携带同样音频流标识的有效子片段时,说明该路音频流中的上一个待检测语音片段的末尾部分属于目标语音片段的开头部分,将该有效子片段拼接在当前接收到的目标语音片段的开端,拼接后的语音片段即为待检测语音片段。如此可保证待检测语音片段被语音端点检测后,除末尾子片段外,分隔出的各个有效子片段均为一个完整语句片段,使后续语音识别更加准确。
其中,将待检测语音片段发送给语音端点检测端后,其处理过程还可以参考图3,具体分为以下步骤:
s301,获得语音端点检测端针对待检测语音片段的检测结果;
s302,判断待检测语音片段的末尾片段是否为有效子片段,如果是有效子片段,执行步骤s303,如果不是有效子片段,执行步骤s304;
s303,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
s304,将所有多个有效子片段按照时间顺序拼接为待识别有效语音片段。
每个语音片段的末尾片段为有效子片段时,均将该有效子片段存储在状态数据库中,在下一个语音片段到来后,由下一个语音片段在状态数据库中提取上一个语音存储的有效子片段,拼接在下一个语音片段的开头,形成完整的待检测语音片段。
若语音片段的末尾片段为无效子片段时,即静音片段。则不需要将片段存储在状态数据库中,下一个语音片段检测到状态数据库不存在缓存的子片段后,也不需要拼接其他语音子片段,直接将自身确定为待检测语音片段。
本实施例将每段语音片段末尾的未结束片段存入状态数据库,以将状态数据库作为多个语音片段的上下文状态保存装置,进一步避免语音识别引擎维护音频流上下文数据造成的资源消耗,以及维护状态信息带来的扩展性差和可靠性降低问题。
本公开提供了一种流式语音识别系统,在具体应用场景下,可通过该流式语音识别系统实现上述流式语音识别方法。该流式语音识别系统为多种服务组成的识别架构,具体包括状态服务,vad检测服务和语音识别服务。
其中,上文所述的流式语音识别方法均应用于流式语音识别系统中的状态服务侧;
vad检测服务为上文所述语音端点检测端的一种示例,用于确定语音片段中包含的静音(无语音信号)片段;
语音识别端是一种无状态的语音识别引擎,用于进行对语音片段进行识别处理;在本公开中,该语音识别引擎可应用自动语音识别技术(automaticspeechrecognition),将人类语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。
如图4,为本公开提供的流式语音识别系统的示意图,从调用端将音频流的第一个语音片段发送给流式语音识别系统开始,详细说明流式语音识别系统的工作过程。
参考图4所示,为第一个语音片段的处理过程,当某一路音频流的第一个语音片段,即片段1被调用端发送给流式语音架构中的状态服务后,状态服务首先将该片段1发送给vad检测服务,由vad检测服务对该片段1进行检测,以确定出片段1中包括的无效子片段,该无效子片段即不包含语音数据信号的静音数据片段,在图4中,静音数据片段为图中的子片段1.2。
经过vad检测过后,语音片段被分为多个连续子片段,该多个连续子片段中包含检测出的无效子片段与被无效子片段分隔开来的多个有效子片段。该多个连续子片段具体表现为:有效子片段-无效子片段-有效子片段….
如图4,状态服务将片段1发送给vad检测服务,vad检测单元检测出片段1中包含的无效子片段1.2,进而确定被无效子片段1.2分隔开的有效子片段1.1和有效子片段1.3。在连续子片段1.1,1.2和1.3中抽出并丢弃子片段1.2,将子片段1.1和1.3返回状态服务。
状态服务接收到vad检测服务返回的子片段1.1和子片段1.3后,由于片段1末尾片段为有效子片段1.3,这说明片段1的末尾语音是一段还未结束的语音,举例说明,子片段1.3可能是一句话的前半句,而后半句在下一个片段2的开端,而语音识别的优选处理结果应该是完整的一句话。因此,状态服务将有效子片段1.3进行缓存,将剩余的子片段1.1进行语音识别,并向调用端返回片段1.1的识别结果。
在一些情况下,片段1经过vad的检测结果为图5所示的情况,即末尾子片段1.4是无效子片段,这说明片段1的末尾语音并不是还未结束的语音,则此时不需要缓存该末尾子片段,只需要把片段1.1和1.3的处理结果发送给调用端即可。
继续参考图6,为同一路音频流第二个语音片段的处理过程。其中,上述第一个语音片段和第二个语音片段是同一路音频流的两个连续的语音片段。
第二个语音片段,即片段2到达状态服务后,状态服务会先检查缓存中是否缓存有语音片段,如图6所示,取到处理片段1时缓存的子片段1.3数据,然后把整个片段2和子片段1.3进行拼接后,将拼接结果发送给vad服务检测,去掉无效语音子片段2.3后得到有效子片段结果1.3,2.1和2.3。
由于片段2的末尾片段为有效子片段2.3,是未结束的语音,所以需要将有效子片段2.3存入缓存中,把剩余的有效子片段1.3和2.1发送给语音识别服务进行处理,然后把处理结果返回给调用端。
同理,如果片段2末尾子片段,如子片段2.3经过vad检测的处理结果为无效语音,则不进行缓存,将所有子片段都进行识别,并将识别结果返回给调用端。
继续参考图7,为同一路音频流第n个语音片段的处理过程。
第n个语音片段,即片段n到达状态服务后,状态服务会先检查缓存中是否缓存有语音片段,如图取到片段n-1.3数据,然后把整个片段n和片段n-1.3进行拼接后,发送给vad服务检测,去掉无效语音子片段n.2后得到有效子片段结果n.3,n.1和n-1.3。
由于片段n的末尾片段为有效子片段n.3,是未结束的语音,所以需要将有效子片段n.3存入缓存中,把剩余的有效子片段n-1.3和n.1发送给语音识别服务进行处理,然后把处理结果返回给调用端。
同理,如果片段2末尾子片段,如子片段2.3经过vad检测的处理结果为无效语音,则不进行缓存,将所有子片段都进行识别,并将识别结果返回给调用端。
如上,为本公开流式语音识别系统对同一路音频流的从片段1到片段n等连续多个语音片段的处理过程。通过引入中间层状态服务,整体识别服务可靠性得到了加强,横向扩展比较方便。
由于语音识别服务不需要维护音频流的上下文状态,既节省了语音识别引擎的计算资源,也不会因为识别引擎节点失效造成上下文信息丢失。同时通过引入vad检测服务,在进行语音识别之前,状态服务先把前后序列的语音拼接,经过vad检测,去掉无效语音后,剩下的有效语音数据大大减少,这样需要的语音识别服务计算资源也同比减少。而且由于vad检测过程相比于语音识别过程来说,处理速度和效率都高得多,需要的计算资源也少很多。由此使总体识别过程的处理时间和计算资源都得到了优化。
相应于上述方法实施例,本公开实施例还提供一种流式语音识别装置,参见图8所示,所述装置可以包括:静音检测单元810、静音消除单元820、状态存储单元830和语音识别单元840。
静音检测单元810,被配置为将待检测语音片段发送给语音端点检测端,根据返回结果确定所述待检测语音片段中的无效子片段;
静音消除单元820,被配置为在待检测语音片段中抽除所述无效子片段,得到被所述无效子片段分割的多个有效子片段,其中,有效子片段包含有效语音数据,无效子片段包含静音数据;
状态存储单元830,被配置为在所述待检测语音片段的末尾片段为有效子片段的情况下,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
语音识别单元840,被配置为将所述待识别有效语音片段发送给语音识别端,以获得识别结果。
进一步地,所述流式语音识别装置,还包括:
语音拼接单元,被配置为在所述待检测语音片段的末尾片段为无效子片段的情况下,将分割出的多个有效子片段按照时间顺序拼接为待识别有效语音片段。
进一步地,所述流式语音识别装置,还包括:
目标语音接收模块:被配置为接收目标语音片段,检查状态数据库中是否缓存了所述目标语音片段的前序子片段,其中,流式语音由多个连续语音片段组成,所述目标语音片段的前序子片段为所述目标语音片段的上个语音片段的末尾有效子片段;
在状态数据库中缓存了所述前序有效子片段的情况下,将所述前序有效子片段拼接在目标语音片段的开端,将拼接后的语音片段确定为待检测的语音片段。
进一步地,所述目标语音处理模块,具体用于:
接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段;
若查找到携带同样音频流标识的有效子片段,则将查找到的有效子片段确定为目标语音片段的前序有效子片段。
进一步地,所述目标语音接收模块,具体用于:
接收目标语音片段,确定所述目标语音片段所携带的音频流标识,在状态数据库中查找携带同样音频流标识的有效子片段;
若未查找到携带同样音频流标识的有效子片段,则直接将目标语音片段确定为待检测的语音片段。
本公开实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述流式语音识别方法,所述方法包括:
将待检测语音片段发送给语音端点检测端,根据返回结果确定所述待检测语音片段中的无效子片段;
在待检测语音片段中抽除所述无效子片段,得到被所述无效子片段分割的多个有效子片段,其中,有效子片段包含有效语音数据,无效子片段包含静音数据;
在所述待检测语音片段的末尾片段为有效子片段的情况下,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
将所述待识别有效语音片段发送给语音识别端,以获得识别结果。
本公开实施例还提供一种计算机可读状态数据库,其上存储有计算机程序,该程序被处理器执行时实现前述的流式语音识别方法,所述方法包括:
将待检测语音片段发送给语音端点检测端,根据返回结果确定所述待检测语音片段中的无效子片段;
在待检测语音片段中抽除所述无效子片段,得到被所述无效子片段分割的多个有效子片段,其中,有效子片段包含有效语音数据,无效子片段包含静音数据;
在所述待检测语音片段的末尾片段为有效子片段的情况下,将所述末尾片段存入状态数据库,将除末尾片段外的其他有效子片段按照时间顺序拼接为待识别有效语音片段;
将所述待识别有效语音片段发送给语音识别端,以获得识别结果。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的状态数据库的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁存储设备存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
以上所述仅是本公开实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开实施例的保护范围。