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

语音识别方法、装置、电子设备和存储介质与流程

2021-09-25 02:26:00 来源:中国专利 TAG:电子设备 装置 语音识别 特别 实施


1.本发明实施例涉及通信领域,特别涉及一种语音识别方法、装置、电子设备和存储介质。


背景技术:

2.语音识别是一种将语音信号转变为相应文本的技术,广泛应用于长句语音输入、音视频字幕、直播质检、会议记录等场景。目前已有各类服务提供商为用户提供能够进行语音识别的服务器,在用户要对某个包含语音信号的媒体文件进行语音识别时,只需要将文件上传至服务器并接收服务器返回的语音识别结果即可。上述语音识别方法主要有两种实现方式:一是实时语音识别,在客户端和服务器之间建立websocket连接后,通过该连接一边向服务器上传文件,一边获取服务器返回的语音识别结果,其中,websocket是一种基于传输控制协议(transmission control protocol,tcp)的全双工协议,即建立连接后通信双方都可以不断向对方发送数据;一是上传完整的文件再进行识别,此时可以基于websocket连接进行流式传输,也可以基于超文本传输协议(hyper text transfer protocol,http)连接发送post请求一次性上传。
3.然而,为了便于服务器根据接收到的文件进行语音识别,客户端一般在进行数据传输之前还会将待识别文件的格式为服务器规定的格式,常见的一种格式转化的方法是将其他非波形声音文件(waveform sound file,wav)格式的文件转换为wav格式的文件,其中,wav 格式文件的采样频率为16千赫兹,采样位数为16位,且是单声道。在这种情况下,时长为 1秒的文件内容其数据大小为32千字节(kilobyte,kb)。而websocket连接上的数据传输是以帧为单位进行的,在帧长为160毫秒的情况下,每一帧传输的数据量大约为5kb,即每次传输的数据量大小约为5kb。同时帧传输还存在间隔时间,一般是间隔20毫秒

200毫秒发送一次帧,假设间隔160毫秒发送一帧,则时长1分钟大小为1.8兆字节(mbyte,mb)的音频文件由于存在发送间隔使得传输时长超出1.1分钟,类似可以得到,时长为10分钟大小为18.7mb的文件传输时长大于10.24分钟,时长为1小时文件大小为115.2mb的文件传输完成需要等待至少1.024小时。再加上网络等因素的影响,上传文件的效率很低,也就意味着通过传输才能被服务器接收和识别的效率也相应的很低,即当前基于websocket连接上传文件供服务器处理文件的语音识别方法效率是很低的。


技术实现要素:

