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

技术领域

本申请属于语音识别技术领域,尤其涉及语音识别方法、装置及电子设备。

背景技术

基于语音识别(Automatic Speech Recognition,ASR)的人机交互技术,是终端人工智能(Artificial Intelligence,AI)领域中非常重要的一项技术,被广泛应用于各种电子设备(例如手机、平板电脑、台式电脑等)之中,以提高用户与电子设备之间的人机交互效率。为了实现移动终端的端侧语音识别,可以选择在云端进行语音识别再传回移动终端,或者在移动终端侧对语音数据进行识别。其中,在云端识别是当前的主流方案,借助于云端服务器等设备强大的计算能力,可以实现较好的语音识别效果。但云端识别方案存在着数据延时高、数据风险高和成本高等问题。因此,在移动终端侧实现语音识别成为了一种新的趋势。

变换器(Transducer)是一种端到端神经网络架构,循环神经网络变换器(Recurrent Neural Network-Transducer,RNN-T)模型是一种基于变换器架构的语音识别模型。RNN-T模型具有较好的语音识别能力,可以在量化后应用于移动终端,使得移动终端具有独立的语音识别能力,因此具有较为广泛的应用前景。但实际应用中发现,RNN-T模型的模型训练操作繁琐,且训练周期长。同时在对RNN-T模型量化的过程中,RNN-T模型的语音识别精度损失较大,进而使得移动终端对语音的识别能力下降。

发明内容

有鉴于此,本申请实施例提供了语音识别方法、装置及电子设备,可以解决现有技术中使用的语音识别模型,均需耗费较长时间进行训练的问题。

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

获取第一语音数据,并利用语音识别模型对第一语音数据进行处理,得到第一语音识别结果。其中语音识别模型是基于变换器架构的模型,且语音识别模型中包含编码器网络、预测网络和联合网络。编码器网络和预测网络中均包含卷积网络。

在本申请实施例中,语音识别模型的编码器网络和预测网络均由包含卷积神经网络。由于在相同的训练条件下,卷积神经网络比递归神经网络收敛更快更易训练。而本申请实施例的编码器网络和预测网络均是基于卷积神经网络的结构,因此,本申请实施例中的语音识别模型训练耗时短于RNN-T模型。同时,由于两个子网络在训练时均可以快速收敛。因此本申请实施例中可以不对两个子网络进行预训练,而是直接对整个语音识别模型进行联合训练,此时整个模型的训练操作复杂度大大降低。另一方面,相对递归神经网络,卷积神经网络不会对量化造成的误差进行累计放大,因此量化损失更小。实践证明,在相同的量化标准下,语音识别模型的量化损失低于RNN-T模型。因此量化后的语音识别模型,仍具有较好的语音识别能力。

在第一方面的第一种可能的实现方式中,编码器网络中包含至少一层普通卷积和至少一层第一因果卷积。

在本申请实施例中,一方面考虑到普通卷积存在对未来信息的需求,使得语音识别模型在接收到实时语音时,需要等待一定的时间以获取新的语音进行卷积,并进行语音识别。因此会使得语音识别模型存在时延,对语音识别的实时性降低。但另一方面,普通卷积会对语音的未来帧进行处理,即具有一定未来感受野(Receptive Field),可以实现对语音未来帧的特性分析。因此,可以提高语音识别模型对语音分析的效果,进而提高语音识别效果。基于上面两方面考虑,本申请实施例会在编码器网络中引入因果卷积,以改善时延问题。同时会设定因果卷积的总层数和普通卷积的总层数均不为0。即编码器网络中会同时包含两种卷积网络,以在改善时延问题的同时,使得语音识别模型又具有一定的未来感受野,进而使得语音识别模型的语音识别达到较好的效果。

在第一方面的第二种可能的实现方式中,预测网络中包含至少一层第二因果卷积。

由于预测网络需要对已解码出的文本序列进行处理,以实现对未来信息(下一字符)的预测。因此,在本申请实施例中选用了仅会对语音当前帧和历史帧进行处理的因果卷积作为预测网络的部分组成。使得预测网络可以实现较好的字符预测效果。

在第一方面的第一种可能的实现方式的基础上,在第一方面的第三种可能的实现方式中,编码器网络中包含的第一因果卷积的总层数,多于普通卷积的总层数。

为了满足一些实时性要求比较高的场景需求。例如需要电子设备实时响应用户语音的场景。普通卷积的数量不能太多,以防止时延过长。因此在本申请实施例中,设置预测网络中因果卷积的总层数多于普通卷积的总层数,使得对语音数据识别的时延更新,速度更快。此时语音识别模型的编码器网络,具有较大的过去感受野和较小的未来感受野。

在第一方面的第一种可能的实现方式的基础上,在第一方面的第四种可能的实现方式中,编码器网络由至少一个第一卷积块构成,其中,任一第一卷积块中,包含至少一层第一因果卷积或者包含至少一层普通卷积。

在本申请实施例中,通过卷积块的方式构建编码器网络,并在每个卷积块中均设置因果卷积和普通卷积中的至少一种,从而实现了对卷积网络的有效管理。

在第一方面的第一种可能的实现方式的基础上,在第一方面的第五种可能的实现方式中,第一因果卷积和普通卷积中总层数较少的卷积网络,为第一卷积神经网络,将第一因果卷积和普通卷积中总层数较多的卷积网络,为第二卷积神经网络。

在编码器网络中,第一卷积神经网络分散在第二卷积神经网络之间。

在本申请实施例中,可以对因果卷积和普通卷积进行交叉叠加放置。其中,交叉叠加是指将因果卷积和普通卷积中层数较少的卷积网络,分散在层数较多的卷积网络之间。以交叉叠加的方式搭建编码器网络,可以提高编码器网络的数据处理效果,进而提高语音识别模型的语音识别准确率。

其中,分散的方式可以是均匀分散或者随机分散等,此处不做过多限定。

在第一方面的第一种或第二种可能的实现方式的基础上,在第一方面的第六种可能的实现方式中,语音识别模型对第一语音数据进行处理,包括:

获取第一语音数据的声学特征数据。

通过编码器网络对声学特征数据进行特征提取,得到声学特征向量。

通过预测网络对第一文本序列进行特征提取,得到文本特征向量,第一文本序列为第一语音数据已解码出的文本序列,第一文本序列内包含至少一个字符。

通过联合网络对声学特征向量和文本特征向量进行联合处理,并基于得到的联合向量,预测第一文本序列后的下一字符,得到多个预测出的字符。

从多个预测出的字符中筛选出至少一个字符,并基于筛选出的至少一个字符对第一文本序列进行更新,得到更新后的第一文本序列。

判断是否完成对第一语音数据的字符识别。

若未完成对第一语音数据的字符识别,则基于更新后的第一文本序列,返回执行通过预测网络对第一文本序列进行特征提取的操作。

若完成对第一语音数据的字符识别,则根据更新后的第一文本序列确定对第一语音数据的第一语音识别结果。

在本申请实施例中,通过编码器网络和预测网络实现对语音数据的声学特征向量和文本特征向量的提取,并基于联合网络实现两者的向量联合和字符预测。再基于预测字符来实现对文本序列的更新,并在完成对语音数据字符识别时,基于更新的文本序列确定语音识别结果。而在未完成对语音数据字符识别时,则继续进行文本特征向量的提取和字符预测等操作。因此本申请实施例可以实现对语音数据的有效识别。

在第一方面的第六种可能的实现方式的基础上,在第一方面的第七种可能的实现方式中,通过预测网络对第一文本序列进行特征提取,得到文本特征向量的操作,包括:

利用至少一层第二因果卷积对第一文本序列进行卷积操作,得到文本特征向量。

在本申请实施例中,预测网络的因果卷积用于对已解码文本序列进行卷积操作,以提取其中各个字符的字符特征,进而得到对应的文本特征向量。

在第一方面的第七种可能的实现方式的基础上,在第一方面的第八种可能的实现方式中,在语音段利用至少一层第二因果卷积对第一文本序列进行卷积操作的过程中,单层第二因果卷积的卷积操作,包括:

获取该层第二因果卷积唯一关联的第一卷积缓存数据,并根据获取到的语音段第一卷积缓存数据,确定所需处理的目标字符特征,语音段第一卷积缓存数据,是基于该层第二因果卷积历史卷积操作的结果得到的数据。

利用该层第二因果卷积对语音段目标字符特征进行卷积操作,并根据此次卷积操作的结果,对语音段第一卷积缓存数据进行更新。

若对语音段第一卷积缓存数据获取失败,则确定所需处理的目标字符特征。

利用该层第二因果卷积对语音段目标字符特征进行卷积操作,并将此次卷积操作的结果,存储为该层第二因果卷积唯一关联的语音段第一卷积缓存数据。

考虑到每次预测网络对已解码文本序列进行特征提取的时候,对已解码文本序列中较早解码出字符而言,实际上会重复进行特征提取。因此一方面,本申请实施例在有因果卷积完成了当次的卷积操作时,均会将卷积操作得到的数据进行缓存,得到该层因果卷积对应的卷积缓存数据(若已有相应的卷积缓存数据,则此处即为更新相应的卷积缓存数据)。另一方面,不是直接对输入的数据进行卷积操作。而是先读取出本层对应的卷积缓存数据,再基于该卷积缓存数据来确定当次需要卷积的字符特征,并进行当次的卷积操作。进而使得本申请实施例可以极大地减少预测网络重复计算的工作量,减少语音识别模型的计算量,提升语音识别效率。

在第一方面的第九种可能的实现方式中,获取第一语音数据,包括:

获取第二语音数据,并对第二语音数据进行语音段截取,得到至少一个语音段。

从至少一个语音段中,筛选出第一语音数据。

在本申请实施例中,可以对语音数据进行语音段截取,并实现对局部语音段的识别。在一些原本语音段较长的情况中,可以通过设置语音段截取和筛选的规则,实现对语音数据的高效识别。例如当原本的语音数据(即第二语音数据)是较长的监控录音时,如可能有24小时长。此时由于用户可能仅在某一段时间内说过话,因此若直接对原本的语音数据进行识别,需要耗费较长的时间和资源才能完成识别。此时识别的效率较低。而通过本申请上述实例,技术人员可以选择性地设置语音段截取和筛选的规则,从而实现先从原本的语音数据确定出用户说话的语音段,再针对这些语音段进行识别的效果。因此可以提升语音识别的效率。

在第一方面的第一种可能的实现方式的基础上,在第一方面的第十种可能的实现方式中,获取第一语音数据,包括:

获取第三语音数据,并对第三语音数据进行语音段截取,得到M个第一语音数据,其中M为大于1的整数。

在本申请实施例中,可以对语音数据进行语音段截取,并实现对各个语音段的语音识别。因此可以应用在对一些离线语音数据识别,或实时语音流识别的场景之中。实现对语音数据的灵活识别,满足不同实际应用场景的需求,具有较强的场景兼容性。

在第一方面的第十种可能的实现方式的基础上,在第一方面的第十一种可能的实现方式中,获取第m个第一语音数据的声学特征数据,其中m为正整数,且m∈[2,M]。

通过编码器网络对声学特征数据进行特征提取,得到声学特征向量。

通过预测网络对第一文本序列进行特征提取,得到文本特征向量,第一文本序列为第m个第一语音数据已解码出的文本序列,第一文本序列内包含至少一个字符。

通过联合网络对声学特征向量和文本特征向量进行联合,并基于得到的联合向量,预测第一文本序列后的下一字符,得到多个预测出的字符。

从多个预测出的字符中筛选出至少一个字符,并基于筛选出的至少一个字符对第一文本序列进行更新,得到更新后的第一文本序列。

判断是否完成对第m个第一语音数据的字符识别。

若未完成对第m个第一语音数据的字符识别,则基于更新后的第一文本序列,返回执行通过预测网络对第一文本序列进行特征提取的操作。

若完成对第m个第一语音数据的字符识别,则根据更新后的第一文本序列确定对第m个第一语音数据的第一语音识别结果。

其中,通过编码器网络对声学特征数据进行特征提取,得到声学特征向量,包括:

利用至少一层普通卷积和至少一层第一因果卷积,对声学特征数据进行卷积操作,得到声学特征向量。

在本申请实施例中,通过编码器网络和预测网络实现对语音数据的声学特征向量和文本特征向量的提取,并基于联合网络实现两者的向量联合和字符预测。再基于预测字符来实现对文本序列的更新,并在完成对语音数据字符识别时,基于更新的文本序列确定语音识别结果。而在未完成对语音数据字符识别时,则继续进行文本特征向量的提取和字符预测等操作。因此本申请实施例可以实现对单条语音段的有效识别。同时,利用普通卷积和因果卷积对声学特征数据进行卷积操作,可以实现对声学特征向量的提取。

在第一方面的第十一种可能的实现方式的基础上,在第一方面的第十二种可能的实现方式中,在至少一层第一因果卷积对声学特征数据进行卷积操作的过程中,单层第一因果卷积的卷积操作,包括:

获取该层第一因果卷积唯一关联的第二卷积缓存数据,并根据获取到的第二卷积缓存数据,确定所需处理的目标特征数据,第二卷积缓存数据,是基于该层第一因果卷积,对第m-1个第一语音数据历史卷积操作的结果得到的数据。

利用该层第一因果卷积对目标特征数据进行卷积操作,并根据此次卷积操作的结果,对第二卷积缓存数据进行更新。

