CN105513589B - 语音识别方法和装置 - Google Patents
语音识别方法和装置 Download PDFInfo
- Publication number
- CN105513589B CN105513589B CN201510958150.8A CN201510958150A CN105513589B CN 105513589 B CN105513589 B CN 105513589B CN 201510958150 A CN201510958150 A CN 201510958150A CN 105513589 B CN105513589 B CN 105513589B
- Authority
- CN
- China
- Prior art keywords
- node
- language model
- score
- frame
- voice
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
Abstract
本申请公开了语音识别方法和装置。所述方法的一具体实施方式包括:将待识别的语音信息切分多帧语音片段;通过预设的解码网络,对语音片段逐帧进行声学模型打分和语言模型查分;基于得分结果,将解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;其中,在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分。该实施方式实现了准确、高效的语音识别。
Description
技术领域
本申请涉及计算机技术领域,具体涉及人工智能技术领域,尤其涉及语音识别方法和装置。
背景技术
语音识别技术是一种将人类的语音中的词汇内容转换为计算机可读的输入(例如按键、二进制编码或者字符序列)的技术。在语音识别系统中,解码器是一个相当重要的组成部分。解码器可以通过加载训练好的声学模型以及语言模型,在解码网络中寻找最优的路径,将其对应的文本信息作为识别结果。
在目前的语音识别系统中,为了取得更高的识别率,都会尽可能使用较大的语言模型进行查分。但是,如果直接使用超大语言模型进行查分,会对存储该语言模型的磁盘造成较大损耗,并且识别效率会明显降低。因此,现有技术中普遍采用两遍解码策略进行解码。第一遍可以在小语言模型上完成解码,生成词图(lattice)。第二遍则可以在词图上再使用大语言模型重新打分。此时,由于词图较小,因此需要查询大语言模型的次数也较少,从而能够明显提高语音识别的效率。
但是,由于这种方法在第一遍解码时使用了准确度较低的小语言模型,通过其进行多次查分所累积的误差会导致词图中损失部分语音信息。这样,即使后续再从词图上使用大语言模型重新打分,也挽回不了之前损失的信息,因此导致语音识别的准确率不够高的问题。
发明内容
本申请的目的在于提出一种语音识别方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种语音识别方法,所述方法包括:将待识别的语音信息切分多帧语音片段;通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分;基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;其中,在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分。
在一些实施例中,所述第一语言模型是通过对所述第二语言模型进行裁剪得到的。
在一些实施例中,通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分,包括:基于所述解码网络,针对当前输入的一帧语音片段执行如下解码步骤:确定第一激活节点集合,所述第一激活节点集合中包括所述解码网络中的至少一个节点;遍历所述第一激活节点集合中的各个节点及对应的后驱节点,并在所述遍历过程中对当前语音片段进行声学模型打分或声学模型打分和第一语言模型查分;基于所述当前语音片段的得分,计算每个所述节点及对应的后驱节点的分数;根据每个所述节点及对应的后驱节点的分数,确定第二激活节点集合,所述第二激活节点集合中包括所述第一激活节点集合中的各个节点及对应的后驱节点中的至少一个节点;若第二激活节点集合中存在出词节点,则遍历所述出词节点,并在该遍历过程中进行第二语言模型查分;根据所述第二语言模型查分的结果,重新计算所述出词节点的分数;基于所述出词节点的分数,对所述第二激活节点集合中的节点进行裁剪;将裁剪后的所述第二激活节点集合作为下一帧语音片段的第一激活节点集合,对所述下一帧语音片段再次执行所述解码步骤。
在一些实施例中,若当前输入的一帧语音片段为所述语音信息的第一帧语音片段,则所述第一激活节点集合包括所述解码网络的起始节点。
在一些实施例中,所述基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果,包括:基于所述解码网络中终止节点的得分,获取至少一条解码路径;将所述解码路径对应的词序列确定为语音识别结果。
在一些实施例中,所述第二语言模型存储于具有预定读写速度的硬件上。
第二方面,本申请提供了一种语音识别装置,所述装置包括:切分模块,用于将待识别的语音信息切分多帧语音片段;查分模块,用于通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分;识别模块,用于基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;其中,所述查分模块在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分。
在一些实施例中,所述第一语言模型是通过对所述第二语言模型进行裁剪得到的。
在一些实施例中,所述查分模块进一步用于:基于所述解码网络,针对当前输入的一帧语音片段执行如下解码步骤:确定第一激活节点集合,所述第一激活节点集合中包括所述解码网络中的至少一个节点;遍历所述第一激活节点集合中的各个节点及对应的后驱节点,并在所述遍历过程中对当前语音片段进行声学模型打分或声学模型打分和第一语言模型查分;基于所述当前语音片段的得分,计算每个所述节点及对应的后驱节点的分数;根据每个所述节点及对应的后驱节点的分数,确定第二激活节点集合,所述第二激活节点集合中包括所述第一激活节点集合中的各个节点及对应的后驱节点中的至少一个节点;若第二激活节点集合中存在出词节点,则遍历所述出词节点,并在该遍历过程中进行第二语言模型查分;根据所述第二语言模型查分的结果,重新计算所述出词节点的分数;基于所述出词节点的分数,对所述第二激活节点集合中的节点进行裁剪;将裁剪后的所述第二激活节点集合作为下一帧语音片段的第一激活节点集合,对所述下一帧语音片段再次执行所述解码步骤。
在一些实施例中,若当前输入的一帧语音片段为所述语音信息的第一帧语音片段,则所述第一激活节点集合包括所述解码网络的起始节点。
在一些实施例中,所述识别模块进一步用于:基于所述解码网络中终止节点的得分,获取至少一条解码路径;将所述解码路径对应的词序列确定为语音识别结果。
在一些实施例中,所述第二语言模型存储于具有预定读写速度的硬件上。
本申请提供的语音识别方法和装置,可以首先将待识别的语音信息切分多帧语音片段,然后通过预设的解码网络,对每个语音片段逐帧进行声学模型打分和语言模型查分,并且在进行语言模型查分时,先后进行第一语言模型查分和第二语言模型查分,最后基于得分结果确定为语音识别结果。通过对每一帧语音片段进行两个语言模型查分,能够避免连续进行第一语言模型查分所产生的累积误差,提高语音识别精度,同时也能够大量减少查询第二语言模型的次数,从而优化了语音识别速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的语音识别方法的一个实施例的流程图;
图3是根据本申请的语音识别方法的又一个实施例的流程图;
图4是用于本申请的语音识别方法的一个解码网络的示意图;
图5是根据本申请的语音识别装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的语音识别方法或语音识别装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如语音助手应用、网页浏览器应用、搜索类应用、购物类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上运行的应用提供支持的后台服务器。
需要说明的是,本申请实施例所提供的语音识别方法一般由服务器105执行,相应地,语音识别装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的语音识别方法的一个实施例的流程200。所述的语音识别方法,包括以下步骤:
步骤201,将待识别的语音信息切分多帧语音片段。
在本实施例中,语音识别方法运行于其上的电子设备(例如图1所示的服务器)可以首先通过有线连接方式或者无线连接方式,从客户端或网络中获取待识别的语音信息。如果待识别的语音信息为模拟语音信息(例如,对用户通话的录音),则需要先将模拟语音信息转换为数字语音信息,然后再进行语音信息的切分。
在本实施例中,可以根据预先设定的窗长和帧移,将待识别的语音信息切分多帧语音片段。其中,窗长可以用于代表每一帧语音片段的时长,帧移可以用于代表相邻帧之间的时差。例如,当窗长为25ms帧移15ms时,第一帧语音片段为0~25ms,第二帧语音片段为15~40ms,依次类推,可以实现对待识别语音信息的切分。具体的窗长和帧移可以由用户根据实际需求自行设定,本申请对此不做限定。
可选地,在将待识别的语音信息切分多帧语音片段之前,上述电子设备还可以对待识别的语音信息进行降噪处理,以提高后续系统对该信息的处理能力。
需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤202,通过预设的解码网络,对语音片段逐帧进行声学模型打分和语言模型查分,其中,在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分。
在本实施例中,上述电子设备(例如图1所示的服务器)上可以预先存储有解码网络。根据业务需求构建解码网络是语音识别的前提,解码网络的基本结构是一个有向图,由结点和弧组成。每个弧上可以保存一个词条以及这个词条的声学模型信息和/或语言模型信息。在实践中,声学模型信息一般表现为声学模型得分,语言模型信息一般表现为语言模型得分,语音识别就是根据输入的语音数据在这个有向图上寻找一条最优路径的过程。其中,声学模型用于从语音到音节的概率计算,语言模型用于从音节到字的概率计算。声学模型得分和语言模型得分都可以通过预先的模型训练得到。
在本实施例中,解码网络中的语言模型得分可以包括第一语言模型得分和第二语言模型得分。在通过上述步骤201将待识别的语音信息切分多帧语音片段后,上述电子设备可以将所有语音片段逐帧输入解码网络中进行打分。具体地,可以首先对第一帧语音片段进行声学模型打分和语言模型查分。也就是将第一帧语音片段输入解码网络,利用解码网络的弧上所保存声学模型对输入的语音片段进行声学模型打分,即通过计算来得到在声学模型中的得分;并对声学模型打分后的节点进行语言模型查分,即通过查询来得到语言模型中的得分。在进行语言模型查分时,可以首先进行第一语言模型查分,然后根据查分结果对解码网络进行裁剪。然后继续进行第二语言模型查分,并将最终的查分结果作为语言模型得分。在得到第一帧语音片段的声学模型得分和语言模型得分后,可以接着将第二帧语音片段输入解码网络,继续进行与上述第一帧语音片段相同的解码步骤,直至所有的语音片段都解码完成。
步骤203,基于得分结果,将解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果。
在本实施例中,语音识别方法运行于其上的电子设备在对语音片段逐帧进行声学模型打分和语言模型查分后,可以根据最终的得分结果得到语音识别结果。具体地,在进行声学模型打分和语言模型查分后,可以将解码网络中每条解码路径上所有节点的得分相加,作为该解码路径的得分。然后对得分最高的一条或多条解码路径进行回溯,就可以得到相应解码路径所对应的词序列。这样,由得到的词序列所组成的短语或句子,就可以作为语音识别结果。
在本实施例的一些可选实现方式中,第一语言模型是通过对第二语言模型进行裁剪得到的。具体地,第二语言模型可以是大小超过上百G的超大规模语言模型,其语音识别精度很高但是识别效率较低。上述电子设备可以利用现有技术中的裁剪方法,例如熵裁剪的方法,对超大规模语言模型进行裁剪,以得到规模较小(例如10G)的第一语言模型。与第二语言模型相比,虽然第一语言模型得分的精确度较低,但是其要查询的节点大幅减少,因此识别效率较高。
在本实施例的一些可选实现方式中,第二语言模型存储于具有预定读写速度的硬件上。具体地,第二语言模型可以存储于具有超高读写速度的硬件,例如固态硬盘或FLASH存储卡上。这样,在解码时第二语言模型不需要加载到内存,直接在硬件上进行访问也可实现语音识别。
本申请的上述实施例提供的语音识别方法,可以首先将待识别的语音信息切分多帧语音片段,然后通过预设的解码网络,对每个语音片段逐帧进行声学模型打分和语言模型查分,并且在进行语言模型查分时,先后进行第一语言模型查分和第二语言模型查分,最后基于得分结果确定为语音识别结果。通过对每一帧语音片段进行两个语言模型查分,能够避免连续进行第一语言模型查分所产生的累积误差,提高语音识别精度,同时也能够大量减少查询第二语言模型的次数,从而优化了语音识别速度。
进一步继续参考图3,示出了根据本申请的语音识别方法的另一个实施例的流程300。所述的语音识别方法,包括以下步骤:
步骤301,将待识别的语音信息切分多帧语音片段。
在本实施例中,语音识别方法运行于其上的电子设备(例如图1所示的服务器)可以根据预先设定的窗长和帧移,将待识别的语音信息切分多帧语音片段。
接着,上述电子设备可以通过预设的解码网络,针对当前输入的一帧语音片段执行如下述步骤302~309所描述的解码步骤。
步骤302,确定第一激活节点集合,第一激活节点集合中包括解码网络中的至少一个节点。
在本实施例中,上述电子设备(例如图1所示的服务器)上可以预先存储有解码网络。在将一帧语音片段输入解码网络时,可以首先确定第一激活节点集合,也就是确定从网络中的哪些节点开始,继续对当前输入的语音片段进行查分。具体地,第一激活节点集合通常是基于上一帧语音片段,在解码网络中的模型查分结果确定的。在第一激活节点集合中可以包括解码网络中的一个或多个节点。
在本实施例的一些可选实现方式中,若当前输入的一帧语音片段为语音信息的第一帧语音片段,则上述第一激活节点集合包括解码网络的起始节点。具体地,若当前输入的一帧语音片段为语音信息的第一帧语音片段,也就是说在输入该语音片段之前,不曾有过其他语音片段的输入,导致无法基于上一帧语音片段的查分结果确定第一激活节点集合。此时,可以将解码网络的起始节点作为激活节点,进行第一帧语音片段的查分。
步骤303,遍历第一激活节点集合中的各个节点及对应的后驱节点,并在遍历过程中对当前语音片段进行声学模型打分或声学模型打分和第一语言模型查分。
在本实施例中,上述电子设备在确定出第一激活节点集合后,可以首先遍历第一激活节点集合中的每一个节点及每一个节点的后驱节点。其中,某一个节点的后驱节点,包括在解码网络中紧跟在该节点之后的所有节点。并且,当这些节点中有能够出词的节点时,后驱节点还需要包括紧跟在这些能够出词的节点之后的出词节点。在遍历过程中,可以根据当前输入的语音片段中的语音特征,进行声学模型打分。若遍历的节点不存在出词点,可以仅进行声学模型打分。若遍历的节点中存在出词点,可以在进行声学模型打分后,进一步对出词节点进行第一语言语言模型查分。
步骤304,基于当前语音片段的得分,计算每个节点及对应的后驱节点的分数。
在本实施例中,在对第一激活节点集合中的各个节点及对应的后驱节点进行遍历后,可以基于当前语音片段的得分,即当前语音片段的声学模型得分或第一语言语言模型得分,来计算每个节点及对应的后驱节点的分数。具体地,在计算某一个节点的得分时,可以用前一个节点的得分,加上与前一个节点的连接弧上的模型得分,作为当前节点的得分。
步骤305,根据每个节点及对应的后驱节点的分数,确定第二激活节点集合。
具体地,在计算出第一激活节点集合中的每个节点及对应的后驱节点的分数后,可以根据上述所有节点的得分,确定第二激活节点集合。在一些可选实现方式中,可以将得分达到预定分数阈值的节点作为第二激活节点集合中的节点。例如,可以将得分达到10分的节点作为第二激活节点集合中的节点。在另一些可选实现方式中,可以将得分最高的预定数量的节点作为第二激活节点集合中的节点。例如,可以将得分最高的占节点总数一半的节点作为第二激活节点集合中的节点。这样,第二激活节点集合中可以包括第一激活节点集合中的各个节点及对应的后驱节点中的至少一个节点。
步骤306,若第二激活节点集合中存在出词节点,则遍历出词节点,并在该遍历过程中进行第二语言模型查分。
在本实施例中,若在上述步骤305确定的第二激活节点集合中存在出词节点,则可以继续对第二激活节点集合中所有的出词节点进行遍历,并且在该遍历过程中进行第二语言模型查分。
步骤307,根据第二语言模型查分的结果,重新计算出词节点的分数。
在本实施例中,由于第一语言模型和第二语言模型是规模不同的模型,因此出词点在第一语言模型和第二语言模型中的得分也是不一样的。在对出词点进行第二语言模型查分后,可以基于出词点的新得分,重新计算出词节点的分数。
步骤308,基于出词节点的分数,对第二激活节点集合中的节点进行裁剪。
在对出词节点进行重新算分后,可以对第二激活节点集合中的节点进行进一步裁剪。具体地,可以删除第二激活节点集合中的那些经过重新计算后,得分较低的出词节点,而仅保留那些得分较高的出词节点。
步骤309,将裁剪后的第二激活节点集合作为下一帧语音片段的第一激活节点集合,对下一帧语音片段再次执行上述解码步骤。
在本实施例中,裁剪后的第二激活节点集合可以作为下一帧语音片段输入解码网络时的第一激活节点集合。这样,在输入下一帧语音片段时,就可以重复执行如步骤302~309所描述的解码步骤。
在本实施例中,针对每一帧语音片段,步骤302~309可以不断循环执行,直至对最后一帧语音片段的解码完成。
在本实施例的一些可选实现方式中,若在上述步骤305中得到第二激活节点集合中不存在出词节点,则可以省略上述步骤306~308,而直接将第二激活节点集合作为下一帧语音片段输入解码网络时的第一激活节点集合,并再次执行上述步骤302~309。
步骤310,基于解码网络中终止节点的得分,获取至少一条解码路径。
在本实施例中,当对所有语音片段的解码完成后,可以得到解码网络中终止节点的得分。其中,终止节点是指解码结束后所得到的解码网络中的最后一个节点。由于终止节点很可能可以通过多条解码路径得到,而通过每条路径所计算的终止节点得分通常都是不一样的。因此,可以将解码网络中终止节点得分最高的一条或多条路径,作为最终的解码路径。
步骤311,将解码路径对应的词序列确定为语音识别结果。
在确定出解码路径后,可以对解码路径进行回溯,确定其路径上每一个出词点所对应的词,以及所有词之间的顺序。从而可以得到相应解码路径所对应的词序列,并可以将词序列所组成的短语或句子作为语音识别结果。
从图3中可以看出,与图2对应的实施例相比,本实施例中的具体描述了如何通过预设的解码网络,对语音片段逐帧进行声学模型打分和语言模型查分的方法流程。通过对一帧语音片段先后进行小语言模型查分和大语言模型查分,可以进一步提高语音识别的效率。
进一步参考图4,其示出了本实施例中一个解码网络的示意图。下面结合图4中的解码网络,对本实施的语音识别方法进行进一步说明。如图4所示,解码网络中一共有节点0~节点7共8个节点,其中,0->1、0->3、0->5、1->2、3->4、5->6之间的弧可以代表音素,并且可以对这些音素进行声学模型打分;2->7、4->7、6->7之间是可以出词的弧,并且可以对所出的词进行语言模型查分。初始情况下,起始节点0处于激活状态。
当第一帧语音片段输入解码网络时,第一激活节点集合中只包括节点0,遍历节点0的后驱节点1、3和5,并在遍历过程中对弧0->1、0->3和0->5上面的音素V1、V2和V3,分别进行声学模型打分。由于节点1、3、5后面没有出词点,因此在遍历完节点1、3、5之后,就可以根据节点0、1、3和5的得分,确定出第二激活节点集合。其中,节点0的得分是预设的,节点1、3和5的得分分别等于节点0的得分加上音素V1、V2和V3的声学模型得分。此时,若节点1、3和5的得分较高,则可以确定第二激活节点集合中包括节点1、3和5。并且,该第二激活节点集合可以作为第二帧音频片段的第一激活节点集合。
当第二帧语音片段输入解码网络时,和上面类似,遍历所有的激活节点1、3和5的后驱节点,也就是图中的节点2、4和6,并在遍历过程中分别对音素V4、V5和V6进行声学模型打分。同时,由于节点2、4和6均为能够出词的节点,因此需要继续遍历节点2、4和6后的出词节点7,并在遍历过程中分别对出词点W1、W2和W3进行第一语言模型查分。然后根据查分结果,分别计算节点1、3、5、2、4、6和7的得分,并保留得分高的节点1、3、2、4和7共同作为第二激活节点集合。
由于第二激活节点集合中包括出词节点7,需要再次对节点2、4后的出词点W1和W2进行第二语言模型查分,然后重新计算节点7的得分。此时,节点7对应不同的路径会有不同的得分。若第二帧语音片段为待识别的语音信息的最后一帧语音片段,则可以根据终止节点7的最高得分,确定解码网络中的路径0->1->2->7为解码路径,通过对该路径进行回溯,就可以确定出语音识别结果。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种语音识别装置的一个实施例,该装置实施例与图2-3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例所述的语音识别装置500包括:切分模块510、查分模块520和识别模块530。其中,切分模块510,用于将待识别的语音信息切分多帧语音片段;查分模块520,用于通过预设的解码网络,对语音片段逐帧进行声学模型打分和语言模型查分;识别模块530,用于基于得分结果,将解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;其中,查分模块520在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分。
在本实施例中,语音识别装置500的切分模块510可以根据预先设定的窗长和帧移,将待识别的语音信息切分多帧语音片段。
在本实施例中,语音识别装置500上可以预先存储有解码网络。查分模块520可以首先基于解码网络,对第一帧语音片段进行声学模型打分和语言模型查分,其中,在进行语言模型查分时可以依次进行第一语言模型查分和第二语言模型查分,从而得到第一激活节点集合。接着,基于第一激活节点集合对第二帧语音片段重复上述步骤,直至所有的语音片段完成解码。
在本实施例中,语音识别装置500的识别模块530,可以根据查分模块520得到的查分结果,确定出解码网络中的一条或多条解码路径,然后对解码路径进行回溯,就可以得语音识别结果。
在本实施例的一些可选的实现方式中,第一语言模型是通过对第二语言模型进行裁剪得到的。
在本实施例的一些可选的实现方式中,查分模块520进一步用于基于解码网络,针对当前输入的一帧语音片段执行如下解码步骤:
确定第一激活节点集合,第一激活节点集合中包括所述解码网络中的至少一个节点;遍历第一激活节点集合中的各个节点及对应的后驱节点,并在遍历过程中对当前语音片段进行声学模型打分或声学模型打分和第一语言模型查分;基于当前语音片段的得分,计算每个节点及对应的后驱节点的分数;根据每个节点及对应的后驱节点的分数,确定第二激活节点集合,第二激活节点集合中包括第一激活节点集合中的各个节点及对应的后驱节点中的至少一个节点;若第二激活节点集合中存在出词节点,则遍历出词节点,并在该遍历过程中进行第二语言模型查分;根据第二语言模型查分的结果,重新计算出词节点的分数;基于出词节点的分数,对第二激活节点集合中的节点进行裁剪;将裁剪后的第二激活节点集合作为下一帧语音片段的第一激活节点集合,对下一帧语音片段再次执行上述解码步骤。
在本实施例的一些可选的实现方式中,若当前输入的一帧语音片段为语音信息的第一帧语音片段,则第一激活节点集合包括解码网络的起始节点。
在本实施例的一些可选的实现方式中,识别模块530进一步用于:
基于解码网络中终止节点的得分,获取至少一条解码路径;将解码路径对应的词序列确定为语音识别结果。
在本实施例的一些可选的实现方式中,第二语言模型可以存储于具有预定读写速度的硬件上。
本领域技术人员可以理解,上述语音识别装置500还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图5中未示出。
本实施例所提供的语音识别装置,可以首先将待识别的语音信息切分多帧语音片段,然后通过预设的解码网络,对每个语音片段逐帧进行声学模型打分和语言模型查分,并且在进行语言模型查分时,先后进行第一语言模型查分和第二语言模型查分,最后基于得分结果确定为语音识别结果。通过对每一帧语音片段进行两个语言模型查分,能够避免连续进行第一语言模型查分所产生的累积误差,提高语音识别精度,同时也能够大量减少查询第二语言模型的次数,从而优化了语音识别速度。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统600的结构示意图。
图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括切分模块、查分模块和识别模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,切分模块还可以被描述为“用于将待识别的语音信息切分多帧语音片段的模块”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:将待识别的语音信息切分多帧语音片段;通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分;基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;其中,在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种语音识别方法,其特征在于,包括:
将待识别的语音信息切分多帧语音片段;
通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分;
基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;
其中,在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分,其中,所述第一语言模型是通过对所述第二语言模型进行裁剪得到的;
所述通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分,包括:
基于所述解码网络,针对当前输入的一帧语音片段执行如下解码步骤:
确定第一激活节点集合,所述第一激活节点集合中包括所述解码网络中的至少一个节点;
遍历所述第一激活节点集合中的各个节点及对应的后驱节点,并在所述遍历过程中对当前语音片段进行声学模型打分和第一语言模型查分;
基于所述当前语音片段的得分,计算每个所述节点及对应的后驱节点的分数;
根据每个所述节点及对应的后驱节点的分数,确定第二激活节点集合;
若第二激活节点集合中存在出词节点,则遍历所述出词节点,并在该遍历过程中进行第二语言模型查分;
根据所述第二语言模型查分的结果,重新计算所述出词节点的分数。
2.根据权利要求1所述的语音识别方法,其特征在于,所述第二激活节点集合中包括所述第一激活节点集合中的各个节点及对应的后驱节点中的至少一个节点;
所述解码步骤还包括:
基于所述出词节点的分数,对所述第二激活节点集合中的节点进行裁剪;
将裁剪后的所述第二激活节点集合作为下一帧语音片段的第一激活节点集合,对所述下一帧语音片段再次执行所述解码步骤。
3.根据权利要求1所述的语音识别方法,其特征在于,若当前输入的一帧语音片段为所述语音信息的第一帧语音片段,则所述第一激活节点集合包括所述解码网络的起始节点。
4.根据权利要求1所述的语音识别方法,其特征在于,所述基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果,包括:
基于所述解码网络中终止节点的得分,获取至少一条解码路径;
将所述解码路径对应的词序列确定为语音识别结果。
5.根据权利要求1至4任一项所述的语音识别方法,其特征在于,所述第二语言模型存储于具有预定读写速度的硬件上。
6.一种语音识别装置,其特征在于,包括:
切分模块,用于将待识别的语音信息切分多帧语音片段;
查分模块,用于通过预设的解码网络,对所述语音片段逐帧进行声学模型打分和语言模型查分;
识别模块,用于基于得分结果,将所述解码网络中的至少一条解码路径对应的词序列,确定为语音识别结果;
其中,所述查分模块在对一帧语音片段进行语言模型查分时,依次进行第一语言模型查分和第二语言模型查分,其中,所述第一语言模型是通过对所述第二语言模型进行裁剪得到的;
所述查分模块进一步用于:
基于所述解码网络,针对当前输入的一帧语音片段执行如下解码步骤:
确定第一激活节点集合,所述第一激活节点集合中包括所述解码网络中的至少一个节点;
遍历所述第一激活节点集合中的各个节点及对应的后驱节点,并在所述遍历过程中对当前语音片段进行声学模型打分和第一语言模型查分;
基于所述当前语音片段的得分,计算每个所述节点及对应的后驱节点的分数;
根据每个所述节点及对应的后驱节点的分数,确定第二激活节点集合;
若第二激活节点集合中存在出词节点,则遍历所述出词节点,并在该遍历过程中进行第二语言模型查分;
根据所述第二语言模型查分的结果,重新计算所述出词节点的分数。
7.根据权利要求6所述的语音识别装置,其特征在于,所述第二激活节点集合中包括所述第一激活节点集合中的各个节点及对应的后驱节点中的至少一个节点;
所述解码步骤还包括:
基于所述出词节点的分数,对所述第二激活节点集合中的节点进行裁剪;
将裁剪后的所述第二激活节点集合作为下一帧语音片段的第一激活节点集合,对所述下一帧语音片段再次执行所述解码步骤。
8.根据权利要求6所述的语音识别装置,其特征在于,若当前输入的一帧语音片段为所述语音信息的第一帧语音片段,则所述第一激活节点集合包括所述解码网络的起始节点。
9.根据权利要求6所述的语音识别装置,其特征在于,所述识别模块进一步用于:
基于所述解码网络中终止节点的得分,获取至少一条解码路径;
将所述解码路径对应的词序列确定为语音识别结果。
10.根据权利要求6至9任一项所述的语音识别装置,其特征在于,所述第二语言模型存储于具有预定读写速度的硬件上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510958150.8A CN105513589B (zh) | 2015-12-18 | 2015-12-18 | 语音识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510958150.8A CN105513589B (zh) | 2015-12-18 | 2015-12-18 | 语音识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105513589A CN105513589A (zh) | 2016-04-20 |
CN105513589B true CN105513589B (zh) | 2020-04-28 |
Family
ID=55721518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510958150.8A Active CN105513589B (zh) | 2015-12-18 | 2015-12-18 | 语音识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105513589B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106710606B (zh) * | 2016-12-29 | 2019-11-08 | 百度在线网络技术(北京)有限公司 | 基于人工智能的语音处理方法及装置 |
CN107316639A (zh) * | 2017-05-19 | 2017-11-03 | 北京新美互通科技有限公司 | 一种基于语音识别的信息输入方法及装置,电子设备 |
CN107767858B (zh) * | 2017-09-08 | 2021-05-04 | 科大讯飞股份有限公司 | 发音词典生成方法及装置、存储介质、电子设备 |
CN108932941B (zh) * | 2017-10-13 | 2020-07-03 | 北京猎户星空科技有限公司 | 语音识别方法、装置及计算机设备、存储介质及程序产品 |
CN108389575B (zh) * | 2018-01-11 | 2020-06-26 | 苏州思必驰信息科技有限公司 | 音频数据识别方法及系统 |
CN108415898B (zh) * | 2018-01-19 | 2021-09-24 | 思必驰科技股份有限公司 | 深度学习语言模型的词图重打分方法和系统 |
CN110473519B (zh) * | 2018-05-11 | 2022-05-27 | 北京国双科技有限公司 | 一种语音处理方法及装置 |
CN109215630B (zh) * | 2018-11-14 | 2021-01-26 | 北京羽扇智信息科技有限公司 | 实时语音识别方法、装置、设备及存储介质 |
CN109727603B (zh) * | 2018-12-03 | 2020-11-03 | 百度在线网络技术(北京)有限公司 | 语音处理方法、装置、用户设备及存储介质 |
CN110164416B (zh) * | 2018-12-07 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 一种语音识别方法及其装置、设备和存储介质 |
CN110164421B (zh) * | 2018-12-14 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 语音解码方法、装置及存储介质 |
CN111369978A (zh) * | 2018-12-26 | 2020-07-03 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN111477212B (zh) * | 2019-01-04 | 2023-10-24 | 阿里巴巴集团控股有限公司 | 内容识别、模型训练、数据处理方法、系统及设备 |
CN111583906B (zh) * | 2019-02-18 | 2023-08-15 | 中国移动通信有限公司研究院 | 一种语音会话的角色识别方法、装置及终端 |
CN112017662B (zh) * | 2019-05-31 | 2023-07-07 | 阿里巴巴集团控股有限公司 | 控制指令确定方法、装置、电子设备和存储介质 |
CN110473527B (zh) * | 2019-09-17 | 2021-10-08 | 浙江核新同花顺网络信息股份有限公司 | 一种语音识别的方法和系统 |
CN113593539A (zh) * | 2020-04-30 | 2021-11-02 | 阿里巴巴集团控股有限公司 | 流式端到端语音识别方法、装置及电子设备 |
CN113066480B (zh) * | 2021-03-26 | 2023-02-17 | 北京达佳互联信息技术有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN113744723B (zh) * | 2021-10-13 | 2024-01-30 | 浙江核新同花顺网络信息股份有限公司 | 一种语音识别实时重打分的方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1279806A (zh) * | 1997-09-19 | 2001-01-10 | 微软公司 | 用于识别连续和分立语音的语音识别系统 |
JP2001285523A (ja) * | 2000-03-28 | 2001-10-12 | Kddi Corp | 呼判別装置 |
US6601028B1 (en) * | 2000-08-25 | 2003-07-29 | Intel Corporation | Selective merging of segments separated in response to a break in an utterance |
CN1675684A (zh) * | 2002-08-09 | 2005-09-28 | 摩托罗拉公司(特拉华州注册) | 具有后端声音活动检测的分布式语音识别设备和方法 |
CN103794211A (zh) * | 2012-11-02 | 2014-05-14 | 北京百度网讯科技有限公司 | 一种语音识别方法及系统 |
CN104157285A (zh) * | 2013-05-14 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 语音识别方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4734155B2 (ja) * | 2006-03-24 | 2011-07-27 | 株式会社東芝 | 音声認識装置、音声認識方法および音声認識プログラム |
JP2009128675A (ja) * | 2007-11-26 | 2009-06-11 | Toshiba Corp | 音声を認識する装置、方法およびプログラム |
CN102376305B (zh) * | 2011-11-29 | 2013-06-19 | 安徽科大讯飞信息科技股份有限公司 | 语音识别方法及系统 |
-
2015
- 2015-12-18 CN CN201510958150.8A patent/CN105513589B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1279806A (zh) * | 1997-09-19 | 2001-01-10 | 微软公司 | 用于识别连续和分立语音的语音识别系统 |
JP2001285523A (ja) * | 2000-03-28 | 2001-10-12 | Kddi Corp | 呼判別装置 |
US6601028B1 (en) * | 2000-08-25 | 2003-07-29 | Intel Corporation | Selective merging of segments separated in response to a break in an utterance |
CN1675684A (zh) * | 2002-08-09 | 2005-09-28 | 摩托罗拉公司(特拉华州注册) | 具有后端声音活动检测的分布式语音识别设备和方法 |
CN103794211A (zh) * | 2012-11-02 | 2014-05-14 | 北京百度网讯科技有限公司 | 一种语音识别方法及系统 |
CN104157285A (zh) * | 2013-05-14 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 语音识别方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105513589A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105513589B (zh) | 语音识别方法和装置 | |
US11189262B2 (en) | Method and apparatus for generating model | |
CN107301170B (zh) | 基于人工智能的切分语句的方法和装置 | |
US9934452B2 (en) | Pruning and label selection in hidden Markov model-based OCR | |
CN110136715B (zh) | 语音识别方法和装置 | |
CN112528637B (zh) | 文本处理模型训练方法、装置、计算机设备和存储介质 | |
CN109840052B (zh) | 一种音频处理方法、装置、电子设备及存储介质 | |
US11120802B2 (en) | Diarization driven by the ASR based segmentation | |
CN111435592B (zh) | 一种语音识别方法、装置及终端设备 | |
CN111160003B (zh) | 一种断句方法及装置 | |
CN114639386A (zh) | 文本纠错及文本纠错词库构建方法 | |
CN115309877A (zh) | 对话生成方法、对话模型训练方法及装置 | |
CN107680584B (zh) | 用于切分音频的方法和装置 | |
CN112818680A (zh) | 语料的处理方法、装置、电子设备及计算机可读存储介质 | |
CN111508478A (zh) | 语音识别方法和装置 | |
US10468031B2 (en) | Diarization driven by meta-information identified in discussion content | |
CN111681661B (zh) | 语音识别的方法、装置、电子设备和计算机可读介质 | |
KR102464156B1 (ko) | 사용자의 상태 및 상담원의 상태에 기초하여 사용자와 상담원을 매칭하는 콜센터 서비스 제공 장치, 방법 및 프로그램 | |
CN106959945B (zh) | 基于人工智能的为新闻生成短标题的方法和装置 | |
CN113053390B (zh) | 基于语音识别的文本处理方法、装置、电子设备及介质 | |
CN111027332B (zh) | 生成翻译模型的方法和装置 | |
CN114758665A (zh) | 音频数据增强方法、装置、电子设备及存储介质 | |
CN111191451B (zh) | 中文语句简化方法和装置 | |
CN113076932A (zh) | 训练音频语种识别模型的方法、视频检测方法及其装置 | |
CN113409792A (zh) | 一种语音识别方法及其相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |