发明内容
本公开实施例至少提供一种语音识别方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种语音识别方法,包括:
基于待识别的语音序列中的语音特征的数量,确定所述语音序列对应的查询矩阵中的每个初始查询特征的第一余弦权重,和所述语音序列对应的键矩阵中的每个所述初始键特征的第二余弦权重;
基于所述第一余弦权重和所述第二余弦权重,确定每个所述初始查询特征分别与各个所述初始键特征之间的相似度;
针对所述语音序列中的每个语音特征,基于所述语音特征对应的初始查询特征与各个所述初始键特征之间的相似度、以及所述语音序列对应的值矩阵中的每个目标值特征,确定所述语音特征对应的注意力特征;
基于所述语音序列中各个所述语音特征分别对应的注意力特征,确定所述语音序列对应的语音识别结果。
该实施方式,利用计算出的每个初始查询特征对应的第一余弦权重和每个初始键特征对应的第二余弦权重,确定出每个初始查询特征分别与各个初始键特征之间的相似度,再基于各个相似度和值矩阵中的每个目标值特征,确定各个语音特征对应的注意力特征;相比于将多个注意力矩阵直接进行相乘得到加权权重矩阵,再利用加权权重矩阵对语音特征进行加权处理,得到每个语音特征对应的注意力特征,本公开实施例基于余弦权重确定各个语音特征对应的注意力特征的方式,降低了计算量,提高了语音识别的速度。这样,在识别长语音序列时的计算压力将减少,识别长语音序列的时间也将减少,有效提高了识别长语音序列的识别速度。
在一种可能的实施方式中,所述基于所述第一余弦权重和所述第二余弦权重,确定每个所述初始查询特征分别与各个所述初始键特征之间的相似度,包括:
利用预设的多个核函数中的任一个目标核函数,将每个所述初始查询特征转换为非负的目标查询特征,以及将每个初始键特征转换为非负的目标键特征;
基于每个所述初始键特征对应的第二余弦权重和该初始键特征对应的目标键特征,确定每个所述初始键特征对应的第一加权结果;
针对每个所述初始查询特征,基于所述初始查询特征对应的目标查询特征和所述初始查询特征对应的第一余弦权重,确定所述初始查询特征对应的第二加权结果;并基于所述第二加权结果和各个所述初始键特征对应所述第一加权结果,确定所述初始查询特征分别与各个所述初始键特征之间的相似度。
该实施方式,利用目标核函数,将初始查询特征转换为非负的目标查询特征,以及将初始键特征转换为非负的目标键特征,避免了直接利用原本为负的初始查询特征和/或原本为负的初始键特征进行计算,对得到的相似度的准确性产生影响,保障了计算出的相似度的准确性。
在一种可能的实施方式中,所述基于所述第二加权结果和各个所述初始键特征对应所述第一加权结果,确定所述初始查询特征分别与各个所述初始键特征之间的相似度,包括:
基于所述初始查询特征在所述查询矩阵中的第一排序值和所述语音特征的数量,确定所述初始查询特征对应的第一正弦权重,以及基于每个所述初始键特征在所述键矩阵中的第二排序值,确定每个所述初始键特征对应的第二正弦权重;
基于所述第一正弦权重和所述初始查询特征对应的目标查询特征,确定所述初始查询特征对应的第三加权结果;
针对每个所述初始键特征,基于所述初始键特征对应的第二正弦权重和所述初始键特征对应的目标键特征,确定所述初始键特征对应的第四加权结果;
基于所述第二加权结果、所述第三加权结果、每个所述初始键特征对应的第一加权结果和第四加权结果,确定所述初始查询特征与每个所述初始键特征之间的相似度。
该实施方式,利用确定出的每个初始查询特征对应的第一正弦权重和每个初始键特征对应的第二正弦权重,确定出每个初始查询特征与每个初始键特征之间的相似度,能够进一步提高确定出的相似度的准确性。
在一种可能的实施方式中,所述基于所述语音特征对应的初始查询特征与各个所述初始键特征之间的相似度、以及所述语音序列对应的值矩阵中的每个目标值特征,确定所述语音特征对应的注意力特征,包括:
针对每个所述初始键特征,基于所述初始键特征对应的第一加权结果,和在所述值矩阵中对应的第三排序值与所述初始键特征对应的第二排序值相同的目标值特征,确定所述初始键特征对应的第一中间结果;
基于所述初始键特征对应的第四加权结果,和在所述值矩阵中对应的第三排序值与所述初始键特征对应的第二排序值相同的目标值特征,确定所述初始键特征对应的第二中间结果;
将所述初始查询特征对应的第二加权结果和每个所述初始键特征对应的第一中间结果相乘,得到第五加权结果;
将所述初始查询特征对应的第三加权结果和每个所述初始键特征对应的第二中间结果相乘,得到第六加权结果;
基于所述语音特征对应的初始查询特征与每个所述初始键特征之间的相似度之和、所述第五加权结果之和、以及所述第六加权结果之和,确定所述语音特征对应的注意力特征。
该实施方式,通过第三排序值和第二排序值,能够在值矩阵中找到与每个初始键特征匹配的目标值特征,也即确定出了各个键值对。基于键值对中的初始键特征对应的加权结果,以及键值对的目标键特征,可以准确得到每个键值对分别对应的第一中间结果和第二中间结果。进而,基于准确的第一中间结果和第二中间结果,可以确定出准确的注意力特征。
在一种可能的实施方式中,在所述基于待识别的语音序列中的语音特征的数量,确定所述语音序列对应的查询矩阵中的每个所述初始查询特征的第一余弦权重之前,还包括:
获取待识别的所述语音序列,并对所述语音序列执行空间映射操作,得到映射后的所述语音序列;
将所述语音序列和映射后的所述语音序列进行序列融合,得到融合后的语音序列;
利用目标特征矩阵分别对融合后的语音序列进行特征映射处理,得到所述语音序列对应的查询矩阵、键矩阵和值矩阵;其中,所述查询矩阵、键矩阵和值矩阵分别对应不同的所述目标特征矩阵。
该实施方式,通过空间映射操作,可以在空间维度上对待识别的语音序列进行转换,得到处于不同空间维度的映射后的语音序列,再将语音序列和映射后的语音序列进行序列融合,可以得到融合更多空间信息的、融合后的语音序列。利用融合后的语音序列进行特征映射处理,提高了得到的查询矩阵、键矩阵和值矩阵中的每个矩阵所包含的特征信息的丰富度。
在一种可能的实施方式中,所述基于所述语音序列中各个所述语音特征分别对应的注意力特征,确定所述语音序列对应的语音识别结果,包括:
将所述融合后的语音序列中的每个语音特征和该语音特征对应的注意力特征进行融合,得到融合后的每个注意力特征;
对融合后的每个注意力特征分别进行卷积操作,得到卷积后的每个注意力特征,并对卷积后的每个注意力特征和该注意力特征对应的融合后的注意力特征进行特征融合,得到卷积后的每个注意力特征分别对应的初始注意力特征;
对每个所述初始注意力特征执行空间映射操作,得到映射后的每个初始注意力特征,并对每个所述初始注意力特征和该初始注意力特征对应的映射后的初始注意力特征进行特征融合,得到融合后的每个初始注意力特征;
对融合后的每个初始注意力特征执行归一化操作,得到每个语音特征对应的中间注意力特征,并基于每个中间注意力特征,确定所述语音序列对应的语音识别结果。
该实施方式,通过对注意力特征执行的融合操作、卷积操作、空间映射操作和归一化操作,可以得到每个语音特征对应的含义信息丰富、更能准确反映语音识别结果的中间注意力特征,进而,基于每个准确的中间注意力特征,可以准确地确定出语音识别结果。
在一种可能的实施方式中,所述基于每个中间注意力特征,确定所述语音序列对应的语音识别结果,包括:
将由每个中间注意力特征组成的序列作为新的待识别的语音序列,以及将每个中间注意力特征作为所述新的待识别的语音序列中的各个语音特征;
返回执行对所述语音序列执行空间映射操作,得到映射后的所述语音序列的步骤,直至循环次数达到预设次数,得到所述待识别的语音序列对应的每个目标注意力特征;
基于每个所述目标注意力特征,确定所述语音识别结果。
该实施方式,通过多次循环的操作,可以将各个语音特征对应所表征的信息的充分提取,从而得到包含丰富信息的目标注意力特征。利用每个目标注意力特征进行语音识别,可以提高确定出的语音识别结果的准确性。
在一种可能的实施方式中,所述基于每个所述目标注意力特征,确定所述语音识别结果,包括:
利用预设的至少一个解码模块,对每个所述目标注意力特征进行特征解码,得到所述语音识别结果;其中,解码次序前后相邻的两个解码模块中的后一个解码模块的输入,为前一个解码模块的输出,解码次序位于最后的解码模块的输出为所述语音识别结果。
该实施方式,利用多个解码模块进行解码,能够实现对每个目标注意力特征所表征的信息的充分解码,从而得到准确的语音识别结果。
在一种可能的实施方式中,所述语音识别方法利用预先训练好的语音识别神经网络执行;所述语音识别神经网络按照以下步骤训练:
获取待识别的样本语音序列;
将所述样本语音序列输入待训练的语音识别神经网络,并利用所述待训练的语音识别神经网络对所述样本语音序列进行识别处理,确定所述样本语音序列对应的每个所述目标预测注意力特征;
基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果;
基于所述预测语音结果和所述样本语音序列对应的标准语音结果,确定所述待训练的语音识别神经网络对应的预测损失,并利用所述预测损失对所述待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。
该实施方式,训练好的语音识别神经网络具有可靠的识别精度,利用训练好的语音识别神经网络进行语音识别,能够得到准确的语音识别结果。利用根据测语音结果和标准语音结果确定出的预测损失,对待训练的语音识别神经网络进行迭代训练,可以有效提高语音识别神经网络的预测精度,最终训练得到具有可靠精度的语音识别神经网络。
在一种可能的实施方式中,所述预测语音结果包括第一预测语音结果,所述预测损失包括时序分类损失;
所述基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果,包括:
利用每个所述目标预测注意力特征,确定所述样本语音序列对应的第一预测语音结果;
所述基于所述预测语音结果,确定所述待训练的语音识别神经网络对应的预测损失,包括:
利用神经网络连接时序分类CTC算法,基于所述第一预测语音结果和所述标准语音结果,确定所述时序分类损失。
该实施方式,直接利用每个目标预测注意力特征,确定第一预测语音结果,再利用基于第一预测语音结果和标准语音结果确定的时序分类损失,对待训练的语音识别神经网络进行迭代训练,既能够提高网络预测精度,还可以提高网络的预测速度。
在一种可能的实施方式中,所述预测语音结果包括第二预测语音结果,所述预测损失包括交叉熵损失;
所述基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果,包括:
利用所述待训练的语音识别神经网络中预设的至少一个解码模块,对每个所述目标预测注意力特征进行特征解码,得到所述第二预测语音结果;
所述基于所述预测语音结果,确定所述待训练的语音识别神经网络对应的预测损失,包括:
基于所述第二预测语音结果和所述标准语音结果,确定所述交叉熵损失。
该实施方式,利用解码模块对每个目标预测注意力特征进行特征解码,得到第二预测语音结果,再利用时序分类损失和基于第二预测语音结果和标准语音结果确定的交叉熵损失,一起对待训练的语音识别神经网络进行迭代训练,能够进一步提高训练得到的语音识别神经网络的识别精度。
第二方面,本公开实施例还提供一种语音识别装置,包括:
第一确定模块,用于基于待识别的语音序列中的语音特征的数量,确定所述语音序列对应的查询矩阵中的每个初始查询特征的第一余弦权重,和所述语音序列对应的键矩阵中的每个所述初始键特征的第二余弦权重;
第二确定模块,用于基于所述第一余弦权重和所述第二余弦权重,确定每个所述初始查询特征分别与各个所述初始键特征之间的相似度;
第三确定模块,用于针对所述语音序列中的每个语音特征,基于所述语音特征对应的初始查询特征与各个所述初始键特征之间的相似度、以及所述语音序列对应的值矩阵中的每个目标值特征,确定所述语音特征对应的注意力特征;
第四确定模块,用于基于所述语音序列中各个所述语音特征分别对应的注意力特征,确定所述语音序列对应的语音识别结果。
在一种可能的实施方式中,所述第二确定模块,在所述基于所述第一余弦权重和所述第二余弦权重,确定每个所述初始查询特征分别与各个所述初始键特征之间的相似度时,用于利用预设的多个核函数中的任一个目标核函数,将每个所述初始查询特征转换为非负的目标查询特征,以及将每个初始键特征转换为非负的目标键特征;
基于每个所述初始键特征对应的第二余弦权重和该初始键特征对应的目标键特征,确定每个所述初始键特征对应的第一加权结果;
针对每个所述初始查询特征,基于所述初始查询特征对应的目标查询特征和所述初始查询特征对应的第一余弦权重,确定所述初始查询特征对应的第二加权结果;并基于所述第二加权结果和各个所述初始键特征对应所述第一加权结果,确定所述初始查询特征分别与各个所述初始键特征之间的相似度。
在一种可能的实施方式中,所述第二确定模块,在所述基于所述第二加权结果和各个所述初始键特征对应所述第一加权结果,确定所述初始查询特征分别与各个所述初始键特征之间的相似度时,用于基于所述初始查询特征在所述查询矩阵中的第一排序值和所述语音特征的数量,确定所述初始查询特征对应的第一正弦权重,以及基于每个所述初始键特征在所述键矩阵中的第二排序值,确定每个所述初始键特征对应的第二正弦权重;
基于所述第一正弦权重和所述初始查询特征对应的目标查询特征,确定所述初始查询特征对应的第三加权结果;
针对每个所述初始键特征,基于所述初始键特征对应的第二正弦权重和所述初始键特征对应的目标键特征,确定所述初始键特征对应的第四加权结果;
基于所述第二加权结果、所述第三加权结果、每个所述初始键特征对应的第一加权结果和第四加权结果,确定所述初始查询特征与每个所述初始键特征之间的相似度。
在一种可能的实施方式中,所述第三确定模块,在所述基于所述语音特征对应的初始查询特征与各个所述初始键特征之间的相似度、以及所述语音序列对应的值矩阵中的每个目标值特征,确定所述语音特征对应的注意力特征时,用于针对每个所述初始键特征,基于所述初始键特征对应的第一加权结果,和在所述值矩阵中对应的第三排序值与所述初始键特征对应的第二排序值相同的目标值特征,确定所述初始键特征对应的第一中间结果;
基于所述初始键特征对应的第四加权结果,和在所述值矩阵中对应的第三排序值与所述初始键特征对应的第二排序值相同的目标值特征,确定所述初始键特征对应的第二中间结果;
将所述初始查询特征对应的第二加权结果和每个所述初始键特征对应的第一中间结果相乘,得到第五加权结果;
将所述初始查询特征对应的第三加权结果和每个所述初始键特征对应的第二中间结果相乘,得到第六加权结果;
基于所述语音特征对应的初始查询特征与每个所述初始键特征之间的相似度之和、所述第五加权结果之和、以及所述第六加权结果之和,确定所述语音特征对应的注意力特征。
在一种可能的实施方式中,所述装置还包括映射模块,用于在所述基于待识别的语音序列中的语音特征的数量,确定所述语音序列对应的查询矩阵中的每个所述初始查询特征的第一余弦权重之前,获取待识别的所述语音序列,并对所述语音序列执行空间映射操作,得到映射后的所述语音序列;
将所述语音序列和映射后的所述语音序列进行序列融合,得到融合后的语音序列;
利用目标特征矩阵分别对融合后的语音序列进行特征映射处理,得到所述语音序列对应的查询矩阵、键矩阵和值矩阵;其中,所述查询矩阵、键矩阵和值矩阵分别对应不同的所述目标特征矩阵。
在一种可能的实施方式中,所述第四确定模块,在所述基于所述语音序列中各个所述语音特征分别对应的注意力特征,确定所述语音序列对应的语音识别结果时,用于将所述融合后的语音序列中的每个语音特征和该语音特征对应的注意力特征进行融合,得到融合后的每个注意力特征;
对融合后的每个注意力特征分别进行卷积操作,得到卷积后的每个注意力特征,并对卷积后的每个注意力特征和该注意力特征对应的融合后的注意力特征进行特征融合,得到卷积后的每个注意力特征分别对应的初始注意力特征;
对每个所述初始注意力特征执行空间映射操作,得到映射后的每个初始注意力特征,并对每个所述初始注意力特征和该初始注意力特征对应的映射后的初始注意力特征进行特征融合,得到融合后的每个初始注意力特征;
对融合后的每个初始注意力特征执行归一化操作,得到每个语音特征对应的中间注意力特征,并基于每个中间注意力特征,确定所述语音序列对应的语音识别结果。
在一种可能的实施方式中,所述第四确定模块,在所述基于每个中间注意力特征,确定所述语音序列对应的语音识别结果时,用于将由每个中间注意力特征组成的序列作为新的待识别的语音序列,以及将每个中间注意力特征作为所述新的待识别的语音序列中的各个语音特征;
返回执行对所述语音序列执行空间映射操作,得到映射后的所述语音序列的步骤,直至循环次数达到预设次数,得到所述待识别的语音序列对应的每个目标注意力特征;
基于每个所述目标注意力特征,确定所述语音识别结果。
在一种可能的实施方式中,所述第四确定模块,在所述基于每个所述目标注意力特征,确定所述语音识别结果时,用于利用预设的至少一个解码模块,对每个所述目标注意力特征进行特征解码,得到所述语音识别结果;其中,解码次序前后相邻的两个解码模块中的后一个解码模块的输入,为前一个解码模块的输出,解码次序位于最后的解码模块的输出为所述语音识别结果。
在一种可能的实施方式中,所述语音识别方法利用预先训练好的语音识别神经网络执行;
所述装置还包括:训练模块,用于按照以下步骤训练所述语音识别神经网络:
获取待识别的样本语音序列;
将所述样本语音序列输入待训练的语音识别神经网络,并利用所述待训练的语音识别神经网络对所述样本语音序列进行识别处理,确定所述样本语音序列对应的每个所述目标预测注意力特征;
基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果;
基于所述预测语音结果和所述样本语音序列对应的标准语音结果,确定所述待训练的语音识别神经网络对应的预测损失,并利用所述预测损失对所述待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。
在一种可能的实施方式中,所述预测语音结果包括第一预测语音结果,所述预测损失包括时序分类损失;
所述训练模块,在所述基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果时,用于利用每个所述目标预测注意力特征,确定所述样本语音序列对应的第一预测语音结果;
以及在所述基于所述预测语音结果,确定所述待训练的语音识别神经网络对应的预测损失时,用于利用神经网络连接时序分类CTC算法,基于所述第一预测语音结果和所述标准语音结果,确定所述时序分类损失。
在一种可能的实施方式中,所述预测语音结果包括第二预测语音结果,所述预测损失包括交叉熵损失;
所述训练模块,在所述基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果时,用于利用所述待训练的语音识别神经网络中预设的至少一个解码模块,对每个所述目标预测注意力特征进行特征解码,得到所述第二预测语音结果;
以及在所述基于所述预测语音结果,确定所述待训练的语音识别神经网络对应的预测损失时,用于基于所述第二预测语音结果和所述标准语音结果,确定所述交叉熵损失。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述语音识别装置、计算机设备、及计算机可读存储介质的效果描述参见上述语音识别方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,在利用ASR技术对获取的语音序列进行语音识别时,通常使用三个不同的预设特征矩阵,分别对语音序列进行映射处理,得到查询矩阵、键矩阵和值矩阵,然后将查询矩阵和键矩阵的转置矩阵直接进行相乘得到加权权重矩阵。并利用加权权重矩阵对值矩阵进行加权处理,从而得到每个语音特征对应的注意力特征。
上述直接将查询矩阵和键矩阵的转置矩阵直接进行相乘的操作所需的计算量,将随着查询矩阵和键矩阵的尺寸的增加而增大。例如,查询矩阵和键矩阵均为T乘d的矩阵,其中,T表示矩阵中的特征的数量,d表示矩阵中的单个特征的特征维度,则查询矩阵和键矩阵的转置矩阵直接进行相乘所需的计算量则为T^2×d。在查询矩阵和键矩阵的尺寸由语音序列的长度决定的基础上,语音序列越长,所需要的计算量越大,计算压力也就越大,计算时间也就越长,语音识别的时间也就越久。因此,上述语音识别的过程,严重影响了长语音序列的识别速度和识别效果。
基于上述研究,本公开提供了一种语音识别方法、装置、计算机设备和存储介质,利用计算出的每个初始查询特征对应的第一余弦权重和每个初始键特征对应的第二余弦权重,确定出每个初始查询特征分别与各个初始键特征之间的相似度,再基于各个相似度特征和值矩阵中的每个目标值特征,确定各个语音特征对应的注意力特征;相比于直接将多个注意力矩阵直接进行相乘得到加权权重矩阵,再利用加权权重矩阵对语音特征进行加权处理,得到每个语音特征对应的注意力特征,本公开实施例直接基于余弦权重确定各个语音特征对应的注意力特征的方式,降低了计算量,提高了语音识别的速度。这样,在识别长语音序列时的计算压力将减少,识别长语音序列的时间也将减少,有效提高了识别长语音序列的识别速度。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种语音识别方法进行详细介绍,本公开实施例所提供的语音识别方法的执行主体一般为具有一定计算能力的终端设备或其他处理设备,其中终端设备可以为移动设备、计算机设备等;在一些可能的实现方式中,该语音识别方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。下面以执行主体为计算机设备为例对本公开实施例提供的语音识别方法加以说明。
如图1所示,为本公开实施例提供的一种语音识别方法的流程图,可以包括以下步骤:
S101:基于待识别的语音序列中的语音特征的数量,确定语音序列对应的查询矩阵中的每个初始查询特征的第一余弦权重,和语音序列对应的键矩阵中的每个初始键特征的第二余弦权重。
这里,待识别的语音序列中可以包括多个语音特征,语音序列可以根据获取的语音片段确定,不同的语音片段对应于不同的语音序列。语音序列中所包括的语音特征的数量由语音片段的长度决定,语音片段越长,语音序列中所包括的语音特征越多。
示例性的,待识别的语音序列X={x1,x2,x3,……xT},其中,x表示语音特征,x1表示语音序列X中的第一个语音特征,x2表示语音序列X中的第二个语音特征,,x3表示语音序列X中的第三个语音特征,依次类推,xT表示语音序列X中的第T个语音特征,T由语音片段的长度决定。
为了提高对待识别的语音序列进行语音识别的识别精度,在执行S101之前,还需要执行以下步骤:
步骤一、获取待识别的语音序列,并对语音序列执行空间映射操作,得到映射后的语音序列。
这里,针对任一需要识别的语音序列,需要先获取该待识别的语音序列。具体的,待识别的语音序列可以是直接生成好的,在需要识别的时候直接获取即可。或者,可以先获取待识别的语音片段,对语音片段进行特征提取,得到语音片段对应的多个语音特征,进而也即可以得到由多个语音特征组成的待识别的语音序列。其中,多个语音特征中的每个语音特征在待识别的语音序列中的顺序,由该语音特征对应在语音片段中的位置决定。
映射后的语音序列中包括多个映射后的语音特征,待识别的语音序列中的语音特征的数量与映射后的语音序列中的映射后的语音特征的数量一致且一一对应。
本公开实施例所提供的语音识别方法可以利用预先训练好的语音识别神经网络执行,语音识别神经网络可以部署在计算机设备中。
在得到待识别的语音序列之后,可以利用语音识别神经网络中的第一个前馈网络层模块(Feed Forward Module),对待识别的语音序列执行空间映射操作,得到映射后的语音序列。
示例性的,可以利用第一个前馈网络层模块,对待识别的语音序列中的每个语音特征进行特征映射处理,得到每个语音特征分别对应的映射后的语音特征,由每个映射后的语音特征组成映射后的语音序列。
步骤二、将语音序列和映射后的语音序列进行序列融合,得到融合后的语音序列。
具体实施时,针对语音序列中的每个语音特征,可以将该语音特征和在映射后的语音序列中与该语音特征对应的映射后的语音特征进行融合,得到该语音特征对应的融合后的语音特征。进而,可以由语音序列中的每个语音特征分别对应的融合后的语音特征,组成得到融合后的语音序列。
例如,待识别的语音序列X={x1,x2,x3,……xT},映射后的语音序列X’={x’1,x’2,x’3,……x’T},其中,x’1为x1对应的映射后的语音特征,x’2为x2对应的映射后的语音特征,x’3为x3对应的映射后的语音特征,依次类推,x’T为xT对应的映射后的语音特征。在进行序列同融合后,可以将x1和x’1融合,得到x1对应的融合后的语音特征x”1,将x2和x’2融合,得到x2对应的融合后的语音特征x”2,将x3和x’3融合,得到x3对应的融合后的语音特征x”3,依次类推,将将xT和x’T融合,得到xT对应的融合后的语音特征x”T。进而,得到的融合后的语音序列X”={x”1,x”2,x”3,……x”T}。
步骤三、利用目标特征矩阵分别对融合后的语音序列进行特征映射处理,得到语音序列对应的查询矩阵、键矩阵和值矩阵;其中,查询矩阵、键矩阵和值矩阵分别对应不同的目标特征矩阵。
这里,查询矩阵、键矩阵和值矩阵中的每个矩阵所包括的特征的数量,均与融合后的语音序列中的融合后的语音特征的数量一致。示例性的,融合后的语音序列中的融合后的语音特征的数量为T,查询矩阵、键矩阵和值矩阵中的每个矩阵所包括的特征的数量也为T。
具体的,查询矩阵为利用该矩阵对应的预设的第一目标特征矩阵,对融合后的语音序列进行特征映射处理后得到的矩阵。查询矩阵可以用Query表示,Query中的初始查询特征用于表征融合后的语音特征本身的特征信息。
键矩阵为利用该矩阵对应的预设的第二目标特征矩阵,对融合后的语音序列进行特征映射处理后得到的矩阵。键矩阵可以用Key表示,Key中的初始键特征用于表征对融合后的语音特征在一特征方向上进行特征提取后的特征信息。Key中的初始键特征用于和初始查询特征进行匹配。
值矩阵为利用该矩阵对应的预设的第三目标特征矩阵,对融合后的语音序列进行特征映射处理后得到的矩阵。值矩阵可以用Value表示,Value中的目标值特征用于表征对融合后的语音特征在另一特征方向上进行特征提取后的特征信息。Value中的目标值特征用于确定待识别的语音序列中的每个语音特征对应的注意力特征。
具体实施时,在得到融合后的语音序列后,可以将该融合后的语音序列输入至语音识别神经网络中的基于余弦的自注意力模块(Cosine-Based Self-Attention Module,以下简称CBSA模块),通过CBSA模块执行利用预设的目标特征矩阵分别对融合后的语音序列进行特征映射处理的步骤,最终得到语音序列对应的查询矩阵、键矩阵和值矩阵。
可选的,在获取待识别的语音序列之后,也可以直接将待识别的语音序列输入CBSA模块,通过CBSA模块执行利用预设的目标特征矩阵分别对待识别的语音序列进行特征映射处理的步骤,最终得到语音序列对应的查询矩阵、键矩阵和值矩阵。
上述第一余弦权重用于对查询矩阵中的初始查询特征对应的目标查询特征进行加权处理,目标查询特征为利用预设的目标核函数对初始查询特征进行转换后得到的,每个初始查询特征的第一余弦权重用于对该初始查询特征对应的目标查询特征进行加权处理。上述第二余弦权重用于对键矩阵中的初始键特征对应的目标键特征进行加权处理,目标键特征为利用预设的目标核函数对初始键特征进行转换后得到的,每个初始键特征的第二余弦权重用于对该初始键特征对应的目标键特征进行加权处理。
具体实施时,可以根据待识别的语音序列中的语音特征的数量,以及初始查询特征在查询矩阵中的第一排序值,确定初始查询特征对应的第一余弦权重。具体的,各个初始查询特征对应的第一余弦权重可以根据下述公式一确定:
其中,i表示初始查询特征在查询矩阵中对应的第一排序值,例如,初始查询特征1在查询矩阵中的第一排序值为1,初始查询特征2在查询矩阵中的第一排序值2等。M表示语音特征的数量。
基于上述公式一,可以分别确定出各个初始查询特征对应的第一余弦权重。
同理,可以根据语音特征的数量,以及初始键特征在键矩阵中的第二排序值,确定初始键特征对应的第二余弦权重。具体的,各个初始键特征对应的第二余弦权重可以根据下述公式二确定:
其中,j表示初始键特征在键矩阵中对应的第二排序值,例如,初始键特征1在键矩阵中的第二排序值为1,初始键特征2在键矩阵中的第二排序值2等。M表示语音特征的数量。
基于上述公式二,可以分别确定出各个初始键特征对应的第二余弦权重。
另外,针对确定每个初始查询特征的第一余弦权重的步骤,可以在确定查询矩阵之后,根据语音序列中的语音特征的数量,以及各个初始查询特征在查询矩阵中的第一排序值,直接确定每个初始查询特征分别对应的第一余弦权重,也即,每个初始查询特征对应的第一余弦权重在确定查询矩阵之后统一确定出,后续使用时直接获取。或者,也可以在具体计算一初始查询特征与各个初始键特征之间的相似度之前,基于该初始查询特征在查询矩阵中的第一排序值和语音特征的数量,确定该初始查询特征对应的第一余弦权重,也即,每个初始查询特征对应的第一余弦权重可以在使用时才确定,不提前统一确定。关于各个第一余弦权重的确定时机,可以根据实际的语音识别需要进行设置,此处不进行限定。
针对确定每个初始键特征的第二余弦权重的步骤,可以在确定键矩阵之后,根据语音序列中的语音特征的数量,以及各个初始键特征在键矩阵中的第二排序值,直接确定每个初始键特征分别对应的第二余弦权重,也即,每个初始键特征对应的第二余弦权重在确定键矩阵之后统一确定出,后续使用时直接获取。或者,也可以在具体使用一初始键特征对应的第二余弦权重时,根据语音特征的数量,以及该初始键特征在键矩阵中的第二排序值,确定该初始键特征对应的第二余弦权重并使用,不提前统一确定。关于各个第一余弦权重的确定时机,可以根据实际的语音识别需要进行设置,此处也不进行限定。
S102:基于第一余弦权重和第二余弦权重,确定每个初始查询特征分别与各个初始键特征之间的相似度。
这里,相似度用于表征初始查询特征与初始键特征之间的匹配度。
具体实施时,在确定初始查询特征与初始键特征之间的相似度时,可以利用初始查询特征对应的第一余弦权重,对初始查询特征对应的目标查询特征进行加权,得到加权结果。同时,可以利用初始键特征对应的第二余弦权重,对初始键特征对应的目标键特征进行加权,得到加权结果。之后,再基于两个加权结果,确定出初始查询特征与初始键特征之间的相似度。
如此,基于每个初始查询特征对应的第一余弦权重和目标查询特征,以及每个初始键特征对应的第二余弦权重和目标键特征,可以确定出每个初始查询特征分别与各个初始键特征之间的相似度。
在一种实施例中,S102可以按照以下步骤实施:
S102-1:利用预设的多个核函数中的任一个目标核函数,将每个初始查询特征转换为非负的目标查询特征,以及将每个初始键特征转换为非负的目标键特征。
这里,预设的多个核函数可以包括如下的三个核函数:
上述
表示核函数,x表示初始查询特征或初始键特征。核函数一对应的语音识别速度最快,核函数三对应的语音识别效果最好,核函数二对应的识别速度最慢。上述三个核函数中的任一个核函数均可以作为目标核函数。具体的,关于目标核函数的使用,可以根据实际的语音识别需要进行选择。例如,当需要提高识别速度时,可以选取核函数一作为目标核函数,当需要保证识别效果最好时,可以选取核函数三作为目标核函数,当不考虑识别速度时,可以选取核函数二作为目标核函数。
根据上述三个核函数分别对应的函数特点可知,每个核函数均不存在负值,因此,在选取上述任一核函数作为目标核函数,并利用目标核函数对初始查询特征和初始键特征进行转换时,得到的目标查询特征和目标键特征均为非负的。继而,由转换得到的各个目标查询特征组成的矩阵也将为非负矩阵,由转换得到的各个目标键特征组成的矩阵也将为非负矩阵。
示例性的,在目标核函数为上述核函数一时,可以将查询矩阵中的各个初始查询特征分别代入上述核函数一,得到每个初始查询特征分别对应的目标查询特征。同时,可以将键矩阵中的各个初始键特征分别代入上述核函数一,得到每个初始键特征分别对应的目标键特征。
S102-2:基于每个初始键特征对应的第二余弦权重和该初始键特征对应的目标键特征,确定每个初始键特征对应的第一加权结果。
示例性的,针对每个初始键特征,可以将该初始键特征对应的第二余弦权重和该初始键特征对应的目标键特征相乘,将相乘后得到的结果作为该初始键特征对应的第一加权结果。
S102-3:针对每个初始查询特征,基于初始查询特征对应的目标查询特征和初始查询特征对应的第一余弦权重,确定初始查询特征对应的第二加权结果;并基于第二加权结果和各个初始键特征对应所述第一加权结果,确定初始查询特征分别与各个初始键特征之间的相似度。
具体实施时,针对每个初始查询特征,可以将该初始查询特征对应的目标查询特征和该初始查询特征对应的第一余弦权重相乘,将相乘后得到的结果作为该初始查询特征对应的第二加权结果。
之后,针对该初始查询特征和任一初始键特征,可以将该初始查询特征对应的第二加权结果,和该初始键特征对应的第一加权结果的转置相乘,基于相乘后得到的结果,确定出该初始查询特征和该初始键特征之间的相似度。
在一种实施例中,针对S102-3中的基于第二加权结果和各个初始键特征对应所述第一加权结果,确定初始查询特征分别与各个初始键特征之间的相似度的步骤,可以按照以下步骤实施:
S102-3-1:基于初始查询特征在查询矩阵中的第一排序值和语音特征的数量,确定初始查询特征对应的第一正弦权重,以及基于每个初始键特征在键矩阵中的第二排序值,确定每个初始键特征对应的第二正弦权重。
这里,第一排序值由初始查询特征在查询矩阵中的位置决定。例如,初始查询特征为查询矩阵中的第一个元素,则初始查询特征对应的第一排序值即为1,又例如,初始查询特征为查询矩阵中的第i个元素,则初始查询特征对应的第一排序值即为i。第二排序值由初始键特征在键矩阵中的位置决定。
上述第一正弦权重用于对初始查询特征对应的目标查询特征进行加权处理。上述第二正弦权重用于对初始键特征对应的目标键特征进行加权处理。
具体实施时,各个初始查询特征对应的第一正弦权重可以根据下述公式三确定:
其中,i表示初始查询矩阵对应的第一排序值,M表示待识别的语音序列中语音特征的数量。
基于上述公式三以及每个初始查询特征对应的第一排序值,可以确定出每个初始查询特征对应的第一正弦权重。
同时,各个初始键特征对应的第二正弦权重可以根据下述公式四确定:
其中,j表示初始键特征对应的第二排序值。
基于上述公式四,可以分别确定出各个初始键特征分别对应的第二正弦权重。
S102-3-2:基于第一正弦权重和初始查询特征对应的目标查询特征,确定初始查询特征对应的第三加权结果。
针对每个初始查询特征,可以将该初始查询特征对应的第一正弦权重和该初始查询特征对应的目标查询特征相乘,得到该初始查询特征对应的第三加权结果。
S102-3-3:针对每个初始键特征,基于初始键特征对应的第二正弦权重和初始键特征对应的目标键特征,确定初始键特征对应的第四加权结果。
这里,针对初始键特征,可以将该初始键特征对应的第二正弦权重和该初始键特征对应的目标键特征相乘,得到该初始键特征对应的第四加权结果。
S102-3-4:基于第二加权结果、第三加权结果、每个初始键特征对应的第一加权结果和第四加权结果,确定初始查询特征与每个初始键特征之间的相似度。
这里,针对每个初始查询特征与任一个初始键特征,可以将该初始查询特征对应的第二加权结果和该初始键特征对应的第一加权结果的转置相乘,将该初始查询特征对应的第三加权结果和该初始键特征对应的第四加权结果的转置相乘,将两次相乘的结果相加,得到该初始查询特征与该初始键特征之间的相似度。
在具体实施时,可以按照以下如下公式五确定出任一个初始查询特征与任一个初始键特征之间的相似度:
其中,i表示第一排序值,j表示第二排序值,Q
i表示查询矩阵Q中的第i个初始查询特征,K
j表示键矩阵K中的第j个初始键特征,
表示第j个初始键特征的转置,
表示第i个初始查询特征与第j个初始键特征之间的相似度,i和j的最大值均为待识别的语音序列中的语音特征的数量,Q’
i表示利用目标核函数对第i个初始查询特征进行转换后,得到的第i个目标查询特征,
表示第i个初始查询特征对应的第一余弦权重,
表示将i个初始查询特征对应的第二加权结果,K’
j表示利用目标核函数对第j个初始键特征进行转换后,得到的第j个目标键特征,
表示第j个初始键特征对应的第二余弦权重,
表示第j个初始键特征对应的第一加权结果,
表示第一加权结果的转置。
表示第i个初始查询特征对应的第一正弦权重,
表示第i个初始查询特征对应的第三加权结果,
表示第j个初始键特征对应的第二正弦权重,
表示第j个初始键特征对应的第四加权结果,
表示第四加权结果的转置。
具体实施时,可以利用上述公式五和目标核函数,确定出任一个初始查询特征与任一个初始键特征之间的相似度。
关于上述公式五,可以按照以下过程推算得到:
首先,每个语音特征对应的注意力特征可以按照如下公式六得到:
其中,K
j表示键矩阵中的第j个初始键特征,V
j表示值矩阵中的第j个目标值特征,其中,初始键特征和目标值特征可以组成一个键值对,成对使用。例如,在上述公式六的K
j为键矩阵中的第5个初始键特征时,V
j也为值矩阵中的第5个目标值特征。
表示第j个初始键特征的转置,O中的O
T的数量与待识别的语音序列中的语音特征的数量一致,O
i表示第待识别的语音序列中的第i个语音特征对应的注意力特征。
表示第i个初始查询特征和第j个初始键特征之间的相似度。
进一步的,为了避免直接将查询矩阵和键矩阵直接相乘带来的计算量大的问题,可以将利用目标核函数对查询矩阵和键矩阵分别进行处理以避免查询矩阵和键矩阵直接相乘,具体的,可以利用目标核函数对
进行分解,得到下述公式八:
其中,
表示目标核函数,
表示利用目标核函数对第i个初始查询特征进行转换后,得到的目标查询特征,
表示利用目标核函数对第j个初始键特征进行转换后,得到的目标键特征,
表示j个初始键特征对应的目标键特征的转置。
进而,根据公式八和公式七,对公式七进行改写,得到公式九:
归一化操作(softmax)操作在注意力机制中发挥有重要作用,它确保查询矩阵和键矩阵是非负的,并提供非线性重新加权机制来描述每个语音特征对应的全局上下文信息。为了使公式八确定出的相似度Oi逼近于利用softmax确定出的相似度Oi,可以通过在公式八中引入余弦函数来实现。具体的,通过引入余弦函数在计算相似度Oi时引入非线性重新加权,实现计算出的相似度Oi逼近于利用softmax确定出的相似度Oi,在引入余弦函数后,公式八可以转换为下述公式十:
之后,可以将从上述核函数一、核函数二或核函数三中选取的任一个目标核函数代入上述公式十。
示例性的,以目标核函数为核函数一为例,在将核函数一为代入上述公式十后,可以得到下述公式十一:
令ReLU(Qi)=Q’i,ReLU(Kj)=K’j,T=M,并对余弦函数进行拆分,公式十一可以转换为下述公式十二:
再对公式十二进行形式变换,可以得到如下结论:
也即,基于公式六~公式十二,转换得到了上述公式五。基于上述公式五和目标核函数,可以计算出各个初始查询特征与各个初始键特征之间的相似度。
此外,在目标核函数为核函数二的情况下,可以设置
在目标核函数为核函数三的情况下,可以设置sigmoid(Q
i)=Q’
i,关于后续得到上述公式五的过程,均可以参照上述目标核函数为核函数一时的描述,此处不再赘述。
S103:针对语音序列中的每个语音特征,基于语音特征对应的初始查询特征与各个初始键特征之间的相似度、以及语音序列对应的值矩阵中的每个目标值特征,确定语音特征对应的注意力特征。
示例性的,针对语音序列中的每个语音特征,可以将该语音特征对应的初始查询特征Q
i与各个初始键特征K
j之间的相似度
该语音特征对应的目标查询特征
以及每个目标键特征的转置
和每个目标值特征V
j,代入上述公式九,得到该语音特征对应的注意力特征。
在一种实施例中,针对S103,可以如下步骤实施:
S103-1:针对每个初始键特征,基于初始键特征对应的第一加权结果,和在值矩阵中对应的第三排序值与初始键特征对应的第二排序值相同的目标值特征,确定初始键特征对应的第一中间结果。
S103-2:基于初始键特征对应的第四加权结果,和在值矩阵中对应的第三排序值与初始键特征对应的第二排序值相同的目标值特征,确定初始键特征对应的第二中间结果。
S103-3:将所述初始查询特征对应的第二加权结果和每个所述初始键特征对应的第一中间结果相乘,得到第五加权结果;
S103-4:将所述初始查询特征对应的第三加权结果和每个所述初始键特征对应的第二中间结果相乘,得到第六加权结果;
S103-5:基于所述语音特征对应的初始查询特征与每个所述初始键特征之间的相似度之和、所述第五加权结果之和、以及所述第六加权结果之和,确定所述语音特征对应的注意力特征。
这里,第三排序值由目标值特征在值矩阵中的位置决定。例如,目标值特征为值矩阵中的第一个元素,则目标值特征对应的第三排序值即为1。
具体实施时,针对上述S103-1~S103-5,在得到上述公式五之后,可以令公式五中的
令
令
令
然后公式五可以简化为公式十三:
之后,基于公式十三和公式七,可以得到注意力函数对应的公式十四:
其中,
表示第j个初始键特征对应的第一加权结果,
表示第j个初始键特征对应的第一加权结果的转置,V
j表示第j个目标值特征,
表示第j个初始键特征对应的第四加权结果,
表示第j个初始键特征对应的第四加权结果的转置,
表示第j个初始键特征对应的第一中间结果,
表示第i个初始查询特征对应的第二加权结果,
表示第i个初始查询特征对应的第三加权结果,
表示第i个初始查询特征对应的第五加权结果,
表示第i个初始查询特征对应的第六加权结果。
表示第i个初始查询特征Q
i与每个初始键特征之间的相似度之和,
表示第i个初始查询特征对应的第五加权结果之和,
表示第i个初始查询特征对应的第六加权结果之和。这样,基于上述公式十四,可以分别确定出每个语音特征x
i对应的注意力特征O
i。
示例性的,待识别的语音序列X={x1,x2,x3,……xT},语音特征分别为x1~xT,则得到的x1对应的注意力特征为O1,得到的x2对应的注意力特征为O2,依次类推,得到的xT对应的注意力特征为OT。
并且,针对上述公式十四,可以用下述公式十五简化表示:
例如,查询矩阵和键矩阵均为T乘d的矩阵,则查询矩阵和键矩阵的转置矩阵直接进行相乘所需的计算量则为T^2×d,而基于上述公式十四进行计算,计算出注意力特征所需要的计算量将减少为T×d^2。因此,基于公式十四进行长语音序列的识别,时的计算压力将减少,识别时间也将减少,有效提高了识别速度。
在具体实施时,确定各个语音特征对应的注意力特征的步骤,均可以利用训练好的语音识别神经网络中的CBSA模块执行,最终由CBSA模块输出各个语音特征对应的注意力特征。
S104:基于语音序列中各个语音特征分别对应的注意力特征,确定语音序列对应的语音识别结果。
这里,语音识别结果即为对待识别的语音序列进行识别后输出的文字结果。例如,待识别的语音序列X={x1,x2,x3,……xT},语音序列对应的语音识别结果可以为Y={y1,x2,x3,……yU},其中,T>>U。这里,y1~yU分别表示识别出的不同的文字结果,一个文字结果可以由多个语音特征确定,因此,Y远大于U,也即,语音特征的数量远大于文字结果的数量。此外,受语速的影响,文字结果和语音特征之间并不存在严格的数量映射关系。
具体实施时,在得到各个语音特征分别对应的注意力特征之后,语音识别神经网络可以对各个注意力特征进行进一步的特征解析,从而确定出语音序列对应的语音识别结果。
本公开实施例中的语音识别方法可以应用在智能车舱场景、语音客服场景、审核场景等多个场景中。示例性的,在智能车舱场景下,智能车舱可以获取驾驶员讲述的语音片段,并利用上述语音识别方法对该语音片段进行识别,确定该语音片对应的语音识别结果指示在行驶500米后停止行驶,则智能车舱可以在控制车辆行驶500米后,控制车辆停止行驶。又例如,在语音客服场景下,可以利用部署有上述语音识别方法的语音识别机器人,获取客户的语音片段,并利用上述语音识别方法对该语音片段进行识别,确定该语音片对应的语音识别结果为:我想查询本账号的账单信息,则语音识别机器人可以根据该语音识别结果,将账单信息播报给客户。再例如,在审核场景下,可以利用部署有上述语音识别方法的审核机器人,获取客户的语音片段,并利用上述语音识别方法对该语音片段进行识别,确定该语音片对应的语音识别结果指示的语音验证码为1234,则可以根据该语音验证码确定用户是否存在进入目标区域的权限。本公开实施例直接基于余弦权重确定各个语音特征对应的注意力特征方式,省略了将多个注意力矩阵直接进行相乘的步骤,降低了计算量,提高了语音识别的速度。并且,计算量的减少,在识别长语音序列时的计算压力将减少,识别长语音序列的时间也将减少,有效提高了识别长语音序列的识别速度。
在一种实施例中,针对S104,可以按照以下步骤实施:
S104-1:将融合后的语音序列中的每个语音特征和该语音特征对应的注意力特征进行融合,得到融合后的每个注意力特征。
这里,融合后的语音序列为将待识别的语音序列和第一个前馈网络层模块输出的映射后的语音序列进行序列融合后得到的语音序列。
在得到各个语音特征对应的注意力特征之后,针对每个语音特征对应的注意力特征,可以将该语音特征对应的注意力特征,和融合后的语音序列中与该语音特征对应的融合后的语音特征进行融合,得到融合后的每个注意力特征。其中,融合后的注意力特征的数量与待识别的语音序列中的语音特征的数量一致,且融合后的注意力特征与待识别的语音序列中的语音特征一一对应。
S104-2:对融合后的每个注意力特征分别进行卷积操作,得到卷积后的每个注意力特征,并对卷积后的每个注意力特征和该注意力特征对应的融合后的注意力特征进行特征融合,得到卷积后的每个注意力特征分别对应的初始注意力特征。
具体实施时,可以将融合后的各个注意力特征输入至语音识别神经网络中的卷积模块(Convolution Module),利用Convolution Module对融合后的每个注意力特征分别进行卷积操作,得到卷积后的每个注意力特征。再将卷积后的每个注意力特征和该注意力特征对应的融合后的注意力特征进行特征融合,得到卷积后的每个注意力特征分别对应的初始注意力特征。
初始注意力特征的数量与待识别的语音序列中的语音特征的数量一致,且初始注意力特征与待识别的语音序列中的语音特征一一对应。
S104-3:对每个初始注意力特征执行空间映射操作,得到映射后的每个初始注意力特征,并对每个初始注意力特征和该初始注意力特征对应的映射后的初始注意力特征进行特征融合,得到融合后的每个初始注意力特征。
具体实施时,可以将各个初始注意力特征,输入至语音识别神经网络中的第二个前馈网络层模块(Feed Forward Module),利用第二个前馈网络层模块对每个初始注意力特征分别执行空间映射操作,得到映射后的每个初始注意力特征。之后,可以将每个初始注意力特征和该初始注意力特征对应的映射后的初始注意力特征进行特征融合,得到融合后的每个初始注意力特征。
S104-4:对融合后的每个初始注意力特征执行归一化操作,得到每个语音特征对应的中间注意力特征,并基于每个中间注意力特征,确定语音序列对应的语音识别结果。
具体实施时,可以将融合后的每个初始注意力特征,输入至语音识别神经网络中的归一化层(LayerNorm),利用LayerNorm对融合后的每个初始注意力特征分别执行归一化操作,得到融合后的每个初始注意力特征分别对应的中间注意力特征,由于融合后的每个初始注意力特征与待识别的语音序列中的语音特征一一对应,所以也就得到的待识别的语音序列中的每个语音特征分别对应的中间注意力特征。
进一步的,语音识别神经网络可以对中间注意力特征直接进行解析,确定出语音序列对应的语音识别结果。
其中,上述第一个前馈网络层模块、CBSA模块、卷积模块、第二个前馈网络层模块和归一化层,均属于语音识别神经网络中的编码器(Encoder)的模块。也即,在得到待识别的语音序列之后,可以将该待识别的语音序列输入至Encoder,Encoder中的各个模块可以基于该待识别的语音序列,输出该待识别的语音序列对应的语音识别结果。
或者,在另一种实施例中,在得到每个中间注意力特征之后,可以将由每个中间注意力特征组成的序列作为新的待识别的语音序列,并将每个中间注意力特征作为该新的待识别的语音序列中的各个语音特征。
之后,返回执行对语音序列执行空间映射操作,得到映射后的语音序列的步骤,直至循环次数达到预设次数,得到待识别的语音序列对应的每个目标注意力特征。
这里,预设次数根据语音识别神经网络中包括的Encoder的数量决定,Encoder的数量可以根据开发需求进行设置,此处不进行限制。
示例性的,语音识别神经网络中可以包括12个Encoder。每个Encoder的结构一致,均包括上述第一个前馈网络层模块、CBSA模块、卷积模块、第二个前馈网络层模块和归一化层。针对每个Encoder而言,其对应的卷积内核为31,模型尺寸为256,两个前馈网络层模块均具有2048个前向层。每个层对应的Dropout率可以设置为0.1。
在利用第一个Encoder输出每个中间注意力特征之后,可以将第一个Encoder的输出,作为第二个Encoder的输入,利用第二个Encoder对该输入进行处理,得到第二个Encoder输出的各个中间注意力特征,再将第二个Encoder输出的各个中间注意力特征,作为第三个Encoder的输入,依次类推,可以将第十二个Encoder的输出的各个中间注意力特征,作为待识别的语音序列对应的每个目标注意力特征。其中,一个目标注意力特征对应于待识别的语音序列中的一个语音特征。
最后,可以基于输出的每个目标注意力特征,确定语音识别结果。
例如,语音识别神经网络可以直接对输出的每个目标注意力特征进行解析,基于解析结果,确定语音识别结果。
这样,利用多个解码器进行多次解码操作,可以将各个语音特征对应所表征的信息的充分提取,从而得到包含丰富信息的目标注意力特征。利用每个目标注意力特征进行语音识别,可以提高确定出的语音识别结果的准确性。
或者,在得到每个目标注意力特征之后,可以利用预设的至少一个解码模块,对每个目标注意力特征进行特征解码,得到语音识别结果;其中,解码次序前后相邻的两个解码模块中的后一个解码模块的输入,为前一个解码模块的输出,解码次序位于最后的解码模块的输出为语音识别结果。
这里,解码模块具体可以为变压器解码器(Transformer Decoder)。解码模块的数量可以根据实际的语音识别需要进行设置,此处不进行限制。
示例性的,语音识别神经网络可以部署有6个解码模块,每次解码模块对应于不同的解码次序。解码次序前后相邻的两个解码模块中的后一个解码模块的输入,为前一个解码模块的输出,解码次序位于最后的解码模块的输出为语音识别结果。
例如,在第十二个Encoder的输出每个目标注意力特征之后,可以将每个目标注意力特征输入至解码次序为1的第一个解码模块,利用第一个解码模块分别对每个目标注意力特征进行特征解码,得到并输出每个目标注意力特征对应的解码特征,然后可以将第一个解码模块的输出,作为输入至解码次序为2的第二个解码模块的输入,利用第二个解码模块对每个解码特征进行进一步的解码,得到第二个解码模块的输出,再将第二模块的输出,作为解码次序为3的第三个解码模块的输入,依次类推,将解码次序为6的第六个解码模块的输出作为最终的语音识别结果。
这样,利用多个解码模块进行解码,能够实现对每个目标注意力特征所表征的信息的充分解码,从而得到准确的语音识别结果。
如图2所示,为本公开实施例提供的一种语音识别神经网络的结构示意图,其中,N表示语音识别神经网络中的编码器Encoder的数量,M表示语音识别神经网络中的变压器解码器Transformer Decoder的数量。Encoder的具体结构可以如虚线框部分所示。
在语音识别神经网络中包括Encoder和Transformer Decoder的情况下,在将待识别的语音序列输入至语音识别神经网络中之后,可以利用语音识别神经网络中的Encoder和Transformer Decoder对待识别的语音序列进行处理,最终由Transformer Decoder输出语音识别结果。
或者,在语音识别神经网络中仅包括Encoder的情况下,可以在最后一个Encoder输出待识别的语音序列对应的各个目标注意力特征之后,直接基于目标注意力特征,输出语音识别结果。关于语音识别神经网络中是否需要包括Transformer Decoder,可以根据实际的语音识别需要确定,本公开实施例不进行限定。
在一种实施例中,由于本公开实施例提供的语音识别方法可以利用训练好的语音识别神经网络执行,所以本公开实施例还提供了一种训练语音识别神经网络的方法,如图3所示,为本公开实施例提供的一种训练待训练的语音识别神经网络的方法的流程图,可以包括以下步骤:
S301:获取待识别的样本语音序列。
这里,待识别的样本语音序列中可以包括多个样本语音特征。
S302:将样本语音序列输入待训练的语音识别神经网络,并利用待训练的语音识别神经网络对样本语音序列进行识别处理,确定样本语音序列对应的每个目标预测注意力特征。
这里,一个目标预测注意力特征对应于一个样本语音特征,目标注意力特征的数量与样本语音特征的数量一致,目标预测注意力特征为待训练的语音识别神经网络对样本语音特征进行识别处理后,输出的与样本语音特征相对应的预测特征。
具体的,各个目标预测注意力特征可以为待训练的语音识别神经网络中的最后一个Encoder的输出。
S303:基于每个目标预测注意力特征,确定样本语音序列对应的预测语音结果。
这里,预测语音结果即为对样本语音序列进行识别后输出的预测文字结果。
具体实施时,可以分别对每个目标预测注意力特征进行特征解析,基于解析结果确定样本语音序列对应的预测语音结果。
S304:基于预测语音结果和样本语音序列对应的标准语音结果,确定待训练的语音识别神经网络对应的预测损失,并利用预测损失对待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。
这里,标准语音结果为样本语音序列对应的真实标签。训练截止条件可以为迭代训练的轮数达到预设轮数和/或训练完成的语音识别神经网络的预设精度达到预设精度。
具体实施时,可以根据预测语音结果和标准语音结果,确定待训练的语音识别神经网络在进行语音识别时的预测损失,然后利用预测损失对待训练的语音识别神经网络进行迭代训练,在满足训练截止条件的情况下,将训练得到的语音识别神经网络,作为最终训练好的语音识别神经网络。
在一种实施例中,预测语音结果可以包括第一预测语音结果,预测损失可以包括时序分类损失。
这里,第一预测语音结果可以为待训练的语音识别神经网络,直接对目标预测注意力特征进行处理而得到的预测语音结果。
具体实施时,在待训练的目标神经网络中不包括Transformer Decoder的情况下,在待训练的语音识别神经网络中的最后一个Encoder,输出样本语音序列对应的各个目标预测注意力特征后,待训练的语音识别神经网络可以直接对各个目标预测注意力特征进行解析处理,输出样本语音序列对应的第一预测语音结果。
进一步的,时序分类损失可以为在不包括解码模块(具体可以为TransformerDecoder)的情况下计算出的预测损失。时序分类损失也可以称为CTC损失。具体的,可以利用神经网络连接时序分类CTC算法,基于第一预测语音结果和标准语音结果,确定时序分类损失。
CTC:Connectionist temporal classification,神经网络连接时序分类,是一种常用在语音识别、文本识别等领域的算法,用来解决第一预测语音结果对应的序列和标准语音结果对应的序列长度不一、无法对齐的问题,实际可以作为待训练的语音识别神经网络对应的预测损失。
具体实施时,可以利用CTC算法对于第一预测语音结果和标准语音结果进行处理,得到时序分类损失。并且可以利用CTC准则对时序分类损失进行优化,得到优化后的时序分类损失。
之后,可以利用优化后的时序分类损失对待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。
在另一种实施例中,预测语音结果还可以包括第二预测语音结果,预测损失还可以包括交叉熵损失。交叉熵损失可以为在包括解码模块(具体可以为TransformerDecoder)的情况下计算出的预测损失。交叉熵损失也可以称为CE损失,其中,CE:CrossEntropy,交叉熵。
这里,在待训练的目标神经网络中包括至少一个解码模块(具体可以为Transformer Decoder)的情况下,可以利用待训练的语音识别神经网络中预设的至少一个解码模块,对每个目标预测注意力特征进行特征解码,得到第二预测语音结果。
示例性的,在待训练的语音识别神经网络中的最后一个Encoder,输出样本语音序列对应的各个目标预测注意力特征后,可以将各个目标预测注意力特征输入至第一个Transformer Decoder,利用第一个Transformer Decoder对其进行处理,得到第一个Transformer Decoder的输出,再将第一个Transformer Decoder的输出,作为第二个Transformer Decoder的输入,依次类推,将最后一个Transformer Decoder的输出作为第二预测语音结果。
继而,可以基于第二预测语音结果和标准语音结果,确定待训练的语音识别神经网络对应的交叉熵损失。
最后,可以利用交叉熵损失对待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。或者,也可以利用交叉熵损失和时序分类损失,一起对待训练的语音识别神经网络进行迭代训练,在满足训练截止条件的情况下,得到训练好的语音识别神经网络。
这里,如果使用交叉熵损失和时序分类损失,一起对待训练的语音识别神经网络进行迭代训练,训练好的语音识别神经网络在具体应用时,在语音识别神经网络中的最后一个Encoder输出预测的目标注意力特征之后,可以直接利用目标注意力特征确定语音识别结果;也可以利用Transformer Decoder对目标注意力特征进行特征解码,以确定语音识别结果,此处不进行具体限定。
如图4所示,为本公开实施例提供的一种确定待训练的语音识别神经网络对应的预测损失的示意图,其中,N表示待训练的语音识别神经网络中的编码器Encoder的数量,M表示待训练的语音识别神经网络中的变压器解码器Transformer Decoder的数量。
针对待训练的语音识别神经网络中包括Encoder的情况,可以在最后一个Encoder输出样本语音序列对应的每个目标预测注意力特征之后,直接基于每个目标预测注意力特征,确定样本语音序列对应的第一预测语音结果。之后,可以基于第一预测语音结果和样本语音序列对应的标准语音结果,确定待训练的语音识别神经网络对应的时序分类损失(CTC损失)。
针对待训练的语音识别神经网络中包括Encoder和Transformer Decoder的情况,在将样本语音序列输入至待训练的语音识别神经网络中之后,可以利用语音识别神经网络中的Encoder和Transformer Decoder对样本语音序列进行处理,最终由TransformerDecoder输出样本语音序列对应的第二预测语音结果。进而,可以基于第二预测语音结果和样本语音序列对应的标准语音结果,确定待训练的语音识别神经网络对应的交叉熵损失(CE损失)。
之后,可以利用CE损失和CTC损失中的至少一个损失,对待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与语音识别方法对应的语音识别装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述语音识别方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,为本公开实施例提供的一种语音识别装置的示意图,包括:
第一确定模块501,用于基于待识别的语音序列中的语音特征的数量,确定所述语音序列对应的查询矩阵中的每个初始查询特征的第一余弦权重,和所述语音序列对应的键矩阵中的每个所述初始键特征的第二余弦权重;
第二确定模块502,用于基于所述第一余弦权重和所述第二余弦权重,确定每个所述初始查询特征分别与各个所述初始键特征之间的相似度;
第三确定模块503,用于针对所述语音序列中的每个语音特征,基于所述语音特征对应的初始查询特征与各个所述初始键特征之间的相似度、以及所述语音序列对应的值矩阵中的每个目标值特征,确定所述语音特征对应的注意力特征;
第四确定模块504,用于基于所述语音序列中各个所述语音特征分别对应的注意力特征,确定所述语音序列对应的语音识别结果。
在一种可能的实施方式中,所述第二确定模块502,在所述基于所述第一余弦权重和所述第二余弦权重,确定每个所述初始查询特征分别与各个所述初始键特征之间的相似度时,用于利用预设的多个核函数中的任一个目标核函数,将每个所述初始查询特征转换为非负的目标查询特征,以及将每个初始键特征转换为非负的目标键特征;
基于每个所述初始键特征对应的第二余弦权重和该初始键特征对应的目标键特征,确定每个所述初始键特征对应的第一加权结果;
针对每个所述初始查询特征,基于所述初始查询特征对应的目标查询特征和所述初始查询特征对应的第一余弦权重,确定所述初始查询特征对应的第二加权结果;并基于所述第二加权结果和各个所述初始键特征对应所述第一加权结果,确定所述初始查询特征分别与各个所述初始键特征之间的相似度。
在一种可能的实施方式中,所述第二确定模块502,在所述基于所述第二加权结果和各个所述初始键特征对应所述第一加权结果,确定所述初始查询特征分别与各个所述初始键特征之间的相似度时,用于基于所述初始查询特征在所述查询矩阵中的第一排序值和所述语音特征的数量,确定所述初始查询特征对应的第一正弦权重,以及基于每个所述初始键特征在所述键矩阵中的第二排序值,确定每个所述初始键特征对应的第二正弦权重;
基于所述第一正弦权重和所述初始查询特征对应的目标查询特征,确定所述初始查询特征对应的第三加权结果;
针对每个所述初始键特征,基于所述初始键特征对应的第二正弦权重和所述初始键特征对应的目标键特征,确定所述初始键特征对应的第四加权结果;
基于所述第二加权结果、所述第三加权结果、每个所述初始键特征对应的第一加权结果和第四加权结果,确定所述初始查询特征与每个所述初始键特征之间的相似度。
在一种可能的实施方式中,所述第三确定模块503,在所述基于所述语音特征对应的初始查询特征与各个所述初始键特征之间的相似度、以及所述语音序列对应的值矩阵中的每个目标值特征,确定所述语音特征对应的注意力特征时,用于针对每个所述初始键特征,基于所述初始键特征对应的第一加权结果,和在所述值矩阵中对应的第三排序值与所述初始键特征对应的第二排序值相同的目标值特征,确定所述初始键特征对应的第一中间结果;
基于所述初始键特征对应的第四加权结果,和在所述值矩阵中对应的第三排序值与所述初始键特征对应的第二排序值相同的目标值特征,确定所述初始键特征对应的第二中间结果;
将所述初始查询特征对应的第二加权结果和每个所述初始键特征对应的第一中间结果相乘,得到第五加权结果;
将所述初始查询特征对应的第三加权结果和每个所述初始键特征对应的第二中间结果相乘,得到第六加权结果;
基于所述语音特征对应的初始查询特征与每个所述初始键特征之间的相似度之和、所述第五加权结果之和、以及所述第六加权结果之和,确定所述语音特征对应的注意力特征。
在一种可能的实施方式中,所述装置还包括映射模块505,用于在所述基于待识别的语音序列中的语音特征的数量,确定所述语音序列对应的查询矩阵中的每个所述初始查询特征的第一余弦权重之前,获取待识别的所述语音序列,并对所述语音序列执行空间映射操作,得到映射后的所述语音序列;
将所述语音序列和映射后的所述语音序列进行序列融合,得到融合后的语音序列;
利用目标特征矩阵分别对融合后的语音序列进行特征映射处理,得到所述语音序列对应的查询矩阵、键矩阵和值矩阵;其中,所述查询矩阵、键矩阵和值矩阵分别对应不同的所述目标特征矩阵。
在一种可能的实施方式中,所述第四确定模块504,在所述基于所述语音序列中各个所述语音特征分别对应的注意力特征,确定所述语音序列对应的语音识别结果时,用于将所述融合后的语音序列中的每个语音特征和该语音特征对应的注意力特征进行融合,得到融合后的每个注意力特征;
对融合后的每个注意力特征分别进行卷积操作,得到卷积后的每个注意力特征,并对卷积后的每个注意力特征和该注意力特征对应的融合后的注意力特征进行特征融合,得到卷积后的每个注意力特征分别对应的初始注意力特征;
对每个所述初始注意力特征执行空间映射操作,得到映射后的每个初始注意力特征,并对每个所述初始注意力特征和该初始注意力特征对应的映射后的初始注意力特征进行特征融合,得到融合后的每个初始注意力特征;
对融合后的每个初始注意力特征执行归一化操作,得到每个语音特征对应的中间注意力特征,并基于每个中间注意力特征,确定所述语音序列对应的语音识别结果。
在一种可能的实施方式中,所述第四确定模块504,在所述基于每个中间注意力特征,确定所述语音序列对应的语音识别结果时,用于将由每个中间注意力特征组成的序列作为新的待识别的语音序列,以及将每个中间注意力特征作为所述新的待识别的语音序列中的各个语音特征;
返回执行对所述语音序列执行空间映射操作,得到映射后的所述语音序列的步骤,直至循环次数达到预设次数,得到所述待识别的语音序列对应的每个目标注意力特征;
基于每个所述目标注意力特征,确定所述语音识别结果。
在一种可能的实施方式中,所述第四确定模块504,在所述基于每个所述目标注意力特征,确定所述语音识别结果时,用于利用预设的至少一个解码模块,对每个所述目标注意力特征进行特征解码,得到所述语音识别结果;其中,解码次序前后相邻的两个解码模块中的后一个解码模块的输入,为前一个解码模块的输出,解码次序位于最后的解码模块的输出为所述语音识别结果。
在一种可能的实施方式中,所述语音识别方法利用预先训练好的语音识别神经网络执行;
所述装置还包括:训练模块506,用于按照以下步骤训练所述语音识别神经网络:
获取待识别的样本语音序列;
将所述样本语音序列输入待训练的语音识别神经网络,并利用所述待训练的语音识别神经网络对所述样本语音序列进行识别处理,确定所述样本语音序列对应的每个所述目标预测注意力特征;
基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果;
基于所述预测语音结果和所述样本语音序列对应的标准语音结果,确定所述待训练的语音识别神经网络对应的预测损失,并利用所述预测损失对所述待训练的语音识别神经网络进行迭代训练,直至满足训练截止条件,得到训练好的语音识别神经网络。
在一种可能的实施方式中,所述预测语音结果包括第一预测语音结果,所述预测损失包括时序分类损失;
所述训练模块506,在所述基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果时,用于利用每个所述目标预测注意力特征,确定所述样本语音序列对应的第一预测语音结果;
以及在所述基于所述预测语音结果,确定所述待训练的语音识别神经网络对应的预测损失时,用于利用神经网络连接时序分类CTC算法,基于所述第一预测语音结果和所述标准语音结果,确定所述时序分类损失。
在一种可能的实施方式中,所述预测语音结果包括第二预测语音结果,所述预测损失包括交叉熵损失;
所述训练模块506,在所述基于每个所述目标预测注意力特征,确定所述样本语音序列对应的预测语音结果时,用于利用所述待训练的语音识别神经网络中预设的至少一个解码模块,对每个所述目标预测注意力特征进行特征解码,得到所述第二预测语音结果;
以及在所述基于所述预测语音结果,确定所述待训练的语音识别神经网络对应的预测损失时,用于基于所述第二预测语音结果和所述标准语音结果,确定所述交叉熵损失。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图6所示,为本申请实施例提供的一种计算机设备的结构示意图,包括:
处理器61、存储器62和总线63。其中,存储器62存储有处理器61可执行的机器可读指令,处理器61用于执行存储器62中存储的机器可读指令,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:S101:基于待识别的语音序列中的语音特征的数量,确定语音序列对应的查询矩阵中的每个初始查询特征的第一余弦权重,和语音序列对应的键矩阵中的每个初始键特征的第二余弦权重;S102:基于第一余弦权重和第二余弦权重,确定每个初始查询特征分别与各个初始键特征之间的相似度;S103:针对语音序列中的每个语音特征,基于语音特征对应的初始查询特征与各个初始键特征之间的相似度、以及语音序列对应的值矩阵中的每个目标值特征,确定语音特征对应的注意力特征以及S104:基于语音序列中各个语音特征分别对应的注意力特征,确定语音序列对应的语音识别结果。
上述存储器62包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换,当计算机设备运行时,处理器61与存储器62之间通过总线63通信,使得处理器61在执行上述方法实施例中所提及的执行指令。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的语音识别方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的语音识别方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的语音识别方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式、处理的个人信息种类等信息。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。