若对第二卷积缓存数据获取失败,则确定所需处理的目标特征数据。

利用该层第一因果卷积对目标特征数据进行卷积操作,并将此次卷积操作的结果,存储为该层第一因果卷积网络唯一关联的第二卷积缓存数据。

在一些将语音数据切割为多个语音段的场景中,如实时语音流的语音识别。相邻语音段之间是具有较强相关性的,因此编码器在对语音段的声学特征数据进行特征提取的时候,因果卷积和普通卷积的感受野会覆盖到相邻语音段的部分范围。此时在进行声学特征数据进行特征提取时,一部分的卷积运算其实是会重复计算,即存在重复提取的情况。为了在进行连续语音段识别时,减少语音识别模型的计算量。本对于编码器网络,一方面,本申请实施例会在卷积层(包括因果卷积和普通卷积)完成卷积操作时,将卷积操作得到的数据进行缓存,得到该层因果卷积对应的卷积缓存数据(若已有相应的卷积缓存数据,则此处即为更新相应的卷积缓存数据)。另一方面,不是直接对输入的数据进行卷积操作。而是先读取出本层对应的卷积缓存数据,再基于该卷积缓存数据来确定当次需要卷积语音帧的特征数据,并进行当次的卷积操作。进而使得本申请实施例可以极大地减少编码器网络重复计算的工作量,减少语音识别模型的计算量,提升语音识别效率。同时由于使用率相邻语音段的数据进行语音识别,因此语音识别的效果也更佳。

在第一方面的第十三种可能的实现方式中,可以将第一方面的第八种和第十二种可能的实现方式结合应用,即针对编码器网络和预测网络均添加卷积缓存机制。

在本申请实施例中,针对如语音流等对语音数据进行语音段切割,并进行语音段识别的场景。会对编码器网络设置卷积结果缓存机制,即将每一个卷积层当次的卷积结果均存储至该层相应的卷积缓存数据之中。在对后续的语音段进行语音识别的过程中。编码器网络中卷积层每次进行卷积操作时,可以先获取该卷积层相应的卷积缓存数据,并从获取的卷积缓存数据中选取出所需的数据。再对进行其余的特征数据卷积操作,以完成当次的卷积操作。相对每次处理语音段均重新进行所有的卷积操作而言,本申请实施例可以减少大量的重复卷积操作。因此可以极大地减少计算量,例如在实时语音流的语音识别中,相对无卷积缓存机制的方式,可以节约70%以上的计算量。

在第一方面各个可能的实现方式的基础上,在第一方面的第十四种可能实现方式中,利用语音识别模型对第一语音数据进行处理,包括:

获取第一语音数据的声学特征数据,并利用语音识别模型对声学特征数据进行处理。

在本申请实施例中,语音识别模型可以不具备语音特征数据的提取功能,而是通过其他完成对语音数据语音特征数据的提取功能后,再利用语音识别模型进行语音识别。此时可以简化语音识别模型的架构,降低模型搭建和训练要求。

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

数据获取模块,用于获取第一语音数据。

语音识别模块,用于利用语音识别模型对第一语音数据进行处理,得到第一语音识别结果。

语音识别模型是基于变换器架构的模型,且语音识别模型中包含编码器网络、预测网络和联合网络。

编码器网络和预测网络中均包含卷积网络

在第二方面的第一种可能的实现方式中,编码器网络中包含至少一层普通卷积和至少一层第一因果卷积。

在第二方面的第二种可能的实现方式中,预测网络中包含至少一层第二因果卷积。

在第二方面的第一种可能的实现方式的基础上,在第二方面的第三种可能的实现方式中,编码器网络中包含的第一因果卷积的总层数,多于普通卷积的总层数。

在第二方面的第一种可能的实现方式的基础上,在第二方面的第四种可能的实现方式中,编码器网络由至少一个第一卷积块构成,其中,任一第一卷积块中,包含至少一层第一因果卷积或者包含至少一层普通卷积。

在第二方面的第一种可能的实现方式的基础上,在第二方面的第五种可能的实现方式中,第一因果卷积和普通卷积中总层数较少的卷积网络,为第一卷积神经网络,将第一因果卷积和普通卷积中总层数较多的卷积网络,为第二卷积神经网络。

在编码器网络中,第一卷积神经网络分散在第二卷积神经网络之间。

在第二方面的第一种或第二种可能的实现方式的基础上,在第二方面的第六种可能的实现方式中,语音识别模块,包括:

声学特征提取模块,用于获取第一语音数据的声学特征数据。

编码器网络,用于对声学特征数据进行特征提取,得到声学特征向量。

预测网络,用于对第一文本序列进行特征提取,得到文本特征向量,第一文本序列为第一语音数据已解码出的文本序列,第一文本序列内包含至少一个字符。

联合网络,用于对声学特征向量和文本特征向量进行联合处理,并基于得到的联合向量,预测第一文本序列后的下一字符,得到多个预测出的字符。

解码模块,用于从多个预测出的字符中筛选出至少一个字符,并基于筛选出的至少一个字符对第一文本序列进行更新,得到更新后的第一文本序列。

判断是否完成对第一语音数据的字符识别。

预测网络,还用于在未完成对第一语音数据的字符识别时,则基于更新后的第一文本序列,返回执行通过预测网络对第一文本序列进行特征提取的操作。

若完成对第一语音数据的字符识别,则根据更新后的第一文本序列确定对第一语音数据的第一语音识别结果。

在第二方面的第六种可能的实现方式的基础上,在第二方面的第七种可能的实现方式中,通过预测网络对第一文本序列进行特征提取,得到文本特征向量的操作,包括:

利用至少一层第二因果卷积对第一文本序列进行卷积操作,得到文本特征向量。

在第二方面的第七种可能的实现方式的基础上,在第二方面的第八种可能的实现方式中,在语音段利用至少一层第二因果卷积对第一文本序列进行卷积操作的过程中,单层第二因果卷积的卷积操作,包括:

获取该层第二因果卷积唯一关联的第一卷积缓存数据,并根据获取到的语音段第一卷积缓存数据,确定所需处理的目标字符特征,语音段第一卷积缓存数据,是基于该层第二因果卷积历史卷积操作的结果得到的数据。

利用该层第二因果卷积对语音段目标字符特征进行卷积操作,并根据此次卷积操作的结果,对语音段第一卷积缓存数据进行更新。

若对语音段第一卷积缓存数据获取失败,则确定所需处理的目标字符特征。

利用该层第二因果卷积对语音段目标字符特征进行卷积操作,并将此次卷积操作的结果,存储为该层第二因果卷积唯一关联的语音段第一卷积缓存数据。

在第二方面的第九种可能的实现方式中,数据获取模块,包括:

获取子模块,用于获取第二语音数据,并对第二语音数据进行语音段截取,得到至少一个语音段。

筛选模块,用于从至少一个语音段中,筛选出第一语音数据。

在第二方面的第一种可能的实现方式的基础上,在第二方面的第十种可能的实现方式中,数据获取模块,包括:

获取第三语音数据,并对第三语音数据进行语音段截取,得到M个第一语音数据,其中M为大于1的整数。

在第二方面的第十种可能的实现方式的基础上,在第二方面的第十一种可能的实现方式中,语音识别模块,包括:

声学特征提取模块,用于获取第m个第一语音数据的声学特征数据,其中m为正整数,且m∈[2,M]。

编码器网络,用于编码器网络对声学特征数据进行特征提取,得到声学特征向量。

预测网络,用于对第一文本序列进行特征提取,得到文本特征向量,第一文本序列为第m个第一语音数据已解码出的文本序列,第一文本序列内包含至少一个字符。

联合网络,用于对声学特征向量和文本特征向量进行联合,并基于得到的联合向量,预测第一文本序列后的下一字符,得到多个预测出的字符。

解码模块,用于从多个预测出的字符中筛选出至少一个字符,并基于筛选出的至少一个字符对第一文本序列进行更新,得到更新后的第一文本序列。

判断是否完成对第m个第一语音数据的字符识别。

预测网络,还用于在未完成对第m个第一语音数据的字符识别时,则基于更新后的第一文本序列,返回执行通过预测网络对第一文本序列进行特征提取的操作。

若完成对第m个第一语音数据的字符识别,则根据更新后的第一文本序列确定对第m个第一语音数据的第一语音识别结果。

其中,通过编码器网络对声学特征数据进行特征提取,得到声学特征向量,包括:

利用至少一层普通卷积和至少一层第一因果卷积,对声学特征数据进行卷积操作,得到声学特征向量。

在第二方面的第十一种可能的实现方式的基础上,在第二方面的第十二种可能的实现方式中,在至少一层第一因果卷积对声学特征数据进行卷积操作的过程中,单层第一因果卷积的卷积操作,包括:

获取该层第一因果卷积唯一关联的第二卷积缓存数据,并根据获取到的第二卷积缓存数据,确定所需处理的目标特征数据,第二卷积缓存数据,是基于该层第一因果卷积,对第m-1个第一语音数据历史卷积操作的结果得到的数据。

利用该层第一因果卷积对目标特征数据进行卷积操作,并根据此次卷积操作的结果,对第二卷积缓存数据进行更新。

若对第二卷积缓存数据获取失败,则确定所需处理的目标特征数据。

利用该层第一因果卷积对目标特征数据进行卷积操作,并将此次卷积操作的结果,存储为该层第一因果卷积网络唯一关联的第二卷积缓存数据。

在第二方面的第十三种可能的实现方式中,可以将第二方面的第八种和第十二种可能的实现方式结合应用,即针对编码器网络和预测网络均添加卷积缓存机制。

本申请实施例的第三方面提供了一种语音识别模型,语音识别模型是基于变换器架构的模型,语音识别模型包括:编码器网络、预测网络和联合网络。

编码器网络和预测网络中,均包含卷积神经网络。

在第三方面的第一种可能的实现方式中,编码器网络中包含至少一层普通卷积和至少一层第一因果卷积。

在第三方面的第二种可能的实现方式中,预测网络中包含至少一层第二因果卷积。

在第三方面的第一种可能的实现方式的基础上,在第一方面的第三种可能的实现方式中,编码器网络中包含的第一因果卷积的总层数,多于普通卷积的总层数。

在第一方面的第一种可能的实现方式的基础上,在第一方面的第四种可能的实现方式中,编码器网络由至少一个第一卷积块构成,其中,任一第一卷积块中,包含至少一层第一因果卷积或者包含至少一层普通卷积。

在第三方面的第一种可能的实现方式的基础上,在第一方面的第五种可能的实现方式中,第一因果卷积和普通卷积中总层数较少的卷积网络,为第一卷积神经网络,将第一因果卷积和普通卷积中总层数较多的卷积网络,为第二卷积神经网络。

在编码器网络中,第一卷积神经网络分散在第二卷积神经网络之间。

其中,分散的方式可以是均匀分散或者随机分散。

本申请实施例的第四方面提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得电子设备实现如上述第一方面中任一项所述语音识别方法的步骤。

本申请实施例的第五方面提供了一种计算机可读存储介质,包括:存储有计算机程序,所述计算机程序被处理器执行时,使得电子设备实现如上述第一方面中任一项所述语音识别方法的步骤。

本申请实施例的第六方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述语音识别方法。

本申请实施例的第七方面提供了一种芯片系统,所述芯片系统包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现上述第一方面任一项所述的语音识别方法。

其中,芯片系统可以是单个芯片或者,多个芯片组成的芯片模组。

可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

图1是本申请一实施例提供的变换器网络结构的基本结构示意图;

图2A是本申请一实施例提供的编码器网络结构示意图;

图2B是本申请一实施例提供的卷积块结构示意图;

图2C是本申请一实施例提供的预测网络结构示意图;

图2D是本申请一实施例提供的流式卷积神经网络变换器模型结构示意图;

图3是本申请一实施例提供的流式卷积神经网络变换器模型训练流程示意图;

图4A是本申请一实施例提供的卷积过程示意图;

图4B是本申请一实施例提供的卷积过程示意图;

图5A是本申请一实施例提供的流式卷积神经网络变换器模型训练流程示意图;

图5B是本申请一实施例提供的对梅尔频谱特征数据的提取操作示意图;

图5C是本申请一实施例提供的流式卷积神经网络变换器模型训练流程示意图;

图5D是本申请一实施例提供的编码器网络进行卷积操作的示意图;

图5E是本申请一实施例提供的预测网络进行卷积操作的示意图;

图5F是本申请一实施例提供的预测网络进行卷积操作的示意图;

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

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

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

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

图7A是本申请一实施例提供的电子设备的一种结构示例图;

图7B是本申请一实施例提供的场景示意图;

图7C是本申请一实施例提供的场景示意图;

图7D是本申请一实施例提供的场景示意图;

图7E是本申请一实施例提供的场景示意图;

图8A是本申请一实施例提供的卷积操作示意图;

图8B是本申请一实施例提供的场景示意图;

图8C是本申请一实施例提供的场景示意图;

图9A是本申请一实施例提供的循环神经网络变换器模型结构示意图;

图9B是本申请一实施例提供的流式卷积神经网络变换器模型结构示意图;

图9C是本申请一实施例提供的卷积块结构示意图;

图9D是本申请一实施例提供的卷积块结构示意图;

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

图11A是本申请一实施例提供的电子设备的硬件结构示意图;

图11B是本申请一实施例提供的电子设备的软件结构框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

