一种语音流识别方法、装置、存储介质及服务器与流程

文档序号:19225686发布日期:2019-11-26 02:31阅读:173来源:国知局
一种语音流识别方法、装置、存储介质及服务器与流程

本申请涉及计算机技术领域,尤其涉及一种语音流识别方法、装置、存储介质及服务器。



背景技术:

随着技术的发展,语音识别技术得到越来越广泛的应用。比如,通过网络在线课程学习外语,通过语音识别功能对用户的外语口语进行测评以为用户定制个性化课程。

现有的识别语音的方式通常是将采用用户终端采集到的用户输入的整段语音直接发送给服务器,并由服务器对整段语音进行识别,输出结果后,将其返回至用户终端处。该种方式在语音数据较长时,存在对用户的发送速度较慢、识别结果不佳之类的问题,进而降低了用户体验。



技术实现要素:

本申请实施例提供了一种语音流识别方法、装置、存储介质及服务器,通过对语音流进行切分为语音片段进行识别,可以提高语音识别准确率,提升用户体验。所述技术方案如下:

第一方面,本申请实施例提供了一种语音流识别方法,所述方法包括:

接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。

第二方面,本申请实施例提供了一种语音流识别装置,所述装置包括:

停顿检测模块,用于接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

语音流切分模块,用于在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

结果发送模块,用于对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。

第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第四方面,本申请实施例提供一种服务器,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

在本申请一个或多个实施例中,服务器接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿位置以及停顿时长,然后查找出其中停顿时长大于预设时长的目标停顿位置,再基于这些目标停顿位置对所述语音流进行切分,从而得到至少一个语音片段,然后对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。通过对语音流进行切分,即使在语音流较长时,也可以得到较短的语音片段,再对各个较短的语音片段进行识别而得到识别结果,可以提高语音识别准确率,提升用户体验。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种语音流识别系统的网络架构示意图;

图2是本申请实施例提供的一种语音流识别方法的流程示意图;

图3是本申请实施例提供的一种语音流识别方法的流程示意图;

图4是本申请实施例提供的一种语音流识别方法的流程示意图;

图5是本申请实施例提供的一种语音流识别装置的结构示意图;

图6是本申请实施例提供的一种结果发送模块的结构示意图;

图7是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

下面结合具体的实施例对本申请进行说明。

请参见图1,为本申请实施例提供的一种语音流识别系统的网络架构示意图。如图1所示,所述网络架构可以包括服务器2000以及用户终端集群;所述用户终端集群可以包括多个用户终端,如图1所示,具体包括用户终端3000a、用户终端3000b、…、用户终端3000n;为便于理解,本发明实施例可以在图1所示的多个用户终端中选择一个用户终端作为本方案的执行主体。本发明实施例可以图1中的客户终端3000a为例进行描述。

其中,所述服务器为具备语音流切分功能以及识别功能的服务器。

所述用户终端包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、5g网络或未来演进网络中的终端设备等。

如图2所示,s1,用户终端3000a与服务器2000先建立通信连接。

其中,所建立的通信连接可以为http长连接或http短连接。

长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。

长连接的操作步骤是:建立连接——数据传输...(保持连接)...数据传输——关闭连接。

短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。

短连接的操作步骤是:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接。

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个tcp连接都需要三步握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就ok了,不用建立tcp连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。

而像web网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。

长连接可以省去较多的tcp建立和关闭的操作,减少浪费,节约时间。短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在tcp的建立和关闭操作上浪费时间和带宽。因此,本申请实施例中,优先采用长连接。

s2,用户终端3000a通过语音采集装置采集用户输入的语音流并发送至服务器2000;

所述语音流即为持续采集的音频序列,即包括至少一个音频信号(如包括一个单词发音)。音频信号是带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。根据声波的特征,可把音频信息分类为规则音频和不规则声音。其中规则音频又可以分为语音、音乐和音效。规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。

