掌桥专利:专业的专利平台
掌桥专利
首页

语音识别方法、装置、系统、计算机设备及存储介质

文献发布时间:2023-06-19 19:30:30


语音识别方法、装置、系统、计算机设备及存储介质

技术领域

本申请涉及语音识别技术领域,尤其涉及一种语音识别方法、装置、系统、计算机设备及存储介质。

背景技术

随着人工智能技术的飞速发展,自动语音识别已经进入工业、通信、家庭服务、消费电子产品等多个领域。目前,自动语音识别主要用于AI字幕、音视频内容安全审核等场景中。自动语音识别技术的发展主要可以分为三个阶段:GMM-HMM模型阶段、DNN-HMM模型阶段及端到端模型阶段,其中,端到端模型阶段主要有E2E(End-to-End,端到端)-CTC(Connectionist Temporal Classification),E2E(End-to-End,端到端)-RNNT(RecurrentNeural Networks Transducer,递归神经网络传感器)及E2E End-to-End,端到端)-AED(Attention-based Encoder-Decoder)三种端到端语音识别系统。

发明人通过对现有的三种端到端语音识别系统进行对比发现,E2E-CTC系统虽然相对于其他两种端到端语音识别系统而言,因为其没有神经网络的自回归(AED decoder及RNNT predict)结构,其在流式,解码速度,部署成本有着天然的优势,但是,E2E-CTC系统的语音识别精度比其他两种端到端语音识别系统要低。

发明内容

有鉴于此,现提供一种语音识别方法、装置、系统、计算机设备及计算机可读存储介质,以解决现有技术中的E2E-CTC系统的语音识别精度低的问题。

本申请提供了一种语音识别系统,包括:

特征提取模块,用于对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;

基于端到端CTC框架构建的声学模型,用于获取所述声学特征,并根据所述声学特征输出所述待识别语音对应的候选字的概率分数;

语言模型,用于输出各个候选字组成的句子的概率分数;

动态解码器,用于根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

可选地,所述声学模型为采用最大互信息量准则对基于端到端CTC框架构建的基线声学模型进行区分性训练后得到的,其中,在进行区分性训练时的每个训练步骤中直接在GPU上计算最大互信息量准则中的分子和分母的梯度并更新所述基线声学模型。

可选地,所述语言模型包括通用语言模型及领域语言模型,其中:

所述通用语言模型,用于输出各个候选字组成的句子的概率分数;

所述领域语言模型,用于输出各个候选字组成的句子的概率分数;

所述动态解码器,还用于根据所述候选字的概率分数、所述通用语言模型输出的所述句子的概率分数、所述领域语言模型输出的所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

可选地,所述语音识别系统还包括业务定制模块,其中:

所述业务定制模块,用于供用户设定热点词语;

所述动态解码器,还用于获取所述业务定制模块存储的热点词语,并根据所述候选字的概率分数、所述句子的概率分数及所述热点词语解码出所述待

可选地,所述业务定制模块包括领域定制单元及场景定制单元,其中:

所述领域定制单元,用于供用户设定属于预设领域的热点词语;

所述场景定制单元,用于供用户设定属于预设场景的热点词语。

可选地,所述动态解码器为基于端到端CTC框架构建的解码器。

本申请还提供一种语音识别方法,包括:

对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;

将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数;

通过语言模型输出各个候选字组成的句子的概率分数;

通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

可选地,所述声学模型通过如下方式训练得到:

获取训练数据集,所述训练数据集包括训练语音及所述训练语音对应的语音识别文本;

通过所述训练数据集并采用最大互信息量准则对基于端到端CTC框架构建的基线声学模型进行区分性训练,直到达到预设训练结束条件,得到所述声学模型,其中,在进行区分性训练时的每个训练步骤中直接在GPU上计算最大互信息量准则中的分子和分母的梯度并更新所述基线声学模型。

本申请还提供了一种语音识别装置,包括:

特征提取模块,用于对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;

输出模块,用于将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数;

获取模块,用于通过语言模型输出各个候选字组成的句子的概率分数;

解码模块,用于通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

本申请中通过对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数;通过语言模型输出各个候选字组成的句子的概率分数;通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。采用上述语音识别方案,可以使用基于端到端CTC框架构建的基线声学模型进行区分性训练后得到的声学模型对待识别语音进行声学识别,从而可以提升声学模型的识别精度,进而可以提高整个语音识别系统的识别精度,同时,由于声学模型是基于区分性训练得到的,使得声学模型的输出会更加平整,这样,最终通过解码器输出的解码结果的时间戳边界也更加准确。此外,本申请中的语音识别方案由于采用动态解码器进行解码,相当于传统技术中采用WFST解码器进行解码的方式,可以提高解码效率,并且方便业务定制和迭代。