为了便于理解本申请实施例,此处先对本申请实施例进行简要说明:

图1是变换器的基本结构示意图。变换器包含核心的三个子网络,分别为:编码器网络(Encoder)、预测网络(Predict Network)和联合网络(Joint Network)。其中,各个子网络的功能如下:

编码器网络,用于对语音数据的声学特征进行特征提取,得到相应的声学特征向量。

预测网络,用于对语音数据已解码出的文本序列(即第一文本序列,以下简称为已解码文本序列)中各个字符进行特征提取,得到由各个字符的字符特征组成的文本特征向量。预测网络在进行特征解码时,也称为Decoder。其中,文本序列,是指由一个或多个字符构成的序列。

联合网络,用于将声学特征向量和文本特征向量进行联合,预测已解码文本序列后的下一个字符。其中,联合的方式包括但不限于如向量拼接和向量相加。

实际应用中,RNN-T模型的编码器网络和预测网络,均是采用长短期记忆网络(Long Short-Term Memory,LSTM)结构。为了使得RNN-T模型具备较好的识别效果,需要对编码器网络和预测网络分别进行预训练。再将训练好的两个子网络放入RNN-T模型,并对整个RNN-T模型进行联合训练,从而得到训练好可用的RNN-T模型。

在得到训练好的RNN-T模型之后,若需要将RNN-T模型存储至移动终端,则需要再对RNN-T模型进行量化。即将RNN-T模型参数的数据存储类型修改为占用字节数较小的类型,如将模型参数由64比特的双精度浮点型(double)更变为8比特的整数型(int),以实现对模型体积的压缩。再将量化后的RNN-T模型存储至移动终端,由移动终端在需要时调用。

在实际对RNN-T模型的训练和量化过程中,存在至少以下几个问题:

1、需要先对两个子网络进行预训练再进行RNN-T模型的联合训练,模型训练操作繁琐难度大,且整个训练的周期很长。例如,实际应用中为了使得语音识别模型识别效果较好,一般训练使用的样本语音数据总时长会在1000小时以上。实践中发现,基于这些样本语音数据的训练,RNN-T模型训练总耗时常常会达到40小时以上。

2、在进行RNN-T模型量化的时候,随着LSTM状态的不断累积,量化损失会进一步放大。进而导致最终量化后的RNN-T模型,其精度损失较大,对语音的识别准确性下降。

为了解决上述问题,本申请实施例基于变换器架构设计了一个流式卷积神经网络变换器(Streaming Convolutional Neural Networks Transducer,SCNN-T)模型(即语音识别模型,实际应用中,亦可以其他方式进行模型命名),用以语音识别。在SCNN-T模型中,编码器网络和预测网络均由多个卷积块构成。其中,编码器网络的卷积块,由若干层的因果卷积和普通卷积组成。预测网络的卷积块则由若干层的因果卷积构成。由于在相同的训练条件下,卷积神经网络比递归神经网络收敛更快更易训练。而本申请实施例的两个子网络均是基于卷积神经网络的结构,因此,本申请实施例中的SCNN-T模型训练耗时短于RNN-T模型。同时,由于两个子网络在训练时均可以快速收敛。因此本申请实施例中可以不对两个子网络进行预训练,而是直接对整个SCNN-T模型进行联合训练,此时整个模型的训练操作复杂度大大降低。另一方面,相对递归神经网络,卷积神经网络不会对量化造成的误差进行累计放大,因此量化损失更小。实践证明,在相同的量化标准下,SCNN-T模型的量化损失低于RNN-T模型。因此量化后的SCNN-T模型,仍具有较好的语音识别能力。

其中,对本申请实施例中可能涉及到的一些名词进行说明如下:

普通卷积和因果卷积(causal):普通卷积,是指我们常用的基础卷积网络。因果卷积是普通卷积的一种变种卷积网络。普通卷积的卷积核是左右展开的,在进行语音数据处理时,需要同时使用当前帧、当前帧之前的帧和当前帧之后的帧(即历史帧和未来帧)的信息。此时在利用普通卷积进行语音数据处理时,即需要等待新的语音数据才可以进行正常的语音数据处理。例如,假设普通卷积的卷积核尺寸为3×3,并需要对第t帧语音进行处理,此时则需要利用第t-1和t+1帧语音的信息。因此需要等待第t+1帧语音,待凑齐了这3帧的语音信息之后才能进行处理。

考虑到普通卷积需要使用未来信息,而这会导致整个语音数据处理的操作存在一定的时延。因果卷积是为了解决时延问题应运而生的一种变种卷积网络。因果卷积的卷积核仅会向一侧展开,在进行语音数据处理时,仅会使用当前帧和历史帧的信息。因此因果卷积无需未来信息也可以实现对语言数据的有效处理。例如假设因果卷积的卷积核尺寸为3×3,此时对第t帧语音进行处理,则需要利用第t-1和t-2帧语音的信息。由于这两帧语音均为历史帧,因此无需再等待未来的语音,即可实现对第t帧语音的处理。其中,本申请实施例不对所使用的普通卷积和因果卷积的卷积核大小、卷积核数量和卷积步长等卷积参数进行过多限定,可由技术人员根据实际需求设定。

同时,对本申请实施例的执行主体说明如下:

本申请实施例提供的语音识别方法可以应用于手机、笔记本电脑、嵌入式设备、平板电脑和可穿戴设备等移动终端类型的电子设备上,此时这些移动终端即为本申请实施例提供的语音识别方法的执行主体。亦可以应用于服务器和台式电脑等非移动终端类型的电子设备上,此时这些电子设备即为本申请实施例提供的语音识别方法的执行主体。本申请实施例对电子设备的具体类型不作任何限制,可根据实际应用场景确定。

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。其中,本申请实施例会按照SCNN-T模型的架构、训练过程、语音识别过程和具体应用场景说明的顺序,依次进行各个部分的说明。详述如下:

部分一、对本申请实施例中的SCNN-T模型架构进行说明。

SCNN-T模型是基于变换器架构设计的语音识别模型,因此模型的总体架构可以参考图1。在图1的基础上,相对RNN-T模型,SCNN-T模型主要是针对编码器网络和预测网络进行了结构更变。因此此处先对SCNN-T模型编码器网络和预测网络的结构进行说明如下:

针对编码器网络:参考图2A,本申请实施例中的编码器网络由N个卷积块构成。其中,第n个卷积块内包含Y

在本申请实施例中,不对卷积块数量N进行过多限定,在大于1的情况下,可由技术人员根据实际需求设定。应当说明地,卷积块的数量与SCNN-T模型的网络规模、体积、运算量和语音识别效果呈正相关。理论上N越大,SCNN-T模型的整体网络规模、体积和运算量也越大,此时对电子设备的存储和计算要求也越高,进而导致电子设备整体成本上升,但理论上的语音识别效果也会越好。因此实际应用中,需要技术人员根据实际电子设备的成本需求和语音识别效果需求进行评估,以确定出最终的N。作为本申请的一个实施例,N可以取1~100中的任意一项。

同时,编码器的每个卷积块均由因果卷积(即第一因果卷积)和/或普通卷积构成,本申请实施例不对每个卷积块中具体包含的因果卷积层数Y

在本申请实施例中,一方面考虑到普通卷积存在对未来信息的需求,使得SCNN-T模型在接收到实时语音时,需要等待一定的时间以获取新的语音进行卷积,并进行语音识别。因此会使得SCNN-T模型存在时延,对语音识别的实时性降低。但另一方面,普通卷积会对语音的未来帧进行处理,即具有一定未来感受野(Receptive Field),可以实现对语音未来帧的特性分析。因此,可以提高SCNN-T模型对语音分析的效果,进而提高语音识别效果。基于上面两方面考虑,本申请实施例会在编码器网络中引入因果卷积,以改善时延问题。同时会设定因果卷积的总层数和普通卷积的总层数均不为0。即编码器网络中会同时包含两种卷积网络,以在改善时延问题的同时,使得SCNN-T模型又具有一定的未来感受野,进而使得SCNN-T模型的语音识别达到较好的效果。

作为本申请中确定两者卷积层数的一种可选实现方式,考虑到每个普通卷积的对未来帧的处理范围是可以获知的,即每个普通卷积的时延是已知数据。在此基础上,可以先确定出N值,并根据实际应用场景对语音识别的实时性需求,来确定普通卷积的数量范围。再根据对语音识别的准确性需求和普通卷积的数量范围,来确定出因果卷积的数量。进而确定出两者卷积的实际层数情况。

作为本申请的一个可选实施例,为了满足一些实时性要求比较高的场景需求。例如需要电子设备实时响应用户语音的场景。普通卷积的数量不能太多,以防止时延过长。因此在本申请实施例中,设置因果卷积的总层数多于普通卷积的总层数,即

另外应当说明地,本申请实施例不对编码器网络内各个卷积层的放置方式进行过多限定,技术人员可根据实际需求设定。作为本申请的一个可选实施例,可以对因果卷积和普通卷积进行交叉叠加放置。其中,交叉叠加是指将因果卷积和普通卷积中层数较少的卷积网络(即第一卷积神经网络),分散在层数较多的卷积网络(即第二卷积神经网络)之间。分散的方式可以是均匀分散或者随机分散等,此处不做过多限定。例如,假设编码器网络内中共包含3层普通卷积和6层因果卷积,设置分散方式为均匀分散。此时可以参考图2B中的(a)部分或(b)部分。(a)部分中编码器网络包含3个卷积块,且每个卷积块的结构均为:普通卷积、因果卷积、因果卷积,(b)部分中编码器网络包含3个卷积块,且每个卷积块的结构均为:因果卷积、因果卷积、普通卷积。实践证明,以交叉叠加的方式搭建编码器网络,可以提高编码器网络的数据处理效果,进而提高SCNN-T模型的语音识别准确率。

针对预测网络:参考图2C,本申请实施例中预测网络由M个卷积块构成。其中,第m个卷积块内包含的因果卷积(即第二因果卷积)层数为Ym。M、m和Ym均为正整数,且1≤M,m∈[1,M],1≤Ym。在本申请实施例中,不对卷积块数量M进行过多限定,在大于1的情况下,可由技术人员根据实际需求设定。由于M的取值与N的取值原理基本相同,因此可以参考上述编码器网络中对N的取值说明来进行M取值,此处不予赘述。

由于预测网络需要对已解码出的文本序列进行处理,以实现对未来信息(下一字符)的预测。因此,在本申请实施例中选用了仅会对语音当前帧和历史帧进行处理的因果卷积来构建卷积块。其中,本申请实施例不对每个卷积块中具体包含的因果卷积的层数Ym进行过多的限定,技术人员可以根据实际需求进行设定。

上述图1、图2A、图2B和图2C所示实施例,均是对SCNN-T模型基本架构和子网络内部架构的说明。参考图2D,是对SCNN-T模型整体架构的示意图。其中解码模块又可称为搜索模块,用于对联合网络输出的字符进行字符搜索和确定。例如,联合网络在输出多个字符之后,解码模块会从中选取出部分字符作为可能的下一个字符。SCNN-T模型再会从中选取出一个字符,并得到由已解码文本序列和选取出的字符组成的新的已解码文本序列。该新的已解码文本序列可以作为语音识别结果或者作为预测网络新的输入数据。其中,字符搜索的具体实现方法此处不做过多限定,可由技术人员根据实际需求设定。例如在一些可选实施例中,可以选用束搜索(Beam Search)、贪心搜索(Greedy Search)或穷举搜索(Exhaustive Search)来实现字符搜索。

本申请实施例中,结合SCNN-T模型对语音数据的识别过程,对图2D进行简要说明。语音数据经由声学特征提取模块处理后,得到声学特征。再由编码器网络对声学特征进行分析提取,得到声学特征向量。另一边,将已解码出的文本序列输入至预测网络之中进行处理(当首次使用预测网络时,则可以向预测网络输入预设字符或字符串,即将预设字符或字符串作为初始的已解码文本序列),得到文本特征向量。联合网络再对声学特征向量和文本特征向量进行联合,得到后续一个或多个字符的概率矩阵,并确定出多个解码出的文本序列。最后由解码模块进行字符确定,并输出最终的文本序列(即语音识别结果)。其中,本申请实施例不对具体选用的声学特征和声学特征提取方法进行过多限定,可由技术人员根据实际需求设定。例如,声学特征可以是线性预测倒谱特征(Linear Prediction CepstralCoefficients,LPCCs)、语音频谱特征或者梅尔频谱特征(Mel Frequency CepstrumCoefficient,MFCC)等。同时,本申请实施例亦不对声学特征提取模块具体的实现方式进行过多限定,可由技术人员根据实际确定使用的声学特征,以及对声学特征的提取需求来进行设定。例如可以选用一些声学模型来作为本申请实施例中的声学特征提取模块,亦可以自行设计一些声学特征提取的函数,并封装为本申请实施例中的声学特征提取模块。

另外,应当说明地,图2D仅是SCNN-T模型基础整体架构。在不违背上述各个实施例实施例对SCNN-T模型架构说明的基础上,技术人员可以根据实际需求对图2D进行修改、细化或者新增。例如,在一些可选实施例中,可以根据实际需求,在编码器网络和预测网络中设置一些卷积网络以外的结构,以细化网络结构,满足实际数据处理需求。例如,可以在预测网络中设置维度扩充层,以实现对输入数据的维度调整。而在又一些可选实施例中,亦可以在声学特征提取模块前加上一个语音数据的预处理模块,用以对语音数据进行降噪等预处理,提升语音数据的质量。或者在解码模块之后增加一个后处理模块,以实现对模型输出结果的后处理,以提升最终输出的语音识别结果的可读性。

部分二、在上述对SCNN-T模型架构说明的基础上,本申请实施例对SCNN-T模型的训练过程说明如下:

首先应当说明地,在本申请实施例中,对SCNN-T模型可选的训练方式至少包括两种:

方式1、先对编码器网络和预测网络分别进行预训练,并在预训练完成后,再对整个SCNN-T模型进行联合训练。

方式2、不对编码器网络和预测网络进行预训练,而是对整个SCNN-T模型进行联合训练。

实际应用中,技术人员可以根据需求进行训练方式的设定。既可以是上述两种方式中的任一种,亦可以是技术人员设置的其他训练方式,此处不做过多限定。

另外,在确定具体的训练方式的同时,还需要确定对SCNN-T模型的具体训练方法。针对SCNN-T模型的具体训练方法,本申请实施例不做过多限定,可由技术人员根据实际需求进行设定。例如,在一些可选实施例中,考虑到SCNN-T模型与RNN-T模型整体架构基本相同,在进行语音识别时,主要差别在于编码器网络和预测网络两个子网络内对数据的处理方式不同。因此理论上可以采用对RNN-T模型的训练方法来实现对SCNN-T模型的训练。而在另一些可选实施例中,可以参考图3,基于上述方式2通过以下步骤S401-S405实现对SCNN-T模型的训练:

S401、对SCNN-T模型内的权重进行初始化。

S402、语音数据经由声学特征提取模块、编码器网络向前传播,同时已解码文本序列经由预测网络向前传播(预测网络的初始已解码文本序列为预设字符或字符串),再由联合网络将编码器网络的输入数据和预测网络的输入数据向前传播。

其中,已解码文本序列可以是语音数据对应的部分真实字符内容,也可以是由SCNN-T模型在训练过程中对语言数据进行处理后生成的字符内容(此时每次预测网络的输入均是前一次解码模块输出的文本序列),具体可由技术人员自行设定。

S403、计算SCNN-T模型输出的语音识别结果与语音数据对应的真实字符内容之间的总误差(如可以利用损失函数计算损失值,并将损失值作为总误差)。

S404、若总误差大于预设的期望值,则利用反向传播算法进行权重更新。即将总误差传回SCNN-T模型之中,求出各个网络层的误差,并根据网络层的误差更新SCNN-T模型内的权重,再继续执行S402。期望值由技术人员根据需求设置。

S405、若总误差小于或等于期望值,则结束训练,得到训练完成的SCNN-T模型。

其中,对S402中因果卷积和普通卷积对数据进行卷积处理的过程说明如下:

在本申请实施例中,所需卷积处理的数据包括语音数据和已解码文本序列。语音数据在经过声学特征提取后,再由编码器网络利用卷积处理提取特征向量。因此实际所需卷积处理的数据为声学特征数据和已解码文本序列。其中,声学特征数据是具有时间维度和声学维度(例如,当选用频率类特征作为本申请实施例的声学特征时,声学维度即是指频率维度)两个维度的数据。本申请实施例对因果卷积和普通卷积对一维数据和二维数据的处理过程进行示例说明。对于更高维度的数据,则可以参考对一维数据和二维数据的操作进行处理,此处不做过多说明。