在本申请实施例中,所述语音流可以为规则音频,也可以为不规则声音。如为用户阅读一段英文短文的发音。

用户终端3000a可采用数据流的方式发送该语音流。所述数据流的方式是指将一连串的媒体数据压缩后,经过网上分段发送数据。当然也可将该语音流压缩封装后打包发送。

s3,服务器2000接收用户终端3000a发送的所采集到的语音流,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

所述停顿信息一般指说话中话语的短暂停歇的停顿时长以及停顿位置。而所产生的停顿可以包括语法停顿、逻辑停顿、感情停顿以及生理停顿。

语法停顿是依照标点符号所作的停顿。根据演讲稿上标点符号的不同,所作的停顿时间长短也不同。

逻辑停顿是为了突出某一语意所作的停顿。

感情停顿是为了某种情感或受感情的支配而作的停顿。

生理停顿是指在演讲到长句时,找中间某个合适的地方停顿,换一口气。

s4,在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,服务器2000基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

即依次将各停顿位置的停顿时长与预设时长进行比对,找出其中大于预设时长的停顿位置,并按照所找出的停顿位置分割语音流,从而得到一个一个的语音片段,也可以将较长的语音数据分割为较短的语音片段。

s5,服务器2000对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。

语音识别方法主要是模式匹配法。在训练阶段,用户将词汇表中的每一词依次说一遍,并且将其特征矢量作为模板存入模板库。在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。

也就是说,将至少一个语音片段分别输入至预先训练的语音识别模型中,从而可以得到相应的识别结果。所述识别结果可以包括发音准确度、打分等。

在本申请一个或多个实施例中,服务器接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿位置以及停顿时长,然后查找出其中停顿时长大于预设时长的目标停顿位置,再基于这些目标停顿位置对所述语音流进行切分,从而得到至少一个语音片段,然后对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。通过对语音流进行切分,即使在语音流较长时,也可以得到较短的语音片段,再对各个较短的语音片段进行识别而得到识别结果,可以提高语音识别准确率,提升用户体验。

下面将结合附图3-附图4,对本申请实施例提供的语音流识别方法进行详细介绍。其中,本申请实施例中的语音流识别装置可以是图1所示的服务器2000,本申请实施例中的用户终端可以是图1所示的用户终端3000a、3000b、…、3000n中的任一个。

请参见图3,为本申请实施例提供的一种语音流识别方法的流程示意图。如图3所示,本申请实施例的所述语音流识别方法可以包括以下步骤:

s101,接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

所述语音流即为持续采集的音频序列,即包括至少一个音频信号(如包括一个单词发音)。音频信号是带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。根据声波的特征,可把音频信息分类为规则音频和不规则声音。其中规则音频又可以分为语音、音乐和音效。规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。

在本申请实施例中,所述语音流可以为规则音频,也可以为不规则声音。如为用户阅读一段英文短文(bestoftimesitwasthebestoftimes,itwastheworstoftimes,itwastheageofwisdom,itwastheageoffoolishness.)的发音。

用户终端可采用数据流的方式发送该语音流。所述数据流的方式是指将一连串的媒体数据压缩后,经过网上分段发送数据。当然也可将该语音流压缩封装后打包发送。若服务器在接收到用户终端以数据流的方式发送的语音流,则将该语音流按照接收先后顺序进行拼接,从而得到完整的语音流。若服务器在接收到用户终端打包发送的语音流,则将该语音流进行解压缩,解封装,从而可得到完整的语音流。

其中,数据封装就是把业务数据(语音流)映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。解封装,为封装的逆过程,是指拆解协议包,处理包头中的信息,取出净荷中的业务数据(语音流)。

服务器在接收到完整的语音流后,对其中的停顿位置进行检测,从而确定出其中停顿的具体位置(在哪两个词之间停顿)以及停顿时长等。