附图说明

图1为本申请实施例的语音识别方法的一实施例的环境示意图;

图2为本申请所述的语音识别系统的一种实施例的框图;

图3为本申请所述的语音识别方法的一种实施例的流程图;

图4为本申请所述的语音识别装置的一种实施例的程序模块图;

图5为本申请所述的语音识别方法的另一种实施例的流程图;

图6为本申请所述的语音识别装置的另一种实施例的程序模块图;

图7为本申请实施例提供的执行语音识别方法的计算机设备的硬件结构示意图;

图8为一具体测试场景中的解码速度对比图。

具体实施方式

以下结合附图与具体实施例进一步阐述本申请的优点。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开采用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所采用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中采用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所采用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。

下面提供本申请的示例性应用环境。图1示意性示出了本申请实施例的语音识别方法的环境应用示意图。

在示例性的实施例中,该应用环境的系统可包括计算机设备10、服务器20。其中,计算机设备10与服务器20通过无线或有线网络连接。计算机设备10可以为诸如智能手机、平板设备、膝上型计算机、智能电视、车载终端等。服务器20可以为机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。网络可以包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙和/或代理设备等。网络还可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路及其组合和/或类似物。

下面,将在上述示例性应用环境下提供若干个实施例,来说明本申请中的语音识别方案。

参阅图2,其为本申请一实施例的语音识别系统的框架图。从图中可以看出,本实施例中所提供的语音识别系统,包括:特征提取模块201、声学模型202、语言模型203及动态解码器204。

特征提取模块201,用于对待识别语音进行特征提取处理,得到所述待识别语音的声学特征。

具体地,所述声学特征可以为MFCC特征(Mel-scaleFrequency CepstralCoefficients,梅尔倒谱系数)、FBank(FilterBank)特征等。

其中,当所述声学特征为MFCC特征时,可以通过特征提取模块201对所述待识别语音进行预加重、分帧、加窗、快速傅里叶变换、Mei滤波、对数运算、离散余弦变换、动态特征提取等步骤处理后得到。

当所述声学特征为FBank特征时,可以通过特征提取模块201对所述待识别语音进行预加重、分帧、加窗、傅里叶变换(STFT)、Mei滤波、对数运算等步骤处理后得到。

声学模型202为基于端到端CTC框架构建的声学模型,用于获取所述声学特征,并根据所述声学特征输出所述待识别语音对应的候选字的概率分数。

具体地,由于在提取声学特征的过程中,是对待识别语音进行分帧加窗后进行一序列处理操作得到的,因此,得到的声学特征是多帧语音信号的声学特征。声学模型在对声学特征进行处理时,对于每一帧语音信号对应的声学特征都会输出与该帧声学特征对应的所有可能的候选字的概率分数,比如,声学特征X对应为候选字a的概率为0.1、对应候选字b的概率为0.2、对应候选字c的概率为0.3、对应候选字d的概率为0.4。其中,每一个声学特征对应的候选字的概率分数可以组成一个候选字概率分数集合。

声学模型在对所有的帧语音信号(比如,N帧语音信号)对应的声学特征处理后,即可以输出N组候选字概率分数集合。

与传统的声学模型训练相比,基于端到端CTC框架构建的声学模型为采用CTC(Connectionist temporal classification)作为损失函数进行声学模型的训练,这种训练方式是一种完全端到端的声学模型训练,不需要预先对数据做对齐,只需要一个输入序列和一个输出序列即可以训练。这样就不需要对数据对齐和一一标注,并且CTC直接输出序列预测的概率,不需要外部的后处理。

采用CTC的方法是关心一个输入序列到一个输出序列的结果,因此,它只会关心预测输出的序列是否和真实的序列是否接近(相同),而不会关心预测输出序列中每个结果在时间点上是否和输入的序列正好对齐。

CTC的方法引入了blank标签(该帧没有预测值),每个预测的分类对应的一整段语音中的一个spike(尖峰),其他不是尖峰的位置认为是blank标签。对于一段语音,CTC最后的输出是spike(尖峰)的序列,并不关心每一个音素持续了多长时间。