4.本发明实施例的目的在于提供一种语音识别方法、装置、电子设备和存储介质,实现了语音识别过程中对文件的并行处理,提高了语音识别的效率,减少服务器处理时间,提高了用户体验。
5.为实现上述目的,本发明的实施例提供了一种语音识别方法,包括:获取待识别文件;对所述待识别文件进行分割,获取若干待识别子文件;建立至少两个连接并通过所述至少两个连接同时上传所述待识别子文件,供服务器对所述待识别子文件进行语音识别;获
取所述待识别子文件的语音识别结果;拼接所述待识别子文件的语音识别结果,得到所述待识别文件的语音识别结果。
6.为实现上述目的,本发明的实施例还提供了一种语音识别装置,包括:获取模块,用于获取待识别文件;分割模块,用于对所述待识别文件进行分割,获取若干待识别子文件;通信模块,用于建立至少两个连接并通过所述至少两个连接同时上传所述待识别子文件,供服务器对所述待识别子文件进行语音识别;获取所述待识别子文件的语音识别结果;处理模块,用于根据所述待识别子文件的数据拼接得到所述待识别文件的语音识别结果。
7.为实现上述目的,本发明的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上所述的语音识别方法。
8.为实现上述目的,本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现以上所述的语音识别方法。
9.本发明实施例提供的语音识别方法,在分割待识别文件得到若干待识别子文件后,为待识别子文件建立至少两个连接并通过至少两个连接同时上传待识别子文件,使得服务器能够通过至少两个连接同时接收并识别待识别子文件中的语音信号,实现了语音识别过程中对文件的并行处理,提高了语音识别的效率,减少服务器处理时间,提高了用户体验。
10.另外,本发明实施例提供的语音识别方法,所述待识别文件的格式为波形声音文件wav 格式,所述获取待识别文件包括:获取原始文件;当所述原始文件的格式为非wav格式,将所述原始文件的格式转化为wav格式,得到所述待识别文件。将待处理文件统一转化wav 格式,减少了服务器处理压力,也更方便服务器对待识别文件进行语音识别。
11.另外,本发明实施例提供的语音识别方法,所述对所述待识别文件进行分割,获取若干待识别子文件之前,还包括:获取所述待识别文件的播放总时长;所述对所述待识别文件进行分割,获取若干待识别子文件包括:根据所述播放总时长对所述待识别文件进行分割,获取所述待识别子文件。由于文件大小会受到文件分辨率等因素的影响,而播放时长更能描述语音信号的长短,便于对语音信号进行分割和识别,且后续需要对待识别子文件的语音识别结果进行拼接,记录每个所述待识别子文件在所述播放总时长中的起始时刻,使得能够将待识别子文件的起始时刻作为拼接依据从而完成拼接。
12.另外,本发明实施例提供的语音识别方法,所述待识别子文件的语音识别结果包括文本信息和时间信息,所述根据所述播放总时长对所述待识别文件进行分割,获取所述待识别子文件的同时,还包括:获取记录的每个所述待识别子文件在所述播放总时长中的起始时刻;所述拼接所述待识别子文件的语音识别结果包括:根据所述起始时刻对所述时间信息进行修改;根据修改后的所述时间信息对所述文本信息进行拼接。先对待识别子文件的语音识别结果中的时间信息进行修改,使得能够根据修改后的时间信息进行拼接,更加准确可靠。
13.另外,本发明实施例提供的语音识别方法,所述同时上传所述待识别子文件包括:为每个所述待识别子文件分别创建websocket连接;通过所述websocket连接同时开始上传所述待识别子文件,直到所有所述待识别子文件的文件数据均上传成功。通过websocket连
接上传文件能够满足文件传输时对持久传输的要求,避免需要多次建立连接才能完成传输,提高了用户体验。
14.另外,本发明实施例提供的语音识别方法,所述为每个所述待识别子文件分别创建 websocket连接包括:为每个所述待识别子文件创建实例;利用所述实例为所述待识别子文件建立所述websocket连接;所述获取所述待识别子文件的语音识别结果,包括:通过所述实例对应的所述websocket连接接收所述服务器返回的所述待识别子文件的语音识别结果。通过创建实例分别为待识别子文件进行传输和接收待识别子文件的语音识别结果,使得能够根据不同实例对应不同的待识别子文件,避免出现语音识别结果和待识别子文件之间不能准确对应,保证了识别结果对应的准确性,从而提升拼接后待识别文件的语音识别结果的准确性。
15.另外,本发明实施例提供的语音识别方法,所述方法还包括:存储所述待识别文件的语音识别结果。将语音识别结果存储起来,方便用户使用该语音识别结果。
附图说明
16.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
17.图1是本发明的一实施例提供的语音识别方法的流程图;
18.图2是本发明的另一实施例提供的包括格式转换步骤的语音识别方法的流程图;
19.图3是本发明的另一实施例提供的包括根据待识别文件的播放总时长进行分割步骤的语音识别方法的流程图;
20.图4是本发明的另一实施例提供的包括创建websocket连接步骤的语音识别方法的流程图;
21.图5是本发明的另一实施例提供的websocket连接和实例的对应关系图;
22.图6是本发明的另一实施例提供的包括对时间信息进行修改步骤的语音识别方法的流程图;
23.图7是本发明的另一实施例提供的包括存储待识别文件的语音识别结果步骤的语音识别方法的流程图;
24.图8是本发明的另一实施例中提供的语音识别装置的结构示意图;
25.图9是本发明的另一实施例中提供的电子设备的结构示意图。
具体实施方式
26.由背景技术可知,相关技术中用户终端通过websocket连接上传待识别的文件,但是由于文件需要被转化为统一的固定格式,以及发送帧的间隔时间和网络等因素的影响,上传文件的效率很低,也就意味着通过传输才能被服务器接收和识别的效率也相应的很低,即当前基于websocket连接上传文件供服务器处理文件的语音识别方法效率是很低的。
27.为了实现语音识别过程中对文件的并行处理,提高语音识别的效率,减少服务器处理时间,提高用户体验,本技术的实施例提供了一种语音识别方法:获取待识别文件;对待识别文件进行分割,获取若干待识别子文件;为待识别子文件建立至少两个连接并通过
至少两个连接同时上传待识别子文件,供服务器对待识别子文件进行语音识别;获取待识别子文件的语音识别结果;拼接待识别子文件的语音识别结果,得到待识别文件的语音识别结果。
28.本发明实施例提供的语音识别方法,在分割待识别文件得到若干待识别子文件后,为待识别子文件建立至少两个连接并通过至少两个连接同时上传待识别子文件,使得服务器能够通过至少两个连接同时接收并识别待识别子文件中的语音信号,实现了语音识别过程中对文件的并行处理,提高了语音识别的效率,减少服务器处理时间,提高了用户体验。
29.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
30.下面对本实施例的语音识别方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
31.步骤101,获取待识别文件。
32.在本实施例中,待识别文件为包含语音信号的音频的文件,待识别文件的格式与对待识别文件进行语音识别的服务器规定的文件格式一致,如只有波形声音文件(waveform sound file,wav)格式的文件能够被用于服务器语音识别的情况下,即服务器规定的文件格式为 wav格式,则客户端利用该服务器进行语音识别时,需要将待识别文件的格式统一为wav 格式。因此,如图2所示,在一些实施例中,步骤101包括:
33.步骤1011,获取原始文件。
34.本实施例中,原始文件为包含语音信号的音频或音视频等媒体文件,但是本实施例不对原始文件的格式进行限制,原始文件可以是任何一种能够支持语音信号的文件格式。
35.在一个例子中,获取原始文件可以是用户在某一个设备中选定一段录音文件或一段视频等。
36.步骤1012,当原始文件的格式为非wav格式,将原始文件的格式转化为wav格式,得到待识别文件。
37.本实施例中,服务器支持对wav格式的音频文件进行语音识别,因此,需要检测原始文件的文件格式是否为wav格式,若检测到原始文件不是wav格式,则需要转换为wav格式,便于服务器进行处理,且不需要服务器进行wav格式转换,服务器只需要专注于将语音信号转化为文本,大大减小了服务器的处理压力。
38.需要说明的是,wav格式是最常见的声音文件格式之一,wav格式的文件是一种标准数字音频文件,可应用于windows、macintosh、linux等多种操作系统,具有很强的实用性,并且wav格式下的文件能记录各种单声道或立体声的声音信息,以及保证声音不失真。因此,技术人员在进行语音识别的开发时通常会基于wav格式的声音文件进行语音识别,进而服务器通常也是提供对wav格式的文件进行语音识别的服务。当然,本实施例是以wav格
式为例进行说明,在其他实施例中,若服务器能够支持对其他格式的文件进行语音识别,则还可以是待识别文件还可以统一为其他格式的音频文件,如动态影像专家压缩标准音频层面3 (moving picture experts group audio layer iii,mp3)、乐器数字接口(musical instrumentdigital interface,midi)、微软音频格式(windows media audio,wma)等。
39.步骤102,对待识别文件进行分割,获取若干待识别子文件。
40.本实施例中,对文件进行分割可以是按照文件大小进行分割,还可以是根据文件内容的播放总时长进行分割,但是本实施例不对待识别子文件的数量和具体对应的时长进行限定,可以根据实际需求灵活设置。
41.特别地,由于后续待识别子文件将被同时上传至服务器并被服务器同时接收和处理,因此,为了更好地缩短传输和处理的时间,文件可以是均匀划分,避免某一待识别子文件未结束上传而其他待识别子文件上传结束导致部分连接空闲,即连接不能被充分利用的情况。
42.进一步地,如图3所示,若根据待识别文件的播放总时长进行分割,在一些实施例中,步骤102之前还包括:
43.步骤106,获取待识别文件的播放总时长。
44.此时,如图3所示,步骤102具体包括:根据播放总时长对待识别文件进行分割,获取待识别子文件。
45.更具体地说,获取待识别文件的播放总时长之后,在播放总时长中选取一些时刻点,以这些时刻点为分割点对待识别文件进行分割,或者,根据实际需要和资源消耗等方面考虑,确定出该待识别文件需要划分为n(n为一个大于等于2的整数)段,则将待识别文件的播放总时长平均划分为n段,每一段时长对应的文件内容构成一个待识别子文件。
46.在一个例子中,待识别文件的播放总时长为1小时,根据实际需要确定待识别文件需要划分为3段,则播放总时长被划分为每段为60分钟/3=20分钟的3段时长,即[0,20)、[20, 40)、[40,60](单位:分钟),此时,记录第一段时长对应的待识别子文件的起始时刻为0,记录第二段时长对应的待识别子文件的起始时刻为20分钟,记录第三段时长对应的待识别子文件的起始时刻为40分钟。
[0047]
步骤103,建立至少两个连接并通过至少两个连接同时上传待识别子文件,供服务器对待识别子文件进行语音识别。
[0048]
本实施例不对连接的数量进行限制,可以是每个待识别子文件各自具有一个连接,如分割得到m个待识别子文件并且创建m个连接,也可以是若干待识别子文件共用一条连接,如分割得到m个待识别子文件并且创建j个连接,其中,m为大于2的整数,j为大于等于2且小于m的正整数。
[0049]
特别地,当每个待处理子文件都具有一个连接的情况下,如图4所示,步骤103具体包括:
[0050]
步骤1031,为每个待识别子文件分别创建websocket连接。
[0051]
一般而言,在客户端上传音视频文件供服务器进行语音识别时,客户端和服务器之间需要建立连接,尤其是当上传的文件的数据流较大时,需要建立持久的稳定的连接,能够持续上传音视频文件,直到所有内容均上传,以及如果能够实现客户端一边上传音视频数据一边接收服务器返回的语音识别结果并且服务器一边接收客户端传过来的音视频数
据一边对其进行语音识别并返回。因此,通常会建立websocket连接,这是由websocket连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的连接将数据推送到另一端,且 websocket只需要建立一次连接,就可以一直保持连接状态的特性决定的。相对于传统的网络通信一般使用的是无状态的、无连接的、单向的http连接,效率更高,更持久稳定。
[0052]
进一步地,在一些实施例中,从代码层面上步骤1031可以描述为以下步骤:为每个待识别子文件创建实例然后利用实例为待识别子文件建立websocket连接。具体地说,当确定识别文件被分割为若干个待识别子文件后,针对每一个待识别子文件生成一个实例,该实例中记录了待识别子文件的起始时刻,然后对于每个实例都会创建一个websocket连接,实例对应的待识别子文件都是通过websocket连接向服务器上传待识别的音频信号以及接收服务器返回的数据,websocket连接和实例的对应关系具体如图5所示。
[0053]
步骤1032,通过websocket连接同时开始上传待识别子文件,直到所有待识别子文件的文件数据均上传成功。
[0054]
步骤104,获取待识别子文件的语音识别结果。
[0055]
本实施例中,服务器可以接收完成后进行语音识别,也可以是一边接受一边进行语音识别,且本实施例不对服务器如何进行语音识别进行限定,只需要客户端在开始上传待识别子文件后接收服务器返回的语音识别结果。
[0056]
进一步地,在一些实施例中,从代码层面上步骤104可以描述为以下步骤:通过实例对应的websocket连接接收服务器返回的待识别子文件的语音识别结果。
[0057]
需要说明的是,为了能够给用户提供更好的体验如能够根据语音识别结果中的时间信息将文本信息制作成字幕,一般而言,语音识别结果中不仅包含了语音信号转化得到的文本信息,还包括语音信号的时间信息,该时间信息通常为语音信号对应的文本信息的时序,如对音频文件中的某一句话识别出文本信息a,该文本信息a在整个音频文件播放时长中对应的时间段即为给文本信息a的时间信息,待识别子文件所有文本信息的时间信息组成了待识别子文件的时间信息。
[0058]
步骤105,拼接待识别子文件的语音识别结果,得到待识别文件的语音识别结果。
[0059]
本实施例中,待识别子文件的语音识别结果包含文本信息和时间信息,其中,文本信息是指语音信号转化得到的文本;时间信息是时间信息通常为语音信号对应的文本信息的时序,如对音频文件中的某一句话识别出文本信息a,该文本信息a在整个音频文件播放时长中对应的时间段即为给文本信息a的时间信息,待识别子文件所有文本信息的时间信息组成了待识别子文件的时间信息。
[0060]
特别地,本实施例不对提供语音识别的服务器进行限定,可以是当前常用的语音识别服务器,而当前常用的语音识别服务器得到时间信息是针对上传的文件而言的,即本实施例中上传的是待识别子文件而不是整个待识别文件,也就是说,本实施例返回的语音识别结果中的时间信息是基于待识别子文件时长描述的时间,这样对于一些特别的应用场景,如语音识别结果直接显示音视频的字幕场景下需要将视频帧和待识别子文件的文本信息进行匹配,匹配是基于完整视音视频文件的时间,即待识别文件的时间,而不是语音识别时划分了小段音视频。因此,在一些实施例中,不能直接使用返回的待识别子文件的时间信息,还需要对待识别子文件的时间信息进行修改,参考图6,步骤105之前,还包括:
[0061]
步骤107,获取记录的每个待识别子文件在播放总时长中的起始时刻。
[0062]
本实施例中,当根据选取的时刻分割待识别文件时,则根据这些时刻点确定每个待识别子文件的起始时刻并记录;当确定平均划分为n个待识别子文件时,则根据总播放时长和n 确定每个待识别子文件的起始时刻并记录。需要说明的是,此时,步骤102为根据播放总时长对待识别文件进行分割,获取待识别子文件。
[0063]
此外,还需要对时间信息进行修改以对应待识别文件中的时间,步骤105具体包括:
[0064]
步骤1051,根据起始时刻对与起始时刻对应同一个待识别子文件的时间信息进行修改。
[0065]
本实施例中,在每个待识别子文件的时间信息基础上加上该待识别子文件的起始时刻,即得到待识别子文件中语音信号在整个待识别文件中的时间信息,如某个待识别子文件的起始时刻为34分,该待识别子文件中某一句话的时间信息为13分24秒

14分2秒,则修改后这一句话在整个待识别文件中的时间信息为47分24秒

48分2秒。
[0066]
步骤1052,根据修改后的时间信息对文本信息进行拼接。
[0067]
本实施例中,根据修改后的时间信息的大小顺序确定待识别子文件在待识别文件中的先后顺序,然后按照待识别子文件的先后顺序拼接文本信息。
[0068]
需要说明的是,语音识别结果包含的时间信息和文本信息是一一对应的,进而修改后的时间信息和文本信息也是一一对应的,即拼接后得到的整个待识别文件转化后的文本信息,该文本信息还携带相应的修改后的时间信息,具体拼接后的结果如下所示:
[0069]
00:20:00,100

00:20:05,410
[0070]
数据表是数据的矩阵,是一个临时保存数据的网格虚拟表。
[0071]
00:20:06,870

00:20:15,890
[0072]
数据库:数据库是按照数据结构来组织、存储和管理数据的仓库。进一步地,如图7所示,步骤105之后还包括:
[0073]
步骤108,存储待识别文件的语音识别结果。
[0074]
本实施例进行存储是为了便于利用待识别文件的语音结果进行字母展示、校对、分享等。
[0075]
本实施例不对存储地位置和存储的方式进行限定,可以是任何一种能够供相关用户后续访问并使用的存储方法。
[0076]
本发明的实施例还提供了一种语音识别装置,如图8所示,包括:
[0077]
获取模块801,用于获取待识别文件。
[0078]
分割模块802,用于对待识别文件进行分割,获取若干待识别子文件。
[0079]
通信模块803,用于建立至少两个连接并通过至少两个连接同时上传待识别子文件,供服务器对待识别子文件进行语音识别;获取待识别子文件的语音识别结果。
[0080]
处理模块804,用于根据待识别子文件的数据拼接得到待识别文件的语音识别结果。
[0081]
不难发现,本实施例为与方法实施例相对应的装置实施例,本实施例可与方法实施例互相配合实施。方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在方法实施例中。
[0082]
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本技术的创新部分,本实施例中并没有将与解决本技术所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
[0083]
本发明实施例还提供了一种电子设备,如图9所示,包括:
[0084]
至少一个处理器901;以及,
[0085]
与所述至少一个处理器901通信连接的存储器902;其中,
[0086]
所述存储器902存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器901执行,以使所述至少一个处理器901能够执行本发明实施例提供的语音识别方法。
[0087]
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
[0088]
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
[0089]
本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
[0090]
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom, read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0091]
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文章

  • 日榜
  • 周榜
  • 月榜