其中所述停顿一般指说话中话语的短暂停歇。而所产生的停顿可以包括语法停顿、逻辑停顿、感情停顿以及生理停顿。

语法停顿是依照标点符号所作的停顿。根据演讲稿上标点符号的不同,所作的停顿时间长短也不同。

逻辑停顿是为了突出某一语意所作的停顿。

感情停顿是为了某种情感或受感情的支配而作的停顿。

生理停顿是指在演讲到长句时,找中间某个合适的地方停顿,换一口气。

对停顿检测的一种可行方式为:检测该语音流中没有发音的位置,将没有发音的位置确定为停顿位置。另一种可行的方式为,将该语音流与具有相同内容的样本语音流进行比对,将样本语音流中有发音而在采集到的语音流中没有发音的位置确定为停顿位置。

例如,样本文本为“bestoftimesitwasthebestoftimes,itwastheworstoftimes,itwastheageofwisdom,itwastheageoffoolishness.”,用户的发音文本为“bestoftimesitwasthebestoftimes,itwastheworstoftimes,itwastheageofwisdom,itwastheageoffoolishness.”则可确定停顿位置包括4个,分别为“time”和“it”之间、itwastheworstoftimes中“was”和“the”之间、“of”和“wisdom”之间以及“of”和“foolishness”之间。

同时,还可记录每个停顿位置的停顿时长,例如“time”和“it”之间停顿2s、itwastheworstoftimes中“was”和“the”之间停顿3s、“of”和“wisdom”之间停顿1s以及“of”和“foolishness”之间停顿2s。

s102,在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

即将每个停顿时长分别与预设时长进行比对,从而找出其中停顿过长的位置。

例如,预设时长为1s,从而可确定目标停顿集合为“time”和“it”之间、itwastheworstoftimes中“was”和“the”之间以及“of”和“foolishness”之间,共3个位置。

按照上述停顿位置将该语音片段进行切分,从而可以得到4个语音片段,分别为:bestoftimes、itwasthebestoftimes,itwas、theworstoftimes,itwastheageofwisdom,itwastheageof、foolishness。

s103,对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。

语音识别方法主要是模式匹配法。在训练阶段,用户将词汇表中的每一词依次说一遍,并且将其特征矢量作为模板存入模板库。在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。

也就是说,将至少一个语音片段分别输入至预先训练的语音识别模型中,从而可以得到相应的识别结果。所述识别结果可以包括发音准确度、打分等。

语音识别模型可以是卷积神经网络(convolutionalneuralnetwork,cnn)模型,深度神经网络(deepneuralnetwork,dnn)模型、循环神经网络(recurrentneuralnetworks,rnn)、模型、嵌入(embedding)模型、梯度提升决策树(gradientboostingdecisiontree,gbdt)模型、逻辑回归(logisticregression,lr)模型中的至少一种。

例如,将bestoftimes、itwasthebestoftimes,itwas、theworstoftimes,itwastheageofwisdom,itwastheageof、foolishness共4个语音片段分别输入至语音识别模型中,从而可以得到这4个片段分别对应的发音准确度。

将所识别到的结果发送至用户终端的方式可以为压缩封装后一起发送,也可以数据流的方式分段发送。此处不作具体限定。

在本申请一个或多个实施例中,服务器接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿位置以及停顿时长,然后查找出其中停顿时长大于预设时长的目标停顿位置,再基于这些目标停顿位置对所述语音流进行切分,从而得到至少一个语音片段,然后对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。通过对语音流进行切分,即使在语音流较长时,也可以得到较短的语音片段,再对各个较短的语音片段进行识别而得到识别结果,可以提高语音识别准确率。

请参见图4,为本申请实施例提供的一种语音流识别方法的流程示意图。本实施例以语音流识别方法应用于服务器中来举例说明。该语音流识别方法可以包括以下步骤:

s201,基于与用户终端之间建立的长连接接收所述用户终端发送的所采集到的语音流;

长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。