在一实施方式中,为了提高声学模型的识别精度,所述声学模型为采用最大互信息量准则对基于端到端CTC框架构建的基线声学模型进行区分性训练后得到的,其中,在进行区分性训练时的每个训练步骤中直接在GPU上计算最大互信息量准则中的分子和分母的梯度并更新所述基线声学模型。

需要说明的是,所述基线声学模型为作为需要对比语音识别效果的声学模型,即所述基线声学模型为所述基于端到端CTC框架构建的声学模型的对比对象。

本实施例中的对声学模型的区分性训练方法相对于传统的区分性训练方法而言,可以在每一个训练步骤(minibatch)中直接在GPU上计算最大互信息量准则(MaximumMutual Information,简称MMI)中的分子和分母的梯度并更新所述基线声学模型。而传统的区分性训练方法的训练过程中,需要先在CPU上生成全部训练语料对应的alignment(用于表示使用Viterbi算法得到的一个句子最佳路径的HMM状态序列)和解码lattice(解码图,用于保存多种候选的识别结果),而后在每一个训练步骤中由预先生成的alignment和lattice分别计算分子和分母梯度并更新模型。

在一具体实施方式中,经过大量的测试集数据对基于端到端CTC框架构建的基线声学模型、基于端到端CTC框架构建的声学模型以及通过传统的区分性训练方法对基线声学模型进行训练后得到的声学模型进行语音识别测试后,可以得到如下表所述的测试结果:

通过对比可知,本申请中的声学模型的识别精度要优于基线声学模型及通过传统的区分性训练方法对基线声学模型进行训练后得到的声学模型。

在另一实施方式中,声学模型202也可以为其他端到端框架构建的声学模型,比如为E2E-RNNT模型、E2E-AED模型等。同理,这些端到端框架构建的声学模型也会根据所述声学特征输出所述待识别语音对应的候选字的概率分数。

语言模型203,用于输出各个候选字组成的句子的概率分数。

具体地,声学模型202输出所述待识别语音对应的候选字的概率分数后,语言模型203会将声学模型202输出的各个候选字组成句子,然后对组成的所有句子进行预测,得到各个句子的概率分数。

在一示例性的实施方式中,所述语言模型203可以包括通用语言模型及领域语言模型。其中,所述通用语音模型为用于针对通用的词语序列(句子)出现的可能性进行打分的语音模型。所述领域语言模型为用于针对某个领域内的词语序列(句子)出现的可能性进行打分的语音模型。

所述通用语言模型,用于输出各个候选字组成的句子的概率分数。

具体地,声学模型202输出所述待识别语音对应的候选字的概率分数后,通用语言模型会将声学模型202输出的各个候选字组成句子,然后对组成的所有句子进行预测,得到各个句子的概率分数。

所述领域语言模型,用于输出各个候选字组成的句子的概率分数。

具体地,声学模型202输出所述待识别语音对应的候选字的概率分数后,领域语言模型也会将声学模型202输出的各个候选字组成句子,然后对组成的所有句子进行预测,得到各个句子的概率分数。

动态解码器204,用于根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

具体地,动态解码器204在进行解码的过程中,会融合声学模型202输出的候选字的概率分数及语言模型203输出的句子的概率分数来实现解码过程,从而使得解码结果更加准确。

在一示例性的实施方式中,所述动态解码器优选为基于端到端CTC框架构建的解码器。基于端到端CTC框架构建的解码器在解码过程中,可以无需预编译解码资源,从而可以节省解码时间,提高解码速度。同时,基于端到端CTC框架构建的解码器也可以非常方便和各种语言模型进行融合解码,且每次对解码器的修改也不需要重新编译解码资源。

在一实施方式中,当解码器为端到端CTC框架构建的解码器时,解码器在解码过程中,会采用字同步方式进行解码,即解码器在每一步的解码过程中,会根据当前一步的解码过程对应的各个候选字的概率分数与所述当前一步的解码过程之前已解码出的句子组成的新的候选句子的概率分数解码出所述当前一步的解码过程的解码结果。

在一示例性的实施方式中,当语言模型203包括通用语言模型及领域语言模型时,动态解码器204,还用于根据所述候选字的概率分数、所述通用语言模型输出的所述句子的概率分数、所述领域语言模型输出的所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

具体地,态解码器204在进行解码的过程中,会融合声学模型202输出的候选字的概率分数及多个语言模型输出的句子的概率分数来实现解码过程,从而使得解码结果更加准确。