对于待卷积数据是一维数据,可以参考图4A。其中,特征图是指待卷积数据的特征图。假设待卷积数据原始长度为12(即特征图中的12个空白格,每个空白格代表一个数据单元。卷积核大小为3×1,且要求卷积前后特征图大小不变(长度仍为12)。

参考图4A中的普通卷积过程,普通卷积需要同时参考过去信息和未来信息。相应的,本申请实施例在对某一个数据单元进行卷积时,需要同时参考该数据单元之前和之后的各一数据单元。但对于第一个数据单元和最后一个数据单元而言,无法获取到对应的过去信息或未来信息,进而难以实现卷积前后特征图大小不变。为了解决这一问题,本申请实施例会在特征图前后进行补零操作,即在第一个数据单元之前和最后一个数据单元之后各补一个空的数据单元(即图中的交叉斜线填充的格子)。从而使得本申请实施例可以正常对第一个数据单元和最后一个数据单元进行普通卷积,并得到卷积后大小不变的特征图。

参考图4A中的因果卷积过程,因果卷积过程需要同时参考多个过去信息。相应的,本申请实施例在对某一个数据单元进行卷积时,需要同时参考该数据单元之前的两个数据单元。而对于第一个数据单元而言,其并不具有过去信息。因此本申请实施例会特征图前进行补零操作,即在第一个数据单元之前补充两个空的数据单元。从而使得本申请实施例可以正常对第一个数据单元进行因果卷积,并得到卷积后大小不变的特征图。

对于待卷积数据是二维数据,可以参考图4B。特征图是指待卷积数据的特征图。假设待卷积数据原始大小为12×4(即特征图中的12×4个空白格,每个空白格代表一个数据单元)。卷积核大小为3×3,且要求卷积前后特征图大小不变(大小仍为12×4)。其中,当该二维数据是声学特征数据时,横向的12是时间维度(即语音帧),纵向的4是声学维度(声学特征的特征值)。当该二维数据为文本序列时,横向的12是字符维度,纵向的4是字符特征维度(字符特征的特征值)。

基于图4A所示实施例的相同原理,为了满足普通卷积对过去信息和未来信息的需求,以及因果卷积对多个过去信息的需求。本申请实施例同样会对二维数据进行补零操作。其中,对于普通卷积,参考图4B中的普通卷积过程,会在时间维的第一行数据单元之前和最后一行数据单元之后,分别补上一行空的数据单元(即图中的交叉斜线填充的格子)。同时在声学维度的第一列数据单元之前和最后一列数据单元之后,分别补上一列空的数据单元。对于因果卷积,参考图4B中的因果卷积过程,则会在时间维的第一行数据单元之前和最后一行数据单元之后,分别补上一行空的数据单元。同时在第一列数据单元之前补上两列空的数据单元。

因此,本申请实施例因果卷积和普通卷积在对数据进行卷积处理时,对于需要过去信息和未来信息的情况。若可以获取到相应的信息,则在获取到之后进行卷积处理。若获取不到,则会进行补零操作再进行处理。

在上述步骤1-5的基础上,本申请实施例不对SCNN-T模型训练的细节进行过多限定,可由技术人员根据实际需求设定。在本申请实施例中,由于编码器网络和预测网络均是采用卷积神经网络,因此步骤2对语言数据和已解码文本序列的向前传播过程速度快于基于循环神经网络的RNN-T模型。且在反向传播过程中,收敛速度也快于RNN-T模型。因此本申请实施例中的SCNN-T模型训练速度快耗时短。另外本申请实施例的步骤1-5是将编码器网络和预测网络放于SCNN-T模型中进行联合训练,而不是先预训练。由于编码器网络和预测网络收敛速度较快,因此误差满足期望值要求的情况下,联合训练耗时亦较短。因此可以在训练速度和效果均较好的情况下,降低整体模型训练的复杂度,降低训练难度。

作为本申请中对SCNN-T模型的一种可选的具体训练方式,在本申请实施例中选取了梅尔频谱特征作为输入编码器网络的声学特征,同时选用了方式2对整个模型进行联合训练。参考图5A,是本申请实施例基于部分SCNN-T模型结构下的训练流程示意图。对训练相关说明如下:

1、对各个子网络/模块的结构说明。

在本申请实施例中,编码器网络内包含多个卷积块,每个卷积块均包含因果卷积和普通卷积,且因果卷积层数多于普通卷积层数。同时编码器网络内普通卷积均匀分散在因果卷积之中,实现两种卷积网络的交叉叠加。

预测网络中包含多个卷积块,且每个卷积块之中包含多个因果卷积。另外,在卷积块之前,预测网络中还包含一个嵌入层,用以对已解码文本序列进行词特征嵌入(WordEmbedding)。

联合网络中,采用向量拼接的方式对声学特征向量和文本特征向量进行联合。同时联合网络中还包含至少一个全连接层,用于确定文本预测值。其中,全连接层数可由技术人员自行设定,例如可以设定为3层。

本申请实施例中采用损失函数计算文本预测值与真实文本标签之间的损失值,以作为评估模型训练效果的量化值。其中,具体使用的损失函数此处不做过多限定,可由技术人员根据实际需求设定,例如可以采用变换器损失函数(Transducer Loss)。

本申请实施例在进行SCNN-T模型训练时,不设置解码模块。因此在进行损失函数实质是衡量联合网络输出的文本预测值是否达到所需的精度。若达到,则说明对编码器网络、预测网络和联合网络的训练达到了要求。在此基础上,在实际使用SCNN-T模型时,补充对应的解码模块即可。其中应当说明地,本申请实施例中联合网络输出的文本预测值,实质是对下一个字符的预测结果。该预测结果,可以仅包含一个字符以及对应的概率。也可以同时包含多个字符并分别输出对应的概率,此时输出的即为概率矩阵。

2、对训练相关数据的准备。

(1)样本数据:

本申请实施例会准备若干条用于训练的语音数据(即样本数据),且每个样本数据均有相应的文本标注。文本标注即为该样本数据语音内容的真实文本序列。其中,文本标注中会利用分隔符将每个字符区分开。其中,字符具体可以是汉字、英文单词或者其他语言的单词,亦可以是一些具有特殊功能的符号,如一些用于辅助训练的控制符号。例如假设样本数据A语音内容的真实文本序列为“今天天气不错”,此时相应的文本标注即为“今_天_天_气_不_错”。

在本申请实施例中,文本标签即为样本数据对应的真实文本标注,用以与联合网络输出的文本预测值进行比对,计算相应的损失值。如上述实例中样本数据A对应的文本标签,即为“今_天_天_气_不_错”。

在本申请实施例中,为了实现对SCNN-T模型较好的训练效果,会对所有样本数据时长的累计值设定一个阈值,如可以设置为1000小时(根据需求可以修改该阈值大小)。但不对具体每条样本数据的时长进行过多限定。例如可以设置为1~20秒之间。因此具体的样本数据数量,则需要根据实际各条样本数据的时长累计值与阈值大小的情况来确定。若累计值没有达到阈值,则需继续增加样本数据。由于样本数量越多,理论训练效果会越好,但同时训练的时间也会越长。因此在累计值达到阈值的基础上,技术人员可根据实际需求来选择是否继续增加样本。同时本申请实施例不对样本数据的采样率、数据位深度和文件格式等进行过多限定,可由技术人员根据实际需求设定,例如可以设置为采样率为16kHz,数据位深度为16比特,文件格式为wav格式。

(2)词表文件:

本申请实施例会将所有可处理的字符统一记录至一个词表文件之中,且每个字符在词表文件中的位置固定。例如,假设设置了5000个汉字、1000个常用英文单词和3个控制符号作为本申请实施例中的字符。其中,3个控制符号分别是表示文本起始符的[START],表示空字符的[NULL],以及表示SCNN-T模型中使用的占位符[BLANK]。此时本申请实施例会将这6003个字符记录在词表文件之中,且会固定好每一个字符在词表文件中的位置。

(3)预测网络输入数据(即已解码文本序列)的准备:

在本申请实施例中,采用教师强制(teacher forcing)的机制来进行预测网络的输入处理。即不再是如图2D所示实施例中将解码模块的输出作为预测网络的输入数据,而是将部分真实文本序列作为预测网络的输入数据(此时已解码文本序列中的已解码,实质是指字符内容已知)。例如,假设样本数据A语音内容对应的真实文本序列为“今天天气不错”,此时本申请实施例可以将文本序列“今天天气不”作为预测网络输入数据,并对最后一个字符进行预测。基于这一原理,本申请实施例在准备预测网络输入数据时,会将各个样本数据对应的真实文本序列均去除最后一个字符,以得到作为预测网络输入数据的已解码文本序列。同样,该输入数据也会进行文本标注,如“今天天气不”文本标注为“今_天_天_气_不”。

另外,为了便于预测网络数据处理,以及损失函数计算。在本申请实施例中,可以以字符在词表文件中的位置索引(index)编号,来替代文本序列中的各个字符,以将文本标签和预测网络输入数据进行索引编号转换。例如假设“今天天气不错”这六个字符在词表文件中的位置索引编号分别为89、19、19、157、9和370,此时文本标签“今_天_天_气_不_错”可以转换为“89_19_19_157_9_370”,已解码文本序列“今_天_天_气_不”可以转化为“89_19_19_157_9”。在对SCNN-T模型进行训练时,将索引编号转换后的已解码文本序列输入预测网络。在计算损失函数时,亦是根据索引编号转换后的文本标签进行计算。

经过上述对预测网络输入的准备操作,每个样本数据都会对应有一个已解码文本序列(可以是索引编号转换后的文本序列),以及一个索引编号转换后的文本标签。

(4)编码器网络输入数据的准备:

由于编码器网络输入的是样本数据的梅尔频谱特征数据,因此在进行图5A所示的训练操作之前,需要先对样本数据进行梅尔频谱特征的计算。本申请实施例不对具体梅尔频谱特征的计算方法进行过多限定,可由技术人员根据实际需求设定。

作为本申请的一个可选实施例,参考图5B,对梅尔频谱特征数据的提取操作包括:

步骤1、对样本数据进行预加重处理。其中预加重处理其实是将样本数据通过一个高通滤波器。目的是提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。同时,也是为了消除发生过程中声带和嘴唇的效应,来补偿样本数据受到发音系统所抑制的高频部分,也为了突出高频的共振峰。本申请实施例中预加重系数可以取0.97。

步骤2、对预加重后的样本数据进行分帧,得到多个语音帧。

分帧是为了利用语音数据的短时平稳性,本申请实施例不对分帧的规则进行过多限定,可由技术人员自行设定。例如,可以将每一语音帧的帧长设置为25毫秒,分帧的步长可以设置为10毫秒。此时可以将样本数据分为多个语音帧。如,假设一个样本数据时长为10秒。在帧长设置为25毫秒,步长设置为10毫秒的情况下进行分帧,可以得到共1000个语音帧。

步骤3、对语音帧加汉明窗处理。加汉明窗可以增加语音帧左端和右端的连续性。

步骤4、对加汉明窗后的语音帧进行离散傅里叶变换(Discrete FourierTransform,DFT),得到样本数据的频谱。

由于样本数据在时域上的变换通常很难看出样本数据的特性,所以通常将它转换为频域上的能量分布来观察。不同的能量分布,就能代表不同语音的特性。所以在乘上汉明窗后,每个语音帧还必须再经过离散傅里叶变换以得到在频谱上的能量分布。进而得到样本数据中每个语音帧的频谱能力分布。

步骤5、对频谱取模平方得到功率谱。

步骤6、利用梅尔滤波器对功率谱进行滤波处理,得到梅尔频谱特征数据。

此时可以得到每个语音帧的声学特征,以及由这些语音帧声学特征构成的样本语音的特征向量矩阵(即梅尔频谱特征数据)。其中,梅尔滤波器的数量会影响所得到的梅尔频谱特征的数据维度。例如对于一个分帧后包含1000个语音帧的样本数据,假设梅尔滤波器的数量为E1。此时经过步骤6的处理之后,得到的梅尔频谱特征为1000×E1大小的特征向量矩阵。在本申请实施例中,梅尔滤波器的数量可以取41或者81。

3、对SCNN-T模型的训练过程:

训练开始时,先对SCNN-T模型内的权重进行初始化。同时在完成对模型训练相关的各个数据的准备工作后,开始对SCNN-T模型进行以下步骤的训练,参考图5C,具体包括:

步骤1,将样本数据的梅尔频谱特征数据输入编码器网络,并将已解码文本序列输入至预测网络。

考虑到本申请实施例中样本数据的数量较多,每次仅对一条样本数据进行的话效率过低。因此本申请实施例中每次会对多条样本数据进行处理,这些同一批次处理的样本数据称为一个批处理(batch),批处理中具体包含的样本数据数量称为批处理数(batchsize)。其中,批处理数的大小可由技术人员根据实际进行模型训练的终端的运算能力确定。在确定好批处理数的情况下,本申请实施例会从所有样本数据中,每次选取出批处理数个样本数据,进行当次的训练。本申请实施例不对样本数据的选取方法进行过多限定,可由技术人员自行设定,例如可以设定为随机抽取。例如,假设批处理数为8,选取方式为随机抽取,此时本申请实施例会随机选取8条样本数据作为当次训练的样本数据。

实际应用中每条样本数据的长度可能会存在差异,为了使得编码器网络可以正常进行卷积等操作,需要在选取出批处理之后,将批处理内的各条样本数据进行补齐。即使得同一批处理内的所有样本数据长度相同,该相同的长度取决于同一批处理内长度最长的样本数据。例如,假设批处理A中有8条样本数据,其中最长的样本数据为10秒。此时就需要将不足10秒的样本语句补齐至10秒时长。在本申请实施例中,为了防止补充的内容对样本数据本身造成影响,进而影响后续模型数据处理。可以选用“在样本数据末尾补零”的方式实现补齐操作。相应的,补齐后的各个样本数据在经由分帧处理后,得到的语音帧数量相同。在对批处理内的样本数据补齐完成后,利用图5B所示实施例的梅尔频谱特征计算方法来计算各条样本数据的梅尔频谱特征数据。

设批处理数为P,样本数据分帧处理后得到语音帧数量为Z,梅尔滤波器的数量为E1。在经由梅尔频谱特征计算之后,可以得到一个记录有梅尔频谱特征数据大小为P×Z×E1的三维特征矩阵。由于编码器网络中因果卷积和普通卷积,均是二维卷积网络,因此需要再补充一维数据至特征矩阵。此时可以得到大小为P×Z×E1×1的四维特征矩阵。再将该四维特征矩阵作为输入数据,输入至编码网络。

针对预测网络,其输入数据则是编码器网络当次的批处理内样本数据对应的已解码文本序列。且这些已解码文本序列均已经过索引编号转换。与上述样本数据补齐相同的原理,本申请实施例在输入预测网络之前,也会对已解码文本序列进行补齐,以使得输入至预测网络的各条已解码文本序列长度相同。其中,防止补充的内容对已解码文本序列本身造成影响,进而影响后续模型数据处理。可以选用“在已解码文本序列末尾补充空符号,例如可以补充[NULL]”的方式实现补齐操作。设补齐后的已解码文本序列长度为W。此时可以得到一个记录有各个样本数据对应的已解码文本序列,大小为P×W的二维特征矩阵。再将该二维特征矩阵作为输入数据,输入至预测网络。

以一实例进行举例说明,假设批处理内包含8条样本数据。经补齐和分帧后,每条样本数据均对应有1000个语音帧。每条样本数据对应的已解码文本序列长度均为12。梅尔滤波器数量为41。此时编码器网络的输入数据是记录有8条样本数据的梅尔频谱特征数据,数据维度为[8,1000,41,1]的四维特征矩阵。而预测网络的输入数据则是记录有8条样本数据的已解码文本序列,数据维度为[8,12]的二维特征矩阵。

步骤2,编码器网络对梅尔频谱特征数据进行特征提取,得到维度为[P,Z,1,C1]的梅尔特征向量。

本申请实施例在对梅尔频谱特征数据进行特征提取时,最终会将梅尔频谱维度提取为1。即通过不断卷积特征提取,使得最终梅尔频谱维度仅存在1维的特征数据。可以通过设置卷积中的卷积步长(stride)或者填充方式(valid padding),来实现对梅尔频谱维度提取为1的设置。同时会将第四维数据的扩充至C1维,最终输出大小为[P,Z,1,C1]大小的梅尔特征向量。其中,扩充的第四维数据用以记录对声学特征的深度特征数据。C1为大等于1的自然数,具体大小可由技术人员根据实际需求设定,例如可以设置为512或者200。可以参考图5D,假设每个卷积块均是由两层因果卷积和一层普通卷积组成的(图5D仅示出了一层因果卷积的卷积操作过程)。此时卷积块在卷积过程中,其内的因果卷积会对当前语音帧和历史的两个语音帧的梅尔频谱特征进行卷积,普通卷积则会对当前语音帧、历史的一个语音帧和未来的一个语音帧的梅尔频谱特征进行卷积。其中,当卷积过程中需要进行补零操作时,可以参考图4B所示实施例的原理进行补零。图5D中为添加的白色块即为补零的数据。

步骤3,预测网络对已解码文本序列进行特征提取,得到维度为[P,1,W,C2]的文本特征向量。

预测网络在对大小为[P,W]的已解码文本序列进行处理时,首先会对已解码文本序列进行词特征嵌入处理。在本申请实施例中,设置词特征嵌入的维度为C2,因此可以得到嵌入后大小为[P,W,C2]的已解码文本序列。其中,词特征嵌入是将每个字符映射为一个特征向量(vector),从而得到各个字符的字符特征。词特征嵌入使寻找相关或者相似的字符成为可能。向量的距离可以用欧式距离来衡量,也可以用余弦夹角等方式来衡量。C2为大等于1的自然数,具体大小可由技术人员根据实际需求设定,例如可以设定为512或者200。

在完成词特征嵌入之后,为了能与编码器网络输出的向量进行拼接,本申请实施例会再对已解码文本序列进行一次维度扩充,得到扩充后大小为[P,1,W,C2]的已解码文本序列。

接下来利用因果卷积对大小为[P,1,W,C2]的已解码文本序列进行卷积处理,以提取已解码文本序列的深度文本特征。可以参考图5E,假设已解码文本序列内容为“s_今_天_天_气_怎_么”,其中s是作为预设字符的[START]文本起始符。同时假设每个卷积块均是由2层因果卷积组成的。在经由词特征嵌入处理和维度扩充后会输入至卷积块进行处理。此时卷积块内各个因果卷积,会依次对已解码文本序列进行卷积处理,图5E中示出了单个卷积块进行卷积处理的过程。其中,因果卷积每次卷积操作时,仅会对当前处理的字符特征和在前的历史字符特征进行卷积。为了保持文本序列长度不变,在进行卷积操作时需要进行补零操作,图5E中为添加的白色块即为补零的数据。

在经由上述词特征嵌入、维度扩充和卷积操作处理之后,预测网络会输出大小为[P,1,W,C2]的已解码文本序列。

步骤4、联合网络对梅尔特征向量和文本特征向量进行维度数据复制和向量拼接,并计算对下一个字符的文本预测值。

本申请实施例选用了向量拼接的方式来联合梅尔特征向量和文本特征向量,在拼接前需要将两个向量的前三维数据变得相同,以在最后一维上实现两个向量的拼接。因此本申请实施例会将大小为[P,Z,1,C1]的梅尔特征向量的第三维数据内容,复制为文本特征向量的第三维数据内容。此时可以得到大小为[P,Z,W,C1]的梅尔特征向量。同理,将大小为[P,1,W,C2]的文本特征向量的第二维数据内容,复制为梅尔特征向量的第二维数据内容。此时可以得到大小为[P,Z,W,C2]的文本特征向量。至此两个向量前三维数据完全相同。

在完成数据内容复制后,本申请实施例会将两个向量拼接成一个大小为[P,Z,W,C1+C2]的联合向量。

在得到联合向量之后,会利用若干个全连接层对联合向量进行处理(图5C中仅示出了一个),得到下一个字符的预测概率值。在本申请实施例中,设词表文件中共记录有C3个字符。在全连接层进行处理时,针对每一样本数据,均会将C3个字符中各个个字符的预测概率值均计算出来。此时每个样本数据,均可以得到由C3个字符及相应的预测概率值组成的概率矩阵表。例如假设样本数据B的已解码文本序列为“今_天_天”,相应的文本标签为“今_天_天_气”,并假设生成的概率矩阵表是下表1:

表1

其中,表1中第一列是词表文件中所有记录的字符,第二列是针对样本数据B,各个字符对应的预测概率值。

在得到概率矩阵表后,将表中的字符添加至已解码文本序列句末,即可得到对样本数据的文本预测值。例如表1所示实施例中,可以得到“今_天_天_气”、“今_天_天_晴”、“今_天_天_去”…“今_天_天_器”等文本预测值。

在得到概率矩阵表后,再将其中预测概率值最大的文本预测值作为当前已解码文本序列对应的文本预测值,并进行分类输出。例如在表1的基础上,会将“今_天_天_气”,作为“今_天_天”的文本预测值,并进行后续的损失值计算等操作。

作为本申请的一个实施例,在图5D和图5E所示实施例的基础上,本申请实施例将步骤4增加进实施例进行说明。假设已解码文本序列“s_今_天_天_气_怎_么”对应的文本预测值为“今_天_天_气_怎_么_样”。此时可以参考图5F。再经由步骤4的向量拼接和全连接层等处理后,可以分类输出对应的文本预测值“今_天_天_气_怎_么_样”。

步骤5、利用损失函数计算文本预测值与文本标签之间的损失值,并基于损失值对SCNN-T模型进行权重更新。

在得到文本预测值之后,本申请实施例会利用损失函数计算当前批处理的文本预测值与文本标签之间的损失值。若该损失值达到期望值大于预设的期望值,则基于该损失值,利用反向传播算法对SCNN-T模型进行一次权重更新。再重新选取新的样本数据作为下一次的批处理,并重新执行图5C的操作。进而实现对模型的多次正向传播和反向传播更新权重,使得模型性能逐步满足要求,实现对SCNN-T模型权重的迭代更新。若在迭代更新过程中,某一次得到的损失值小于或等于期望值,则可以停止迭代结束训练,得到训练完成的SCNN-T模型。

应当说明地,完成训练之后得到的SCNN-T模型,理论上已经可以用于语音识别。但实际应用中,为了使得训练得到的SCNN-T模型具有较好的语音识别效果,模型内的权重往往均有较高的精度。例如一般可以将权重的数据类型设置为64比特的双精度浮点数或者32比特的单精度浮点数。此时得到的SCNN-T模型往往体积较大,且在运行时计算量较大,需要消耗较多的计算资源。因此对移动终端的存储空间和计算资源的要求均较高,实用性较低。为了使得SCNN-T模型更适用于移动终端,还可以对SCNN-T模型进行量化(实际应用中,若移动终端本身的存储空间和计算资源较为丰富,也可以不进行量化操作,并将模型存储和运行于移动终端之中)。即降低SCNN-T模型内权重的精度,以减小模型的体积和运行时所耗费的计算资源。例如将权重数据类型均设置为8比特的整数型(byte)。因此,作为本申请的一个可选实施例,在完成对SCNN-T模型的训练之后,还包括:对SCNN-T模型进行量化操作,并将量化后的SCNN-T模型存储至移动终端。其中,量化的具体方案,可由技术人员根据实际设定,此处不做过多限定。

部分三、在对SCNN-T模型训练完成的基础上,本申请实施例提供了一种语音识别方法,对语音识别过程说明如下:

首先应当说明地,虽然量化操作会改变SCNN-T模型的体积和运算量等,但量化前后SCNN-T模型对语音数据的识别流程并不会产生变化。因此以下对语音识别的过程说明中所指的SCNN-T模型,既可以是量化前的SCNN-T模型,也可以是量化后的SCNN-T模型。

参考图6A,是本申请实施例提供的SCNN-T模型语音识别的流程示意图,包括:

步骤1、电子设备获取语音数据,并将语音数据输入至声学特征提取模块。

其中,语音数据的来源,可以是电子设备本地存储的、通过网络获取的、其他设备发送的或者由电子设备自身的麦克风采集的。具体需根据实际应用场景确定,或者参考本申请实施例的第四部分关于SCNN-T模型具体应用场景说明,此处不做过多限定。

作为本申请的一个可选实施例,在将语音数据输入至声学特征提取模块之前,还包括:对语音数据进行降噪处理,以提升语音数据质量。其中,具体的降噪方法可由技术人员自行设定,此处不做过多限定。例如在一些可选实施例中,可以对语音数据进行带通滤波处理,以阻隔或减弱人声以外的音频成分干扰。

步骤2、由声学特征提取模块对语音数据进行声学特征提取,得到对应的声学特征数据,并将声学特征数据输入至编码器网络。

在得到语音数据之后,本申请实施例会利用声学特征提取模块来进行语音数据的声学特征提取。其中,具体选用的声学特征和声学特征提取方法,需与上述部分二模型训练中选取的声学特征和声学特征提取方法相同,因此具体可参考上述部分二模型训练中的说明,此处不予赘述。

同时,在对语音数据进行声学特征提取的过程中,本申请实施例会对语音数据进行分帧处理,从而得到对应的多个语音帧。其中,分帧的规则此处不做过多限定,可由技术人员根据需求设定。例如在一个可选实施例中,可以将语音帧的帧长设置为25毫秒,分帧步长设置为10毫秒。

步骤3、编码器网络对声学特征数据进行特征提取,得到声学特征向量,并将声学特征向量输入至联合网络。

在得到声学特征数据之后,编码器网络会对声学特征数据进行特征提取,以得到各个语音帧声学特征深度提取后的特征,以及由这些深度提取特征组成的声学特征向量。具体而言,编码器网络中包含N个卷积块,这些卷积块内的因果卷积和普通卷积,会逐层对声学特征数据进行卷积操作,以实现对每一语音帧声学特征的深度提取,进而得到由各个语音帧深度提取的特征构成的声学特征向量。其中,卷积块中因果卷积和普通卷积的卷积核大小、数量和卷积步长等卷积参数,此处不做过多限定。可由技术人员根据实际需求在构建SCNN-T模型时设定。因果卷积和普通卷积对声学特征数据的卷积操作,可参考图4A、图4B、图5C、图5D和图5E所示实施例的相关说明,此处不予赘述。

步骤4、将已解码文本序列输入预测网络进行特征提取,得到文本特征向量,并将文本特征向量输入至联合网络。

考虑到刚开始对语音数据进行识别的时候,没有已解码识别出来的字符。因此本申请实施例会预先设置一个字符或字符串来作为初始的“已解码文本序列”输入预测网络。即在对当前的语音数据进行处理的时候,第一次输入预测网络的可以是预设的字符或字符串。该预设的字符或字符串一般不会保留至语音识别结果中。本申请实施例不对具体预设的字符或字符串内容进行过多限定,可由技术人员自行设定。例如可以设定为字符“s”。

在对语音数据识别的过程中,若已经有了一部分解码出的字符,且还没有对语音数据识别完成。此时输入的“已解码文本序列”则是当前对语音数据已经解码出来的字符内容。例如,假设已经识别出来语音数据的部分内容“今_天_天”,此时就会将“今_天_天”作为已解码文本序列输入预测网络,以继续对后续字符进行预测识别。

在得到已解码文本序列之后,预测网络会对已解码文本序列进行特征提取,以得到相应的文本特征向量。具体而言,编码器网络中包含M个卷积块,这些卷积块内的因果卷积会逐层对已解码文本序列进行卷积操作,以实现对已解码文本序列中各个字符特征的深度提取,进而得到由深度提取的特征构成的文本特征向量。其中,卷积块中因果卷积的卷积核大小、数量和卷积步长等卷积参数,此处不做过多限定。可由技术人员根据实际需求在构建SCNN-T模型时设定。因果卷积对声学特征数据的卷积操作,可参考图4A、图4B、图5C、图5D、图5E和图5F所示实施例的相关说明,此处不予赘述。

步骤5、联合网络对声学特征向量和文本特征向量进行联合,计算对已解码文本序列后下一个字符的概率矩阵。

在接收到声学特征向量和文本特征向量之后,联合网络会以向量拼接或相加等方式来实现两个向量之间的联合,进而得到一个联合向量。在得到联合向量之后,再利用全连接层等进行处理,实现对已解码文本序列基础上的下一个字符概率计算。最后得到一个包含多个可能字符以及各个可能字符的概率值的概率矩阵。本申请实施例中,字符识别的过程实质是对语音数据内各个语音帧进行字符识别。

在刚开始对语音数据进行处理,还没有已解码识别出来的字符时,联合网络在得到联合向量后,会基于联合向量数据对第一个语音帧进行字符识别。若识别结果为语音帧对应字符为空字符的情况,会继续对下一语音帧进行分析,直至得到一个不为空字符的结果。再输出该不为非空字符的概率矩阵,并执行步骤6。后续再执行步骤5时(本申请实施例可能会执行多次步骤4和步骤5),已解码文本序列不是预设字符或字符串。且经过步骤4的处理后,联合网络得到了最新已解码文本序列的文本特征向量。此时联合网络会继续从前一次已分析语音帧的下一语音帧开始(例如前一次已得到了对于第t个语音帧的字符识别结果,此次就会从第t+1个语音帧开始),利用当前得到的联合向量来进行语音帧的字符识别。同样,若识别结果为语音帧对应字符为空字符的情况,会继续对下一语音帧进行分析,直至得到一个不为空字符的结果。再输出该不为非空字符的概率矩阵,并执行步骤6。

其中,联合网络具体的处理细节此处不做过多说明,具体可参考图5C所示实施例中步骤4的相关说明,或者参考RNN-T模型中联合网络的实现过程。亦可以由技术人员根据实际需求来设定具有上述功能的联合网络,以实现本申请实施例步骤5的操作。同时,图6A中的概率矩阵仅为对本申请实施例概率矩阵的示例性说明,实际技术人员也可以根据需求更改概率矩阵的格式。另外,概率矩阵中包含的字符数量,亦可由技术人员根据实际需求设定。例如,在一些可选实施例中,可以设定为词表文件中包含的字符的总数量。此时词表文件中每个字符以及相应的概率值,均会包含于概率矩阵之中。

步骤6、由解码模块对概率矩阵进行字符搜索,筛选出多个可能的字符,并基于筛选出的字符和已解码文本序列,得到多个可能文本序列。

由于概率矩阵中包含的字符数量较多,在将这些字符与已解码文本序列组成新的文本序列时,需要耗费较多资源判断新的文本序列的合理性。因此在本申请实施例中会对概率矩阵进行字符搜索,即从概率矩阵中筛选出部分字符作为后续组成新文本序列的可能字符。

以一实例进行举例说明,假设已解码文本序列为“今_天_天”,概率矩阵为下表2(左边列为可能的字符,右边列为对应的概率值):

表2

同时假设使用束搜索筛选出了字符“气”、“晴”、“去”和“齐”。此时将这些字符放置在已解码文本序列之后可以得到相应的4个可能文本序列为:

1、“今_天_天_气”。

2、“今_天_天_晴”。

3、“今_天_天_去”、

4、“今_天_天_齐”

步骤7、判断是否完成对语音数据的字符识别。若完成对语音数据的字符识别,则将可能文本序列中概率最高的文本序列作为语音识别结果。若未完成对语音数据的字符识别,则将可能文本序列中概率最高的文本序列作为新的已解码文本序列输入至预测网络,以重复执行本申请实施例步骤4-步骤7的操作,直至对语音数据识别完成。

对于未完成对语音数据的字符识别的情况,本申请实施例会将可能文本序列中概率最高的文本序列作为新的已解码文本序列,并执行步骤4。即步骤4是步骤7一种可能情况执行的操作。此时步骤4输入的已解码文本序列则为该新的已解码文本序列。

其中,判断是否完成对语音数据字符识别的依据,是看语音数据所有语音帧的字符识别是否均完成(即每个语音帧是否均有对应的字符识别结果,该结果可以是空字符)。若所有语音帧字符识别完成,则认为完成了对语音数据的识别,此时将概率最大的文本序列作为语音识别结果即可。若没有对全部语音帧均识别完成,则仍需继续对未完成的语音帧进行步骤5-步骤7的操作。此时会将概率最大的文本序列作为新的已解码文本序列输入至预测网络,以开始对下一个语音帧的字符识别,直至对所有语音帧识别完成。

例如,假设4个可能文本序列为:“今_天_天_气”、“今_天_天_晴”、“今_天_天_去”和“今_天_天_齐”,且概率最高的可能文本序列为“今_天_天_气”。同时假设在本申请实施例步骤6后发现仍有语音帧未进行字符识别。此时本申请实施例会将“今_天_天_气”作为新的已解码文本序列输入至预测网络,进行后续字符的解码识别。

其中应当说明地,由步骤7可知,无论是否完成对语音数据的字符识别,都需要确定出可能文本序列中概率最高的文本序列。在本申请实施例中,不对确定该概率最高的文本序列的执行时机进行过多限定。可以是步骤7“判断是否完成对语音数据的字符识别”之前执行。此时步骤7只需要读取该确定出的文本序列即可。也可以是在步骤7“判断是否完成对语音数据的字符识别”之后执行。此时需要在步骤7中根据可能字符的概率值,来确定出概率最高的文本序列。具体可由技术人员根据实际需求确定。

为本申请的一个可选实施例,参考图6B。若完成对语音数据的字符识别,在从可能文本序列中筛选出概率最大的文本序列之后,本申请实施例还会对筛选出的文本序列进行后处理。再将后处理得到的结果作为语音识别结果输出。此时SCNN-T模型实还包含一个后处理模块。其中,后处理是指对文本序列进行断句、顺滑、标点预测和语义纠错等处理,使得输出的语音识别结果更加准确且满足用户的阅读习惯,提升最终输出的语音识别结果的可读性。

考虑到SCNN-T模型实际应用的场景可能较为复杂,有时可能会获取到较长的语音数据,或者获取到的是实时的语音流(如用户实时说的话)。此时对语音数据的识别难度会大大提高。因此作为本申请的一个可选实施例,参考图6C,在上述步骤1获取到语音数据之后,不会直接将获取到的语音数据输入至声学特征提取模块,而是先会将语音数据切割成连续多段语音数据片段(以下简称语音段,当语音数据是语音流时,切割操作则是指对接收到的语音流进行预设时长的截取)。再按照在语音数据中从前到后的顺序进行语音段选取,并将语音段输入至声学特征提取模块。再基于本申请实施例中的步骤2-步骤7实现对该语音段的语音识别。此时,步骤2-步骤7中所述的语音数据,均是指语音段。应当说明地,对语音段的切割规则此处不做过多限定,可由技术人员根据实际需求设定。例如可以设置为将语音数据切割为预设时长均为S秒的语音段(最后一个语音段时长可以低于S秒),S为大于0的数。此时技术人员可以自行设定S的值,如1秒或者100毫秒到200毫秒。同时,当语音数据的时长等于或低于S时,则不需要进行切割。

在识别完当前语音段之后,再开始对下一语音段进行语音识别,直至将该语音数据的所有语音段均识别完成。其中,若是实时的语音流,则会持续进行语音段截取和识别的操作,直至满足预设的停止条件。该停止条件可由技术人员根据实际需求设定,或者根据实际应用场景确定。例如可以设置为预设等候时长内未检测到语音,或者设置一个最长等待时长,并在达到等待时长时停止。

以一实例进行SCNN-T模型语音识别过程的示例说明,假设语音数据C内容的真实文本序列为“今天天气”,选取的声学特征为梅尔频谱特征,初始已解码文本序列设置为字符“s”,且搜索模块搜索的数量为4。

参考图6D,一方面语音数据会经过声学特征提取模块和编码器网络的处理,实现对语音数据的分帧处理和语音特征向量的提取。另一方面,在首次使用预测网络时(是指对语音数据C进行识别过程中,首次使用预测网络),会将字符“s”作为输入,并输出对应的文本特征向量。而非首次使用预测网络的过程中,则会实际最新的已解码文本序列作为输入,并输出对应的文本特征向量。

联合网络在接收到声学特征向量和文本特征向量之后,会进行向量联合,并计算出对应下一字符的概率矩阵。假设在对语音数据的处理过程中,已解码文本序列更新至“今_天_天”。此时联合网络会输出“今_天_天”后下一字符的概率矩阵。

假设得到的概率矩阵与表1相同。此时搜索模块会根据概率进行搜索,确定出其中概率最大的4个字符“气”、“晴”、“去”和“器”,并将这些字符放置在已解码文本序列“今_天_天”之后,得到相应概率最优的4个可能文本序列,分别为:

1、“今_天_天_气”。

2、“今_天_天_晴”。

3、“今_天_天_去”、

4、“今_天_天_器”

在得到4个可能文本序列之后,本申请实施例会判断语音数据的每个语音帧是否均有对应的字符识别结果,其中字符识别结果可以是空字符。

若所有语音帧均有字符识别结果,则判定为当前已完成对语音数据字符识别,并将可能文本序列中概率最高的文本序列作为识别结果。再对识别结果进行后处理,最后输出后处理之后的识别结果“今天天气”。

若还有语音帧未由字符识别结果,则判定为当前未完成对语音数据字符识别,并将可能文本序列中概率最高的文本序列作为新的已解码文本序列。该新的已解码文本序列用于解码下一字符。因此本申请实施例会将“今_天_天_气”作为输入数据,输入至预测网络,开始解码下一字符。因当说明地,在本申请实施例中,由于语音数据C内容的真实文本序列为“今天天气”。因此在得到可能文本序列“今_天_天_气”之后,若还有语音帧未由字符识别结果。则说明后面的语音帧均为空的语音帧,可能是用户未说话时采集的数据,也可能是补零操作带来的空语音帧。对于SCNN-T模型而言,其并不知道后面的语音帧均为空语音帧,因此仍会继续进行处理。直至将所有语音帧均处理完成后,再输出最终的语音识别结果“今天天气”。

部分四、对SCNN-T模型使用的场景进行说明。

首先应当说明地,本申请实施例中将电子设备分为了移动终端和非移动终端两类。一方面对于SCNN-T模型的训练,理论上若电子设备具有相应的训练能力,无论移动终端还是非移动终端,均可以作为本申请实施例中SCNN-T模型训练的执行主体。另一方面,考虑到量化前的SCNN-T模型,模型参数量大,使得模型的体积大且运行时占用计算资源较多。但同时模型的精度也较高。反之,量化后的SCNN-T模型,模型参数量不变或者较小,同时参数精度下降。使得SCNN-T模型的体积较小且运行时占用资源较少。但同时模型精度也会有所下降。实际应用中,根据不同电子设备的配置情况以及实际应用场景的需求,技术人员可以自行设定实际安装SCNN-T模型的电子设备类型,以及安装量化前还是量化后的SCNN-T模型。例如,在一些可选实施例中,考虑到移动终端存储空间和计算资源相对较少,因此可以选择在移动终端中安装量化后的SCNN-T模型。而在另一些可选实施例中,考虑到台式电脑、服务器等非移动终端的电子设备,其存储空间较大且计算资源丰富,因此可以选择在这些非移动终端的电子设备中安装量化前的SCNN-T模型。

另外,根据对语义识别实时性要求高低,将应用场景分为两类:

第一类场景:高实时性要求的应用场景,例如使用语音助手、语音输入法、听写系统和实时翻译程序等应用程序。在第一类场景中,需要对用户语音进行实时语音流采集和识别,做到用户边说话边识别出结果。同时该场景内用户语音时长往往无法预估,需要持续对用户语音进行识别。

第二类场景:较低实时性要求的应用场景,即离线语音识别,例如本地语音数据识别。在第二类场景中,对每个语音数据的识别都是相对独立的操作,往往可以一次性获取到一条完整的语音数据,且实时性要求相对较低。

本申请实施例提供的语音识别方法可以适用于上述任一类场景的需求。以下以执行主体为移动终端,安装的是量化后的SCNN-T模型为例,来对两类场景下的移动终端语音识别过程进行说明:

SCNN-T模型一般用于支持移动终端中的某个系统功能或者某个应用程序的部分功能,在本申请实施例中,将需要SCNN-T模型支持的功能称为相关功能。这些功能可以是语音识别功能本身,也可以是基于语音识别功能衍生的其他功能,例如基于语音识别功能的实时翻译功能。实际应用中,SCNN-T模型可以支持多个功能,因此移动终端内可以同时具有一个或多个相关功能。

针对第一类场景进行语音流实时识别,以一实例进行举例说明。参考图7A的(a)部分,假设作为执行主体的移动终端A内包含麦克风、处理器、存储器和显示设备。其中,麦克风用于采集用户语音数据,存储器用于加载SCNN-T模型,处理器用于进行SCNN-T模型的运算。参考图7A的(b)部分,在本申请实施例中处理器可以是CPU或者GPU。当处理器为CPU时,存储器是指内存。而当处理器为GPU时,存储器则是指显存。显示设备可以是显示屏或者投影屏等,本申请实施例以显示屏为例进行说明。同时假设移动终端A内包含具有相关功能的应用程序,例如语音助手、语音输入法、听写系统和实时翻译程序中的任意一种或多种。此时用户在使用其中任一应用程序,且触发了相关功能时。移动终端A均会采集用户的语音数据,并运行SCNN-T模型对语音数据进行处理,进而得到相应的语音识别结果。

以语音助手为例进行说明,参考图7B,是语音助手的启动界面。包含一个拾音图标81和一句提示语句“请说出您的需求哦~”(实际应用中可以使用其他内容和数量的提示语句,或者不显示提示语句亦可)。

当用户需要使用语音助手时,可以按下拾音图标81并开始讲话。

移动终端A在检测到拾音图标81被按下的同时,启动语音识别功能,并利用麦克风来拾取用户的语音数据,同时将SCNN-T模型加载至存储器。

在拾取到语音数据时,处理器运行SCNN-T模型,利用部分三中的语音识别流程进行语音识别,并同步将语音识别结果显示于显示屏之中。假设语音识别结果为“今天天气怎么样”,此时可以参考图7C的(a)部分。

在得到语音识别结果之后,移动终端A会基于语音识别结果进行回复,并将回复结果显示于显示屏。假设针对“今天天气怎么样”回复结果为“今天多云转晴,气温28°到34°”,此时可以参考图7C的(b)部分。

其中,用户每次按下拾音图标81后说话的时长是无法预估的。为了实现较好的实时识别效果,本申请实施例可以在用户说话的同时拾取语音数据,对拾取到的语音数据进行截取。其中每次截取的长度本申请实施例不进行限定,可由技术人员根据实际需求设定。例如可以以1秒为时长进行截取,即每采集到1秒长的语音数据便进行截取,得到长度为1秒的语音段。亦可以设置为100毫秒~200毫秒中的任意一值。在截取的同时,将截取出的语音段输入至SCNN-T模型之中,得到对应的语音识别结果。再对下一个截取出的语音段输入至SCNN-T模型,得到对应的语音识别结果。而在每次得到对截取的语音段的识别结果时,均同步显示至显示屏之中,实现对识别结果的实时反馈。通过不断截取语音段和识别,可以实现对用户语音的实时识别,并实时输出结果。具体可参考图6C所示实施例的说明,即移动终端A获取的是用户实时语音流,但会截取为语音段进行处理(此时的截取与切割意义相同)。

针对第二类场景进行离线语音识别,以一实例进行举例说明。例如假设执行主体移动终端B内包含麦克风、处理器、存储器和显示设备。其中,移动终端B内各个组件功能与图7A所示实施例中的移动终端A相同,具体可参考图7A所示实施例相关说明,此处不予赘述。同时假设移动终端B内包含具有相关功能的应用程序,例如本地语音数据识别程序,或者如一些可以语音交流的社交软件中,提供对已接收语音的识别功能。此时用户在使用其中任一应用程序,且触发了相关功能时。移动终端B均会读取相应的语音数据,并运行SCNN-T模型对语音数据进行处理,进而得到相应的语音识别结果。

以语音交流的社交软件为例进行举例说明,参考图7D,是一社交软件的聊天界面示意图。在图7D中包含语音数据82、语音数据83和语音数据84。(实际应用中,聊天界面包含的语音数据情况可以与本申请实施例不相同,此处仅为举例说明)。

当用户需要对其中某一句语音数据进行识别时,可以长按对应的语音数据。假设用户需要识别语音数据82,此时可以参考图7E的(a)部分。

移动终端B在检测到有语音数据被按下时,启动语音识别功能,同时将SCNN-T模型加载至内存空间。

加载完成后处理器运行SCNN-T模型,将语音数据82输入至SCNN-T模型,利用部分三中的语音识别流程对语音数据82进行语音识别,并同步将语音识别结果显示于聊天界面之中。假设语音识别结果为“今天下班一起去吃饭吗?”,此时可以参考图7E的(b)部分。用户若还想对其他语音数据进行识别,则可以长按相应的语音数据。移动终端B再执行上述操作,实现对新的语音数据的识别。

与第一类场景不同之处在于,第二类场景之中,场景内每次处理的语音数据是可以一次完整获取到的,因此可以不进行第一类场景中的边获取语音数据边进行截取的操作(但理论上也可以进行语音段的切割,实现对离线语音的逐段识别)。同时,这类场景中的语音数据不需要进行实时采集,一般是读取移动终端内已有的语音数据。在获取到所需识别的语音数据之后,再利用部分三中的语音识别方法对语音数据进行识别即可。

部分五、对上述各个部分的一些补充说明:

1、可以对编码器网络和预测网络中的卷积网络层进行卷积数据缓存,以降低计算量。

在SCNN-T模型中,编码器网络和预测网络中均包含较多的因果卷积,且编码器网络中还包含一定数量的普通卷积。其中,因果卷积具有一定的过去感受野,而普通卷积同时具有过去感受野和未来感受野。在本申请实施例中,感受野是指卷积网络每一层输出的特征向量中,单个特征数据在声学特征数据或文本序列中映射的区域大小。

以一实例进行举例说明,参考图8A,其中虚线格是补零操作补充的空白数据。假设输入的声学特征数据内共包含6个语音帧,会对声学特征数据依次进行一次因果卷积和一次普通卷积。其中,因果卷积会同时对当前语音帧和前两个语音帧进行卷积,普通卷积会同时对当前语音帧、前一语音帧和后一语音帧进行卷积。在此基础上,因果卷积得到特征数据,其感受野为3个语音帧。如特征数据T11的感受野范围包含语音帧1、语音帧2和语音帧3。而普通卷积得到特征数据,其感受野均为5个语音帧。如特征数据T22的感受野范围包含语音帧1、语音帧2、语音帧3、语音帧4和语音帧5。其中,对虚线格进行卷积得到的特征数据,其感受野理论值也是与上述相同,但由于虚线格内并不是真实声学特征数据,因此其感受野实际值需根据实际情况确定。例如对于特征数据T16而言,其感受野理论值为3个语音帧,但实际上仅有语音帧6处于其映射区域,因此实际值为1个语音帧。同理,将本申请实施例中的语音帧替换为文本序列中各个字符的字符特征,并删除普通卷积的部分,即可得到对于文本序列卷积的实例说明,此处不予赘述。

单个卷积层每次进行卷积时,虽然卷积对象是上一卷积层输出的特征向量中的部分特征数据。但由上述感受野的说明可知,其实际涉及到的声学特征数据或文本序列范围为往往更大。而感受野的存在,会使得模型的运行过程中,存在大量的重复计算过程,进而使得模型计算量较大。以下分别对预测网络和编码器网络进行示例说明:

针对预测网络:参考图2D和图6A所示实施例说明可知,在每次对语音数据的识别过程中,预测网络均需要进行多次文本特征向量提取。且每一次处理的已解码文本序列内容,均是在前一次已解码文本序列的基础上增添新字符得到的内容。因此,每次预测网络对已解码文本序列进行特征提取的时候,对已解码文本序列中较早解码出字符而言,实际上会重复进行特征提取。

为例减少重复计算的工作量,针对预测网络。一方面,本申请实施例在有因果卷积完成了当次的卷积操作时,均会将卷积操作得到的数据进行缓存,得到该层因果卷积对应的卷积缓存数据(即第一卷积缓存数据,若已有相应的卷积缓存数据,则此处即为更新相应的卷积缓存数据)。另一方面,不是直接对输入的数据进行卷积操作。而是先读取出本层对应的卷积缓存数据,再基于该卷积缓存数据来确定当次需要卷积的字符特征(即目标字符特征),并进行当次的卷积操作。

以一实例进行举例说明。假设最终的语音识别结果为“今天天气”,作为预测网络初始输入的预设字符为“S”,预测网络中第一个因果卷积会同时对当前字符特征和历史两个字符特征进行卷积。此时,对于第一个因果卷积而言,第一次会对“S”的特征数据进行卷积操作。第二次会对“S”和“今”的特征数据进行卷积操作。以此类推,在语音识别的过程中,该因果卷积需要进行至少4次卷积操作。参考图8B,其中,(a)部分是对“S”的字符特征卷积过程示意图。此时本申请实施例会将对“S”的字符特征卷积结果缓存为卷积缓存数据。下一次解码出来字符“今”时,可以参考(b)部分。此时需要对“S”和“今”两个字符的字符特征进行卷积。相应的,本申请实施例会读取该因果卷积对应的卷积缓存数据,从而得到对“S”的字符特征卷积结果,再对“今”的字符特征进行卷积即可,并会在卷积完成后对卷积缓存数据进行更新。依此类推,参考(c)部分当需要对“S”、“今”和“天”的字符特征进行卷积时,仅需要再对“天”的字符特征进行卷积。参考(c)部分当需要对“S”、“今”、“天”和“天”的字符特征进行卷积时,仅需要再对最后一个“天”的字符特征进行卷积。由此可以得知,若进行上述4次卷积,相对每次都对已解码文本序列中所有字符的字符特征进行卷积而言。通过本申请实施例提供的卷积结果缓存机制,可以极大地减少卷积的次数,减少SCNN-T模型的卷积计算量。

针对编码器网络:SCNN-T模型单次进行语音识别的过程中,编码器网络内各个卷积层仅需对声学特征数据进行一次特征提取。因此理论上可以不进行上述的卷积结果缓存。但在一些将语音数据切割为多个语音段的场景中,如实时语音流的语音识别。为了提高对语音识别效果,可以将已识别完成的语音段,作为当前处理的语音段的历史参考数据。此时,在进行语音帧声学特征的卷积时,若需要对历史帧进行卷积,则可以获取已识别完成的语音段内语音帧的声学特征数据。以一实例进行举例说明。

假设对语音流进行了语音段截取,且每次截取的语音段均分为3个语音帧。设一共截取出了2个连续语音段,依次为语音段1和语音段2。其中语音段1包含语音帧1、语音帧2和语音帧3,语音段2包含语音帧4、语音帧5和语音帧6。同时设编码器网络中包含一个因果卷积和一个普通卷积,其中因果卷积会参考两个历史语音帧,普通卷积网络会参考一个历史语音帧和一个未来语音帧。此时对编码器网络对语音段1的声学特征数据卷积过程可以参考图8C的(a)部分。在对语音段1的声学特征数据进行卷积时,本申请实施例进行补零操作,即会补充3个空白数据(即图中的虚线空白格)。而普通卷积时,则会等待语音帧4。因此在对语音段1进行处理的时候,实际上已经实现了对语音帧1、语音帧2和语音帧3的因果卷积,得到了特征数据T13,以及对语音帧2、语音帧3和语音帧4的因果卷积,得到了特征数据T14。而在对语音段2的声学特征数据进行卷积时,可以参考图8C的(b)部分。由于会将语音段1作为历史参考数据,因此在计算T14和T24的时候,不会进行补零操作,而是会获取语音帧1、语音帧2和语音帧3并进行因果卷积操作,得到T13,再进行普通卷积得到T24。

对比图8C的(a)部分和(b)部分可知。在对各个语音段的处理过程中,无论是因果卷积还是普通卷积,由于其具有一定的感受野,因此一部分的卷积运算其实是会重复计算的。例如对特征数据T13和T14的计算。

为了在进行连续语音段识别时,减少SCNN-T模型的计算量。本对于编码器网络,一方面,本申请实施例会在卷积层(包括因果卷积和普通卷积)完成卷积操作时,将卷积操作得到的数据进行缓存,得到该层因果卷积对应的卷积缓存数据(即第二卷积缓存数据,若已有相应的卷积缓存数据,则此处即为更新相应的卷积缓存数据)。另一方面,不是直接对输入的数据进行卷积操作。而是先读取出本层对应的卷积缓存数据,再基于该卷积缓存数据来确定当次需要卷积语音帧的特征数据(即目标特征数据),并进行当次的卷积操作。例如图8C所示实施例中,在对语音段1的声学特征数据卷积后,会存储好特征数据T13和T14的卷积结果。在对语音段2的声学特征数据卷积时,则读取相应的卷积缓存数据,再计算其余的特征数据T15和T16等即可。

在本申请实施例中,针对如语音流等对语音数据进行语音段切割,并进行语音段识别的场景。会对编码器网络设置卷积结果缓存机制,即将每一个卷积层当次的卷积结果均存储至该层相应的卷积缓存数据之中。在对后续的语音段进行语音识别的过程中。编码器网络中卷积层每次进行卷积操作时,可以先获取该卷积层相应的卷积缓存数据,并从获取的卷积缓存数据中选取出所需的数据。再对进行其余的特征数据卷积操作,以完成当次的卷积操作。相对每次处理语音段均重新进行所有的卷积操作而言,本申请实施例可以减少大量的重复卷积操作。因此可以极大地减少计算量,例如在实时语音流的语音识别中,相对无卷积缓存机制的方式,可以节约70%以上的计算量。

实际应用中,技术人员可以实际需求来选择是否对编码器网络和预测网络添加本申请实施例中的卷积缓存机制(亦可以称为流式缓存机制)。例如,可仅对其中一个网络添加,或者对两个网络均添加。

2、可通过模型定义文件的方式将SCNN-T模型存储与移动终端。

实际应用中,在进行构建神经网络的语音识别模型时,往往会将训练好的语音识别模型打包为一个模型定义文件。该模型定义文件中会存储已训练好的语音识别模型的权重等参数,以及语音识别模型的运算过程(即计算图)。根据实际使用的移动端机器学习框架的不同,模型定义文件的格式也会存在一定的差异。但一般模型定义文件均会有其对应的可视化解析平台或工具。例如,当是基于tensorflow-lite框架训练的语音识别模型,此时模型定义文件即为tflite文件,其存储格式为flatbuffer。可以通过AI Smart平台实现对tflite文件的解析,并可以图形化显示该tflite的内部结构。

因此,在本申请实施例中,可以将SCNN-T模型打包为一个模型定义文件,并存储与移动终端本地。在需要时,可以通过相应的可视化解析平台或工具来查看SCNN-T模型的相关数据。

3、通过实验对本申请实施例中SCNN-T模型的一些性能进行验证。

为了验证图2A-图8C所示实施例中SCNN-T模型的性能,本申请实施例对SCNN-T模型的训练和语音识别效果进行了实验验证。对实验的说明如下:

a、实验数据。

本申请实施例准备的模型实验数据情况如下表3:

表3

其中,训练集由样本数据构成,用于训练SCNN-T模型。验证集用于确定SCNN-T模型超参数,选出最优模型。测试集用于对训练好的SCNN-T模型进行性能评估。这些数据集中的语音数据来源此处不予限定,可以是通过一些公开的语音数据集获取,亦可由技术人员通过录制等方式收集。为了得到较好的训练效果,本申请实施例中样本数据的总时长为907492×4秒≈1008小时,大于1000小时。

b、RNN-T模型和SCNN-T模型准备。

在本申请实施例中,准备的RNN-T模型的模型结构可以参考图9A。其中,编码器网络输入的是样本数据经声学特征提取后得到的41维梅尔频谱特征数据。编码器网络中包含12层LSTM,每一层LSTM的维度为800。预测网络输入的是已解码文本序列经由词特征嵌入操作后得到的512维的文本序列特征数据。预测网络中包含3层LSTM,每一层LSTM的维度为800。联合网络由两个全连接层组成,维度分别为768和6901。RNN-T模型总参数量约为83兆。

准备的SCNN-T模型的模型结构可以参考图9B。其中,编码器网络输入的是样本数据经声学特征提取后得到的41维梅尔频谱特征数据。编码器网络中包含3个卷积块,参考图9C,每个卷积块中包含1个普通卷积和3个因果卷积,每个普通卷积和因果卷积的维度均为768。预测网络输入的是已解码文本序列经由词特征嵌入操作后得到的512维的文本序列特征数据。预测网络中包含3层因果卷积,每层因果卷积的维度均为768。联合网络由两个全连接层组成,维度分别为768和6901。SCNN-T模型总参数量约为82兆。

c、实验比对。

对准备的RNN-T模型和SCNN-T模型,训练环境均为:GPU Nvidia P-100×6。

经统计和测试,得到两个模型在训练耗时和推断准确方面(以词错误率(WordError Rate,WER)为指标)的比对结果如下表4:

表4

由表4可知,SCNN-T模型在不进行两个子网络的预训练,而是进行整个模型网络的联合训练情况下,训练为总耗时11小时。远远小于RNN-T模型先进行子网络预训练再进行联合训练的总耗时45小时(仅为1/4不到)。同时量化后,SCNN-T模型的词错误率变化程度仅为0.13%,也小于SCNN-T模型的词错误率变化程度0.46%,即模型量化损失较小。且实践中可以将SCNN-T模型量化损失控制在0.5%以内。无论量化前后,SCNN-T模型的词错误率均不高于RNN-T模型,即相对RNN-T模型,SCNN-T模型可以实现较好的语音识别结果。

对训练好的SCNN-T模型和RNN-T模型,在进行实时语音流的语音识别场景中。针对不采用采用说明点1中的卷积缓存机制,与编码器网络和预测网络均采用说明点1中的卷积缓存机制情况下,SCNN-T模型进行语音识别的计算量比对如下表5。其中,输入数据维度是指输入数据(声学特征数据)的维度。其中,第一维数据是语音帧数量,第二维数据是梅尔频谱特征维度。计算量的衡量标准为每秒浮点运算次数(floating-point operations persecond,FLOPs),单位为千兆(Giga,G),采用了8比特的框架加速:

表5

由表5可以看出,采用卷积缓存机制后的SCNN-T模型,其计算量为3.5G。相对未采用卷积缓存机制的SCNN-T模型,计算量降低了(15G-3.5G)/15G≈76.7%。同时,采用卷积缓存机制后的SCNN-T模型,其进行语音识别的耗时,远低于不采用卷积缓存机制的SCNN-T模型。因此,采用卷积缓存机制,可以大大降低SCNN-T模型语音识别时的计算量。

另外,结合表4和表5数据可知,SCNN-T模型可以在快速实现语音识别(不采用卷积缓存机制耗时130毫秒,采用卷积缓存机制耗时36毫秒)的情况下,仍保持较高识别准确率(量化前后词错误率均低于5%)。

另外,为了验证编码器网络中因果卷积和普通卷积交叉叠加的效果。本申请实施例对图9B中SCNN-T模型的编码器网络进行了两次卷积层放置方式的调整,并重新进行了模型训练和测试。设图9C中的交叉叠加放置方式为方式1。参考图9D中的(a)部分和(b)部分,新增的方式2和方式3中,编码器网络结构分别为因果卷积×9+普通卷积×3,和普通卷积×3+因果卷积×9。其中,没有进行卷积块的划分。实验结果如下表6:

表6

由表6结果可知,在同一SCNN-T模型中,编码器网络以交叉叠加的方式放置卷积层,可以使SCNN-T模型实现更好地语音识别效果。

对应于上文实施例所述的语音识别方法,图10示出了本申请实施例提供的语音识别装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。

参照图10,该语音识别装置包括:

数据获取模块1001,用于获取第一语音数据。

语音识别模块1002,用于利用语音识别模型对第一语音数据进行处理,得到第一语音识别结果。

语音识别模型是基于变换器架构的模型,且语音识别模型中包含编码器网络、预测网络和联合网络。

编码器网络和预测网络中均包含卷积网络

本申请实施例提供的语音识别装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例以及其他相关方法实施例的描述,此处不再赘述。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。还应理解的是,虽然术语“第一”、“第二”等在文本中在一些本申请实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,第一表格可以被命名为第二表格,并且类似地,第二表格可以被命名为第一表格,而不背离各种所描述的实施例的范围。第一表格和第二表格都是表格,但是它们不是同一表格。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。同时,本申请实施例中的“多个”,是指两个及以上。

本申请实施例提供的语音识别方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。

例如,所述电子设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、个人数字处理(PersonalDigital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,STB)、用户驻地设备(customer premise equipment,CPE)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的电子设备或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的电子设备等。

作为示例而非限定,当所述电子设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。

图11A示出了电子设备100的一种结构示意图。

电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及SIM卡接口195等。其中传感器模块180可以包括传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。

可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

另外,对于电子设备100内各个部件的说明,可以参考公开号为:CN110519451A,发明名称为:一种电子设备的关机管控方法和装置的专利申请中,说明书第[0054]-[0104]段的相关说明,此处不予赘述。

其中,对移动通信模块150和音频模块170的补充说明如下:

在本申请实施例中,移动通信模块150还可以用于与其它电子设备进行信息交互,即可以向其它电子设备发送语音相关数据,或者移动通信模块150可用于接收语音识别请求,并将接收的语音识别请求封装成指定格式的消息。

另外,电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。在进行语音识别时,可以通过麦克风170C来实现对用户语音的拾取。

应理解,在实际应用中,电子设备100可以包括比图11A所示的更多或更少的部件,本申请实施例不作限定。图示电子设备100仅是一个范例,并且电子设备100可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。图11B是本发明实施例的电子设备的一种软件结构框图。

对于电子设备软件系统的说明,可以参考公开号为:CN110519451A,发明名称为:一种电子设备的关机管控方法和装置的专利申请中,说明书第[0107]-[0128]段的相关说明,此处不予赘述。

下面结合电子设备100进行实时语音识别的场景,示例性说明电子设备100软件以及硬件的工作流程。

当麦克风170C拾取用户的语音数据时,相应的硬件中断被发给内核层。内核层将语音数据加工成原始输入事件,原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,通过调用应用程序框架层中的资源管理器对语音数据进行语音识别。

可以理解的是,本发明实施例示意的电子设备的软件结构仅用于举例说明,并不构成对电子设备的具体限定。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

本申请实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。

本申请实施例还提供了一种芯片系统,所述芯片系统包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现上述各个方法实施例中的步骤。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

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

最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种语音识别方法、语音识别装置、电子设备及存储介质
  • 语音识别装置、电子设备和语音识别方法
技术分类

06120112162742