长连接的操作步骤是:建立连接——数据传输...(保持连接)...数据传输——关闭连接。

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情况。每个tcp连接都需要三步握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就ok了,不用建立tcp连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。

长连接可以省去较多的tcp建立和关闭的操作,减少浪费,节约时间。

在长连接建立成功后,用户终端通过语音采集装置采集用户输入的语音流,然后通过该长连接发送至服务器。

由于所述语音流为持续采集的音频序列,即包括至少一个音频信号。且可以理解为是持续采集中。因此,可将一个音频序列通过该长连接先发送至服务器,然后再将后续采集的音频序列通过该长连接继续发送。从而,服务器可以持续不断接收到音频信号。

s202,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

具体可参见s101,此处不再赘述。

s203,在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

具体可参见s102,此处不再赘述。

s204,将所述至少一个语音片段按照在所述语音流中的先后顺序添加至消息队列中;

消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。在本申请实施例中,所添加的新消息即各语音片段,而添加的顺序即为个语音片段在语音流中的先后顺序。

目前主要有两种类型的消息队列:posix消息队列以及系统v消息队列,系统v消息队列目前被大量使用。考虑到程序的可移植性,新开发的应用程序应尽量使用posix消息队列。

例如,bestoftimes、itwasthebestoftimes,itwas、theworstoftimes,itwastheageofwisdom,itwastheageof、foolishness这4个语音片段在语音流中的先后顺序为从前往后,因此,可按照此顺序依次添加至消息队列中。其中,在队尾添加元素,在队头删除元素。

s205,对所述消息队列中的所述至少一个语音片段进行异步识别,得到所述至少一个语音片段对应的识别结果;

异步处理就是按照不同步的程序处理问题。异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率。

即从消息队列中遵循“先进先出”的原则依次读取各个语音片段,并对读取到的当前语音片段进行识别,识别成功并输出识别结果,然后继续读取下一个语音片段进行识别,直到所有的语音片段全部识别完成。

语音识别方法主要是模式匹配法。在训练阶段,用户将词汇表中的每一词依次说一遍,并且将其特征矢量作为模板存入模板库。在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。

也就是说,将至少一个语音片段分别输入至预先训练的语音识别模型中,从而可以得到相应的识别结果。所述识别结果可以包括发音准确度、打分等。

s206,采用数据流的方式将所述识别结果发送至所述用户终端。

流式传输方式是将动画、视音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向用户终端连续、实时传送。用户不必像非流式播放那样等到整个文件全部下载完毕后才能看到当中的内容,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用相应的播放器或其它的硬件、软件对压缩的动画、视音频等流式多媒体文件解压后进行播放和观看。

采用数据流的方式传输,能够处理大规模的、分布的、异构的数据;支持实时数据处理。

流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。实现流式传输有两种方法:实时流式传输(realtimestreaming)和顺序流式传输(progressivestreaming)。一般说来,如视频为实时广播,或使用流式传输媒体服务器,或应用如rtsp的实时协议,即为实时流式传输。如使用http服务器,文件即通过顺序流发送。

顺序流式传输是顺序下载,在下载文件的同时用户可观看再线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不像实时流式传输在传输期间根据用户连接的速度做调整。

实时流式传输指保证媒体信号带宽与网络连接配匹,使媒体可被实时观看到。实时流与http流式传输不同,他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。

服务器将各个语音片段的识别结果按照数据流的方式传输至用户终端进行显示。

可选的,服务器也可对所述识别结果进行封装处理,将封装处理后的所述识别结果发送至所述用户终端。

在本申请一个或多个实施例中,服务器接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿位置以及停顿时长,然后查找出其中停顿时长大于预设时长的目标停顿位置,再基于这些目标停顿位置对所述语音流进行切分,从而得到至少一个语音片段,然后对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。通过对语音流进行切分,即使在语音流较长时,也可以得到较短的语音片段,再对各个较短的语音片段进行识别而得到识别结果,可以提高语音识别准确率,提升用户体验。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参见图5,其示出了本申请一个示例性实施例提供的语音流识别装置的结构示意图。该语音流识别装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括停顿检测模块10、语音流切分模块20和结果发送模块30。