在一示例性的实施方式中,为了便于业务定制,所述语音识别系统还包括:业务定制模块。

所述业务定制模块,用于供用户设定热点词语。

具体地,用户可以通过所述业务定制模块设定一些热点词语,以便在动态解码器204进行解码时,可以根据所述业务定制模块设定的热点词语来对语音识别文本中的一些可能错误的词语进行纠正。

其中,所述热点词语可以采用前缀树技术存储。

所述动态解码器204,还用于获取所述业务定制模块存储的热点词语,并根据所述候选字的概率分数、所述句子的概率分数及所述热点词语解码出所述待识别语音对应的语音识别文本。

本实施例中,动态解码器204在解码过程中,会融合声学模型202输出的候选字的概率分数、语言模型输出的句子的概率分数及业务定制模块中存储的热点词语来实现解码过程,从而可以提高解码结果的准确度。

在一示例性的实施方式中,所述业务定制模块包括领域定制单元及场景定制单元,其中:

所述领域定制单元,用于供用户设定属于预设领域的热点词语。

具体地,所述预设领域可以为游戏领域、电影领域、电视剧领域等,在本实施例中不作限定。

所述场景定制单元,用于供用户设定属于预设场景的热点词语。

具体地,所述预设场景可以为稿件级别的场景,比如,XXX发的稿件。该场景下设定的热点词语可以为XXX。

本实施例中,通过在语音识别系统中增设领域定制单元及场景定制单元,使得用户可以方便对各种领域及各种场景下的待识别语音进行业务的定制,从而提高语音识别精度。

本实施例中语音识别系统通过对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数;通过语言模型输出各个候选字组成的句子的概率分数;通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。采用上述语音识别方案,可以使用基于端到端CTC框架构建的基线声学模型进行区分性训练后得到的声学模型对待识别语音进行声学识别,从而可以提升声学模型的识别精度,进而可以提高整个语音识别系统的识别精度,同时,由于声学模型是基于区分性训练得到的,使得声学模型的输出会更加平整,这样,最终通过解码器输出的解码结果的时间戳边界也更加准确。此外,本申请中的语音识别方案由于采用动态解码器进行解码,相当于传统技术中采用WFST解码器进行解码的方式,可以提高解码效率,并且方便业务定制和迭代。

在一示例性的实施方式中,为了便于本申请中的语音识别系统的推理部署,在实际的部署过程中,由于计算量最大的部分应该在神经网络模型的推理上,而这块计算密集的部分我们可以充分利用GPU的计算能力,因此,我们可以在部署的过程中分别从推理服务,模型结构及模型量化几部分优化模型推理部署,比如,可以采用以下几种优化方式:

1、模型采用F16半精度推理;

2、模型转Faster Transformer时,基于nvidia高度优化的transformer;

3、采用triton部署推理模型,自动组batch,充分提升GPU使用效率;

经过上述几种优化处理方式,可以在单块GPU T4下速度提升30%,吞吐提升2倍,1小时能转写3000小时长音频。

参阅图3,其为本申请一实施例的语音识别方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的语音识别方法包括:

步骤S30,对待识别语音进行特征提取处理,得到所述待识别语音的声学特征。

具体地,所述声学特征可以为MFCC特征(Mel-scaleFrequency CepstralCoefficients,梅尔倒谱系数)、FBank(FilterBank)特征等。

其中,当所述声学特征为MFCC特征时,可以通过特征提取模块201对所述待识别语音进行预加重、分帧、加窗、快速傅里叶变换、Mei滤波、对数运算、离散余弦变换、动态特征提取等步骤处理后得到。

当所述声学特征为FBank特征时,可以通过特征提取模块201对所述待识别语音进行预加重、分帧、加窗、傅里叶变换(STFT)、Mei滤波、对数运算等步骤处理后得到。

步骤S31,将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数。

具体地,在将声学特征输入至声学模型中,声学模型即会输出所述待识别语音对应的候选字的概率分数。

其中,声学模型在对声学特征进行处理时,对于每一帧语音信号对应的声学特征都会输出与该帧声学特征对应的所有可能的候选字的概率分数,比如,声学特征X对应为候选字a的概率为0.1、对应候选字b的概率为0.2、对应候选字c的概率为0.3、对应候选字d的概率为0.4。其中,每一个声学特征对应的候选字的概率分数可以组成一个候选字概率分数集合作为示例,声学特征X对应为候选字a的概率为0.1、对应候选字b的概率为0.2、对应候选字c的概率为0.3、对应候选字d的概率为0.4。其中,每一个声学特征对应的候选字的概率分数可以组成一个候选字概率分数集合。

声学模型在对所有的帧语音信号(比如,N帧语音信号)对应的声学特征处理后,即可以输出N组候选字概率分数集合。

在一示例性的实施方式中,所述声学模型通过如下方式训练得到:获取训练数据集,所述训练数据集包括训练语音及所述训练语音对应的语音识别文本;通过所述训练数据集并采用最大互信息量准则对基于端到端CTC框架构建的基线声学模型进行区分性训练,直到达到预设训练结束条件,得到所述声学模型,其中,在进行区分性训练时的每个训练步骤中直接在GPU上计算最大互信息量准则中的分子和分母的梯度并更新所述基线声学模型。

具体地,所述训练数据集可以从用于训练基线声学模型的数据集中选取解码置信度符合预设要求的训练样本数据来组成用于对所述基线声学模型进行区分性训练的训练数据集。比如,可以从15000小时的用于训练基线声学模型的数据集中选取3000小时的训练样本数据来组成用于对所述基线声学模型进行区分性训练的训练数据集。

在得到训练样本数据集后,即可将该训练样本数据集输入至所述基线声学模型进行区分性训练,直到达到预设训练结束条件,得到所述声学模型。

步骤S32,通过语言模型输出各个候选字组成的句子的概率分数。

具体地,声学模型在输出所述待识别语音对应的候选字的概率分数后,语言模型会将声学模型输出的各个候选字组成句子,然后对组成的所有句子进行预测,得到各个句子的概率分数。

在一实施方式中,当所述语言模型包括通用语言模型及领域语言模型时,还可以通过通用语言模型输出各个候选字组成的句子的概率分数,以及通过领域语言模型输出各个候选字组成的句子的概率分数。

步骤S33,通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

具体地,动态解码器在进行解码的过程中,会融合声学模型输出的候选字的概率分数及语言模型输出的句子的概率分数来实现解码过程,从而使得解码结果更加准确。

当当语言模型包括通用语言模型及领域语言模型时,动态解码器204在进行解码的过程,还会根据所述候选字的概率分数、所述通用语言模型输出的所述句子的概率分数、所述领域语言模型输出的所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

本实施例通过对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数;通过语言模型输出各个候选字组成的句子的概率分数;通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。采用上述语音识别方案,可以使用基于端到端CTC框架构建的基线声学模型进行区分性训练后得到的声学模型对待识别语音进行声学识别,从而可以提升声学模型的识别精度,进而可以提高整个语音识别系统的识别精度,同时,由于声学模型是基于区分性训练得到的,使得声学模型的输出会更加平整,这样,最终通过解码器输出的解码结果的时间戳边界也更加准确。此外,本实施例中的语音识别方案由于采用动态解码器进行解码,相当于传统技术中采用WFST解码器进行解码的方式,可以提高解码效率,并且方便业务定制和迭代。

参阅图4所示,是本申请语音识别装置40一实施例的程序模块图。

本实施例中,所述语音识别装置40包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的拍摄功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,语音识别装置40可以被划分为一个或多个模块,具体可以划分的模块如下:

特征提取模块41,用于对待识别语音进行特征提取处理,得到所述待识别语音的声学特征;

输出模块42,用于将所述声学特征输入至基于端到端CTC框架构建的声学模型,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数;

获取模块43,用于通过语言模型输出各个候选字组成的句子的概率分数;

解码模块44,用于通过动态解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本。

在一示例性的实施方式中,所述声学模型通过如下方式训练得到:

获取训练数据集,所述训练数据集包括训练语音及所述训练语音对应的语音识别文本;

通过所述训练数据集并采用最大互信息量准则对基于端到端CTC框架构建的基线声学模型进行区分性训练,直到达到预设训练结束条件,得到所述声学模型,其中,在进行区分性训练时的每个训练步骤中直接在GPU上计算最大互信息量准则中的分子和分母的梯度并更新所述基线声学模型。

参阅图5,其为本申请另一实施例的语音识别方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的语音识别方法包括:

步骤S50,从声学模型中获取待识别语音对应的候选字的概率分数,以及从语言模型中获取各个候选字组成的句子的概率分数。

具体地,所述声学模型以及语言模型可以为上述实施例中的声学模型以及语音模型。