停顿检测模块10,用于接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

语音流切分模块20,用于在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

结果发送模块30,用于对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。

可选的,所述停顿检测模块10,具体用于:

基于与所述用户终端之间建立的长连接接收所述用户终端发送的所采集到的语音流。

可选的,如图6所示,所述结果发送模块30,包括:

片段排列单元301,用于将所述至少一个语音片段按照在所述语音流中的先后顺序添加至消息队列中;以及

片段识别单元302,用于对所述消息队列中的所述至少一个语音片段进行异步识别。

可选的,所述结果发送模块30,具体用于:

对所述识别结果进行封装处理,将封装处理后的所述识别结果发送至所述用户终端。

可选的,所述结果发送模块30,具体用于:

采用数据流的方式将所述识别结果发送至所述用户终端。

需要说明的是,上述实施例提供的语音流识别装置在执行语音流识别方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的语音流识别装置与语音流识别方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请一个或多个实施例中,服务器接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿位置以及停顿时长,然后查找出其中停顿时长大于预设时长的目标停顿位置,再基于这些目标停顿位置对所述语音流进行切分,从而得到至少一个语音片段,然后对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。通过对语音流进行切分,即使在语音流较长时,也可以得到较短的语音片段,再对各个较短的语音片段进行识别而得到识别结果,可以提高语音识别准确率,提升用户体验。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图4所示实施例的方法步骤,具体执行过程可以参见图1-图4所示实施例的具体说明,在此不进行赘述。

请参见图7,为本申请实施例提供了一种服务器的结构示意图。如图7所示,所述服务器1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。

其中,通信总线1002用于实现这些组件之间的连接通信。

其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。

其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。

其中,存储器1005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及语音流识别应用程序。

在图7所示的服务器1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的语音流识别应用程序,并具体执行以下操作:

接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿信息,所述停顿信息包括至少一个停顿位置以及每个停顿位置对应的停顿时长;

在所述至少一个停顿位置中获取所述停顿时长大于预设时长的目标停顿位置集合,基于所述目标停顿位置集合对所述语音流进行切分,得到至少一个语音片段;

对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。

在一个实施例中,所述处理器1001在执行接收用户终端发送的所采集到的语音流时,具体执行以下操作:

基于与所述用户终端之间建立的长连接接收所述用户终端发送的所采集到的语音流。

在一个实施例中,所述处理器1001在执行对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果时,具体执行以下操作:

将所述至少一个语音片段按照在所述语音流中的先后顺序添加至消息队列中;以及

对所述消息队列中的所述至少一个语音片段进行异步识别。

在一个实施例中,所述处理器1001在执行将所述识别结果发送至所述用户终端时,具体执行以下操作:

对所述识别结果进行封装处理,将封装处理后的所述识别结果发送至所述用户终端。

在一个实施例中,所述处理器1001在执行将所述识别结果发送至所述用户终端时,具体执行以下操作:

采用数据流的方式将所述识别结果发送至所述用户终端。

在本申请一个或多个实施例中,服务器接收用户终端发送的所采集到的语音流,检测所述语音流中的停顿位置以及停顿时长,然后查找出其中停顿时长大于预设时长的目标停顿位置,再基于这些目标停顿位置对所述语音流进行切分,从而得到至少一个语音片段,然后对所述至少一个语音片段分别进行识别,得到所述至少一个语音片段对应的识别结果,将所述识别结果发送至所述用户终端。通过对语音流进行切分,即使在语音流较长时,也可以得到较短的语音片段,再对各个较短的语音片段进行识别而得到识别结果,可以提高语音识别准确率,提升用户体验。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1