在一示例性的实施方式中,所述从声学模型中获取待识别语音对应的候选字的概率分数,以及从语言模型中获取各个候选字组成的句子的概率分数可以包括步骤1-步骤3。

步骤1、对待识别语音进行特征提取处理,得到所述待识别语音的声学特征。

具体地,所述声学特征可以为MFCC特征(Mel-scaleFrequency CepstralCoefficients,梅尔倒谱系数)、FBank(FilterBank)特征等。

其中,当所述声学特征为MFCC特征时,可以通过特征提取模块201对所述待识别语音进行预加重、分帧、加窗、快速傅里叶变换、Mei滤波、对数运算、离散余弦变换、动态特征提取等步骤处理后得到。

当所述声学特征为FBank特征时,可以通过特征提取模块201对所述待识别语音进行预加重、分帧、加窗、傅里叶变换(STFT)、Mei滤波、对数运算等步骤处理后得到。

步骤2、将所述声学特征输入至基于端到端框架构建的声学模型中,通过所述声学模型根据所述声学特征输出所述待识别语音对应的候选字的概率分数。

具体地,在将声学特征输入至声学模型中,声学模型即会输出所述待识别语音对应的候选字的概率分数。

其中,声学模型在对声学特征进行处理时,对于每一帧语音信号对应的声学特征都会输出与该帧声学特征对应的所有可能的候选字的概率分数,比如,声学特征X对应为候选字a的概率为0.1、对应候选字b的概率为0.2、对应候选字c的概率为0.3、对应候选字d的概率为0.4。其中,每一个声学特征对应的候选字的概率分数可以组成一个候选字概率分数集合作为示例,声学特征X对应为候选字a的概率为0.1、对应候选字b的概率为0.2、对应候选字c的概率为0.3、对应候选字d的概率为0.4。其中,每一个声学特征对应的候选字的概率分数可以组成一个候选字概率分数集合。

声学模型在对所有的帧语音信号(比如,N帧语音信号)对应的声学特征处理后,即可以输出N组候选字概率分数集合。

步骤3、通过语言模型输出各个候选字组成的句子的概率分数。

具体地,声学模型在输出所述待识别语音对应的候选字的概率分数后,语言模型会将声学模型输出的各个候选字组成句子,然后对组成的所有句子进行预测,得到各个句子的概率分数。

在一示例性的实施方式中,当所述语言模型包括通用语言模型及领域语言模型时,所述通过语言模型输出各个候选字组成的句子的概率分数包括:通过所述通用语言模型输出各个候选字组成的句子的概率分数;通过所述领域语言模型输出各个候选字组成的句子的概率分数。

具体地,声学模型输出所述待识别语音对应的候选字的概率分数后,领域语言模型也会将声学模型输出的各个候选字组成句子,然后对组成的所有句子进行预测,得到各个句子的概率分数。

步骤S53,通过基于端到端CTC框架构建的解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本,其中,所述解码器在每一步的解码过程中,根据当前一步的解码过程对应的各个候选字的概率分数与所述当前一步的解码过程之前已解码出的句子组成的新的候选句子的概率分数解码出所述当前一步的解码过程的解码结果。

具体地,解码器在解码时会首先基于beam search(集束搜索)为基础的搜索策略从声学模型中获取各个候选字的概率分数,以及从语言模型中获取各个句子的概率分数,之后,解码器在每一步的解码过程中,会根据当前一步的解码过程对应的各个候选字的概率分数与所述当前一步的解码过程之前已解码出的句子组成的新的候选句子的概率分数解码出所述当前一步的解码过程的解码结,在完成所有解码步骤之后,即可以得到所述待识别语音对应的语音识别文本。

在一实施方式中,为了提高解码速度,所述解码器在每一步的解码过程中,会从当前一步的解码过程对应的各个候选字的概率分数中选取概率分数值处于K位以内的概率分数对应的候选字,将选取出的各个候选字与所述当前一步的解码过程之前已解码出的句子组成新的候选句子,并从新的候选句子中选取概率分数值处于M位以内的概率分数对应的句子作为当前一步的解码过程的解码结果,其中,K及M为大于1的整数,每一个候选句子的概率分数为选取出的候选字的概率分数及所述已解码出的句子的概率分数的和值。

具体而言,解码器在每一步的解码过程中,首先,会从当前一步的解码过程对应的各个候选字的概率分数中选取概率分数值处于K位以内的概率分数对应的候选字,然后,会将选取出的各个候选字与前面已解码出的句子组成新的候选句子,并将选取出的候选字的概率分数及前面已解码出的句子的概率分数的和值作为新的候选句子的概率分数,之后,会从新的候选句子中选取概率分数值处于M位以内的概率分数对应的句子作为当前一步的解码过程的解码结果。重复上次解码步骤N(N为最终解码结果的句子长度)次,并将在最后的第N步的解码结果中概率分数值排名在第一位的句子作为最终的解码结果,即作为所述语音识别文本。

作为示例,所述待识别语音对应的待识别文本为“我喜欢猫咪”,若当前为第3步的解码过程,则在解码时,会先从第三步的解码过程所对应的各个候选字(假设分别为:“换”、“欢”、“环”、“缓”)中的概率分数(假设各个候选字对应的概率分数分别为:0.1、0.7、0.05、0.15)中选取概率分数值处于K(假设K=3)位以内的概率分数对应的候选字,即会选择“换”、“欢”及“缓”作为选取出来的各个候选字。然后,解码器会将选取出的各个候选字与在第2步的解码过程中所解码得到的句子(假设解码得到的句子为“我喜”、“我洗”、“我吸”及“我习”)组成新的候选句子。新的候选句子包括:“我喜换”、“我洗换”、“我吸换”及“我习换”;“我喜欢”、“我洗欢”、“我吸欢”及“我习欢”;“我喜缓”、“我洗缓”、“我吸缓”及“我习缓”。接着,会将选取出的候选字的概率分数及在第2步的解码过程中所解码得到的句子的概率分数(假设在第2步的解码过程中解码得到的句子“我喜”、“我洗”、“我吸”及“我习”的概率分数分别为:0.4、0.1、0.2、0.3)的和值作为新的候选句子的概率分数。新的候选句子“我喜换”、“我洗换”、“我吸换”及“我习换”;“我喜欢”、“我洗欢”、“我吸欢”及“我习欢”;“我喜缓”、“我洗缓”、“我吸缓”及“我习缓”的概率分数分别为:0.5、0.2、0.3、0.4、1.1、0.8、0.9、1.0、0.45、0.15、0.25、0.45、0.55、0.25、0.35、0.45。之后,会从新的候选句子中选取概率分数值处于M(假设M=4)位以内的概率分数对应的句子作为第3步的解码过程的解码结果。第三步的解码过程的解码结果为:概率分数为1.1的“我喜欢”、概率分数为1.0的“我习欢”、概率分数为0.9的“我吸欢”及概率分数为0.8的“我洗欢”。

本实施例通过从声学模型中获取待识别语音对应的候选字的概率分数,以及从语言模型中获取各个候选字组成的句子的概率分数;通过基于端到端CTC框架构建的解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本,其中,所述解码器在每一步的解码过程中,根据当前一步的解码过程对应的各个候选字的概率分数与所述当前一步的解码过程之前已解码出的句子组成的新的候选句子的概率分数解码出所述当前一步的解码过程的解码结果。采用上述语音识别方案,通过基于端到端CTC框架构建的解码器直接根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本,而无需像现有的WFST解码器那样,在解码过程中把hmm,triphone(三音素),字典,语言模型编译成一个统一的HCLG网络来进行解码,因此,本实施例中的语音识别方案可以节省资源的消耗以及提高语音识别速度。同时,在解码过程中,还可以采用topk剪枝方法,以进一步提高解码速度,进而提高语音识别速度。

在一示例性的实施方式中,当所述声学模型为基于端到端CTC框架构建的声学模型,所述方法还包括:通过所述解码器在解码的过程中,判断所述声学模型输出的所述待识别语音对应的候选字是否为blank标签,若是,则跳过所述blank标签。

本实施例中,通过在解码过程中,通过跳过blank标签,从而大幅提升解码速度,进而提高语音识别速度。

在一示例性的实施方式中,当语音识别系统中包含有业务定制模块时,所述方法还包括:获取业务定制模块存储的热点词语,并将所述热点词语输入至所述解码器。

具体地,所述业务定制模块为供用户设定热点词语,当用户完成热点词语的设定后,该热点词语可以通过前缀树技术存储在业务定制模块中。通过前缀技术存储热点词语,可以方便热点词语的搜索与匹配。

其中,前缀树一般指字典树。又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。

所述通过基于端到端CTC框架构建的解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本包括:

通过所述解码器根据所述候选字的概率分数、所述句子的概率分数及所述热点词语解码出所述待识别语音对应的语音识别文本。

具体地,解码器在解码过程中,会融合声学模型输出的候选字的概率分数、语言模型输出的句子的概率分数及业务定制模块中存储的热点词语来实现解码过程,从而可以提高解码结果的准确度。其中,热点词语用于对语音识别文本中的错词进行纠正。

在一示例性的实施方式中,所述业务定制模块存储有属于预设场景的热点词语,所述通过所述解码器根据所述候选字的概率分数、所述句子的概率分数及所述热点词语解码出所述待识别语音对应的语音识别文本包括:通过所述解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的待纠正识别文本;通过所述解码器判断所述待纠正识别文本中是否包含有属于预设场景的热点词语;若所述待纠正识别文本中包含有属于预设场景的热点词语,则采用所述业务定制模块对所述待纠正识别文本进行纠正处理,得到所述语音识别文本。

具体地,解码器在解码的过程中,会通过业务定制模块存储的热点词语对解码得到的待纠正识别文本进行纠正处理,从而得到最终的语音识别文本。

比如,待纠正识别文本为“ABCDE”,业务定制模块存储的热点词语中包含有热点词语“AFC”,在解码过程中,即可以通过所述业务定制模块存储的热点词语“AFC”对待纠正识别文本“ABCDE”进行纠正,得到最终的语音识别文本“AFCDE”。

在另一实施方式中,所述业务定制模块还可以存储有属于预设领域的热点词语,所述通过所述解码器根据所述候选字的概率分数、所述句子的概率分数及所述热点词语解码出所述待识别语音对应的语音识别文本包括:通过所述解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的待纠正识别文本;通过所述解码器判断所述待纠正识别文本中是否包含有属于预设领域的热点词语;若所述待纠正识别文本中包含有属于预设领域的热点词语,则采用所述业务定制模块对所述待纠正识别文本进行纠正处理,得到所述语音识别文本。

具体地,解码器在解码的过程中,会通过业务定制模块存储的热点词语对解码得到的待纠正识别文本进行纠正处理,从而得到最终的语音识别文本,以提高语音识别准确度。

在一具体测试场景中,参阅图8所示,经过对比传统的WFST解码器的解码速度已本申请中的基于端到端CTC框架构建的解码器的解码速度,发现采用传统的WFST解码器对一秒的音频数据进行解码需要大约160ms,而采用本申请中的基于端到端CTC框架构建的解码器对一秒的音频数据进行解码,由于其在解码过程中是采用字同步方式进行解码,并在解码过程中采用Topk算法进行裁剪,因此,其解码时间可以大大减少,大约只需要40ms,若在解码过程中进一步采用跳blank标签的方式,则对一秒的音频数据进行解码只需要大约10ms,此时,若进一步采用工程手段(C++优化)对模型的开发代码进行优化,则对一秒的音频数据进行解码只需要大约5ms。

参阅图6所示,是本申请语音识别装置60另一实施例的程序模块图。

本实施例中,所述语音识别装置60包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的拍摄功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,语音识别装置60可以被划分为一个或多个模块,具体可以划分的模块如下:

获取模块61,用于从声学模型中获取待识别语音对应的候选字的概率分数,以及从语言模型中获取各个候选字组成的句子的概率分数;

解码模块62,用于通过基于端到端CTC框架构建的解码器根据所述候选字的概率分数、所述句子的概率分数解码出所述待识别语音对应的语音识别文本,其中,所述解码器在每一步的解码过程中,根据当前一步的解码过程对应的各个候选字的概率分数与所述当前一步的解码过程之前已解码出的句子组成的新的候选句子的概率分数解码出所述当前一步的解码过程的解码结果。

图7示意性示出了根据本申请实施例的适于实现语音识别方法的计算机设备7的硬件架构示意图。本实施例中,计算机设备7是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,计算机设备7至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口122。其中:

存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备7的内部存储模块,例如该计算机设备7的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备7的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备7的操作系统和各类应用软件,例如语音识别方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它拍摄芯片。该处理器121通常用于控制计算机设备7的总体操作,例如执行与计算机设备7进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。

网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备7与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备7与外部终端相连,在计算机设备7与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。

需要指出的是,图7仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。

在本实施例中,存储于存储器120中的语音识别方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。

本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的语音识别方法的步骤。

本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的语音识别方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

技术分类

06120115935957