首页 / 语音情绪识别模型训练方法、情绪识别方法、装置和设备

语音情绪识别模型训练方法、情绪识别方法、装置和设备有效专利 发明

技术领域

[0001] 本公开涉及人工智能领域,尤其涉及智能语音识别、智能情绪识别领域,具体涉及一种语音情绪识别模型训练方法、情绪识别方法、装置和设备。

相关背景技术

[0002] 语音是人类交流中情感的重要载体。语音识别主要关注说话者说了什么。情绪识别主要关注说话者是在什么情绪下说的。人们在不同情绪状态下的语言表达方式会有所不同,例如高兴时说话的语调会比较欢快,而烦躁伤心时语气比较沉闷。
[0003] 深度学习技术加速了从语音中检测情绪的进展,但是这方面的研究仍存在不足。语音情绪检测的困难在于,一句话表达的情感是什么可能是因人而异的。不同人对于同一段语音,理解出的情感不尽相同,而且存在一定的文化差异,因此语音情绪识别的准确率不高。

具体实施方式

[0047] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0048] 图1是根据本公开一实施例的语音情绪识别模型训练方法的流程示意图,该方法包括:
[0049] S101、获取样本音频的第一特征和第二特征,其中,该第一特征用于表征与该样本音频的波形有关的特征,该第二特征用于表征与该样本音频的说话者有关的特征;
[0050] S102、利用该第一特征和该第二特征进行情绪特征解耦;
[0051] S103、利用解耦得到的情绪特征进行情绪识别训练,得到训练后的语音情绪识别模型。
[0052] 在本公开实施例中,音频中可能反映说话者的情绪包括多种。例如生气、开心、中立、伤心、激动、恐惧等。情绪也可能被称为情感、感情等。说话者一般是人,也可能包括其他类型的说话者例如AI机器人等。音频中可以包括多种类型的特征。本公开实施例中,第一特征可以表征与音频本身的波形有关的特征,也可以称为波形特征或声波特征等。第二特征可以表征与音频中说话者有关的特征,也可以称为说话者特征、说话者声谱特征等。本公开实施例中可以对样本音频的第一特征和第二特征进行情绪特征解耦,解耦得到的情绪特征更加纯净。采用解耦得到的情绪特征进行情绪识别训练,训练后的语音情绪识别模型能够更加准确的进行情绪识别。采用解耦得到的情绪特征进行情绪识别训练,可以将情绪特征、说话人特征、内容特征解耦,得到更加纯净的情绪特征,然后采用训练后的语音情绪识别模型进行识别分类,并结合文本识别结果得到音频的情绪种类,使得判定结果更加准确。
[0053] 本申请实施例的语音情绪识别模型训练方法,可以由单机、多机或集群系统中的终端、服务器或其它处理设备执行。其中,终端可以包括但不限于用户设备、移动设备、个人数字处理、手持设备、计算设备、车载设备、可穿戴设备等。服务器可以包括但不限于应用服务器、数据服务器、云端服务器等。
[0054] 图2是根据本公开另一实施例的语音情绪识别模型训练方法的流程示意图,该实施例的方法包括上述语音情绪识别模型训练方法实施例的一个或多个特征。在一种可能的实施方式中,该方法的S101中包括:获取样本音频的第一特征。在本公开实施例中,音频中可以具有多种表现音频波形的属性,包括但不限于音调、音量、语速、重音等。例如,从音频中可以提取多维向量,该向量中的特征值可以表示音频的第一特征。向量的维度不做限制,可以根据实际场景进行选择,例如可以为512维、1024维或者其他数值。
[0055] 在一种可能的实施方式中,获取样本音频的第一特征包括:
[0056] S201、利用波形到向量(Wav2vec)模型从该样本音频中提取该第一特征。例如,Wav2vec模型可以是预训练模型。Wav2vec模型可以包括多层变换器层(Transformer Layer),变换器层的具体层数可以根据需求进行设置。采用大量无标注的音频数据,对Wav2vec模型进行无监督的训练,待迭代多轮收敛后,可以得到分层特征提取器。各个层的特征可以从不同角度,深度刻画音频的不同属性。利用Wav2vec模型可以将音频的波形的尽量多的特征提取出来,为训练提供丰富的数据基础。
[0057] 在一种可能的实施方式中,S201利用Wav2vec模型从该样本音频中提取该第一特征,包括:对该样本音频进行分帧,得到多个第一音频帧;从该多个第一音频帧中提取至少一个音频片段输入该Wav2vec模型,得到该第一特征,该第一特征包括该音频片段的Wav2vec特征。其中,该音频片段可以包括第一数量个第一音频帧。
[0058] 例如,对样本音频进行分帧,得到多个第一音频帧后,可以每次从这些第一音频帧中提取一个音频分段,该音频分段中可以包括多个第一音频帧。例如,如果整个音频划分得到960个第一音频帧,如果每个音频分段包括96个第一音频帧,可以得到10个音频分段。如果每个音频分段包括48个第一音频帧,可以得到20个音频分段。每次训练可以将一个音频分段输入待训练的模型,多次迭代得到训练后的模型。例如,第一次输入第一个音频分段,第二次输入第二个音频分段,直到将所有音频分段输入完毕或者模型的收敛结果符合要求为止。
[0059] 此外,样本音频也可以包括多个,对于每个样本音频,可以重复执行分帧、提取音频片段以及迭代训练的过程。
[0060] 在本公开实施例中,通过音频分段进行训练可以控制每次训练的数据量,达到快速收敛的目的,并且有利于更加充分的利用样本。
[0061] 在一种可能的实施方式中,该方法的S101中包括:获取样本音频的第二特征。在本公开实施例中,音频中可以表示说话者声音特点的属性,包括但不限于表现声带振动频率,口腔大小,嘴唇厚度,舌头位置,鼻咽腔粗细等特点。例如,从音频中可以提取多维向量,该向量中的特征值可以表示音频的第二特征。向量的维度不做限制,可以根据实际场景进行选择,例如可以为128维、256维或者其他数值。
[0062] 在一种可能的实施方式中,获取样本音频的第二特征包括:S202、利用说话者分类模型从该样本音频中提取该第二特征。例如,说话者分类模型可以称为说话者特征提取模型,该模型可以包括LSTM(Long‑Short Term Memory,长短时记忆)层、线性映射层(可以简称线性层)和全连接层等。该模型的输入可以包括每帧音频的特征,输出可以包括预测的各个说话者的概率。例如,输入的音频特征的类型可以包括但不限于MFCC(Mel‑Frequency Cepstral Coefficients,梅尔频率倒谱系数)、PLP(Perceptual linear predictive,感知线性预测)或Fbank(FilterBank,基于滤波器组的特征)等的至少一种。输出的特征可以包括说话人特征(speaker identity embedding)等。该说话者分类模型也可以是一种预训练模型。通过说话者分类模型,可以提取与说话者角色相关的特征,从而有利于区分不同说话者提供个性化的准确的情绪识别。
[0063] 在一种可能的实施方式中,S202利用说话者分类模型从该样本音频中提取该第二特征,包括:对该样本音频进行分帧,得到多个第二音频帧;将该多个第二音频帧输入该说话者分类模型,得到该第二特征。
[0064] 例如,第二特征可以包括多维向量。该向量可以表征该说话者的特点。例如,该向量的一部分维度可以表示声带振动频率,一部分维度可以表示口腔大小,一部分维度可以表示嘴唇厚度,一部分维度可以表示舌头位置,一部分维度可以表示鼻咽腔粗细。第二特征还可以称为说话者声谱特征。说话者分类模型可以分别计算每一帧对应的说话者的概率,然后对第二特征进行多帧累加再平均等方式处理后得到该第二特征。例如每50帧计算一次向量的平均值。其中,计算每一帧对应的说话者的概率时,也可以带有一定数量的上下文。例如计算第1帧时输入第1帧和第2帧。再如,计算第2帧时输入第1帧、第2帧和第3帧。再如,计算第3帧时输入第3帧、第4帧和第5帧。具体使用的上下文数量和方式,可以根据实际应用进行设置,本公开实施例不做限定。
[0065] 在本公开实施例中,通过音频中的多个音频帧对说话者分类模型进行训练,可以得到输出更加准确的说话者特征的模型。
[0066] 在本公开实施例中,获取样本音频的第一特征和样本音频的第二特征可以是分开执行的,本实施例不限定二者的执行时序,可以具有先后顺序,也可以并行。
[0067] 图3是根据本公开另一实施例的语音情绪识别模型训练方法的流程示意图,该实施例的方法包括上述语音情绪识别模型训练方法实施例的一个或多个特征。在一种可能的实施方式中,S102利用该第一特征和该第二特征进行情绪特征解耦,还包括:
[0068] S301、将该第一特征和该第二特征输入编码器进行编码处理,以实现情绪特征解耦。通过编码器能够基于该第一特征和该第二特征提取情绪特征,从而更加准确地进行情绪识别的训练。
[0069] 在一种可能的实施方式中,该编码器包括权重平均层、第一连接层、第一卷积正则化层、BLSTM(双向(Bi‑directional)LSTM)层和降采样层,将该第一特征和该第二特征输入编码器进行编码处理,包括:将该第一特征输入该权重平均层;将该第二特征输入该第一连接层;在该第一连接层将该权重平均层的输出特征和该第二特征拼接,得到第一拼接特征;将该第一拼接特征输入串联的该第一卷积正则化层、该BLSTM层和该降采样层依次进行处理,得到该编码器的输出特征,该编码器的输出特征包括情绪特征。具体地,可以将该第一拼接特征输入该第一卷积正则化层进行处理,将该第一卷积正则化层的输出特征输入该BLSTM层进行处理,将该BLSTM层的输出特征输入该降采样层进行处理,得到该编码器的输出特征。
[0070] 例如,该编码器的输入可以包括一个音频片段(假设包括H帧)通过Wav2vec模型提取到的特征,输出可以包括情绪特征。然后将音频片段中每一帧的特征维度通过可学习的系数进行向量加权,例如对每一帧在Wav2vec模型的多层(例如25层)变换器的向量进行加权平均。每个向量的系数可以代表每个特征的重要程度,可以预先设置系数的初始值,训练过程中可以更新系数的值。得到每一帧的加权平均结构结果后,可以在第一连接层与第二特征进行拼接,然后输入到卷积正则化层,接着再输入到BLSTM层,得到H个2*d维的向量。然后对该向量进行降采样。
[0071] 在本公开实施例中,通过编码器的权重平均层对第一特征进行权重平均后,在第一连接层与第二特征进行拼接,再通过第一卷积正则化层、BLSTM层和降采样进行处理,可以对输入的特征进行解耦,省去说话人特征和文本内容特征,分解出情绪特征,从而更加准确地进行情绪识别的训练。
[0072] 图4是根据本公开另一实施例的语音情绪识别模型训练方法的流程示意图,该实施例的方法包括上述语音情绪识别模型训练方法实施例的一个或多个特征。
[0073] 在一种可能的实施方式中,该方法还包括:
[0074] S401、利用音素对齐模型从该样本音频中提取音素特征。
[0075] 在本公开实施例中,音素对齐模型从音频片段中提取音素特征。该音频片段可以与上述的Wav2vec模型使用的音频片段类似。例如,将一个包括第一数量个第一音频帧的音频片段,既输入Wav2vec模型提取第一特征,又输入音素对齐模型提取音素特征。音素对齐模型也可以称为音素编码器。音素对齐模型可以为一种预训练模型。音素对齐模型可以采用例如GMM(Gaussian Mixed Model,高斯混合模型)‑HMM(Hidden Markov Model,隐马尔可夫模型)、DNN(Deep Neural Networks,深度神经网络)‑HMM、LSTM‑CTC(Connectionist Temporal Classification,连接时序分类)、RNN‑T(基于循环神经网络(Recurrent Neural Network的)的变换器(Transformer))等网络结构。通过音素对齐模型能够提取样本音频的音素特征,有利于后续利用音素特征与第二特征等重建音频,进而提高解耦效果。
[0076] 在本公开实施例中,从样本音频中提取音素特征、第一特征、第二特征的执行时序不做限制,可以具有先后顺序,也可以并行。
[0077] 在一种可能的实施方式中,S102利用该第一特征和该第二特征进行情绪特征解耦,还包括:
[0078] S402、将该编码器的输出特征、该第二特征和该音素特征,输入解码器进行解码处理;
[0079] S403、利用该解码器的输出特征,更新该编码器、该解码器和该音素对齐模型的至少之一的参数。
[0080] 在本公开实施例中,通过解码器对编码器的输出特征、第二特征和音素特征进行处理,能够重建音频并利用重建的音频与原本的样本音频的差异,更新该编码器的参数。进一步地,也可以更新解码器和/或音素对齐模型的参数。这样,能够利用解码器和音素对齐模型更新模型参数,进一步提高编码器输出的情绪特征的纯净度。
[0081] 在一种可能的实施方式中,该解码器包括升采样层、第二连接层、LSTM层、第一线性层和第二卷积正则化层,S401将该编码器的输出特征、该第二特征和音素特征,输入解码器进行解码处理,包括:
[0082] 将该编码器的输出特征输入该升采样层进行升采样;
[0083] 将该第二特征和该音素特征输入该第二连接层;
[0084] 在该第二连接层将升采样得到的特征、该第二特征和该音素特征进行拼接,得到第二拼接特征;
[0085] 将该第二拼接特征输入串联的该LSTM层、该第一线性层依次进行处理,得到第一梅尔谱特征和第一误差;具体地,可以将第二拼接特征输入该LSTM层进行处理,将该LSTM层的输出特征输入第一线性层进行处理,得到第一梅尔谱特征和第一误差;
[0086] 将该第一梅尔谱特征输入该第二卷积正则化层进行卷积正则化处理,得到第二梅尔谱特征和第二误差。
[0087] 例如,解码器的输入可以包括编码器的输出特征,重复执行多次升采样,恢复向量的维度,例如升采样得到H个2*d维的向量。然后,将升采样得到的特征与第二特征、音素对齐模型的输出特征拼接后再输入到后续编码器的网络模块。例如,在编码器的线性层得到H个M维的特征F1,特征F1可以表示音频片段(包括第一数量的第一音频帧)的声谱例如梅尔谱。然后再计算特征F1与真实的梅尔谱的第一误差例如最小均方误差Lr1。并将特征F1输入后续的卷积层得到新的梅尔谱,计算特征F1和真实的梅尔谱的第二误差例如最小均方误差Lr2。
[0088] 在本公开实施例中,能够利用解码器的升采样层恢复编码向量输出特征的向量维度,并在连接层与音素特征、第二特征拼接,进而通过编码器后续的网络模块重建音频片段的梅尔谱,从而根据重建的梅尔谱与样本音频的真实梅尔谱之间的误差更新模型参数,进一步提高编码器输出的情绪特征的纯净度。
[0089] 在一种可能的实施方式中,S402利用该解码器的输出特征,更新该编码器、该解码器和该音素对齐模型的至少之一的参数,包括:
[0090] 利用该第一误差和该第二误差按照随机梯度下降准则,更新该编码器、该解码器和该音素对齐模型的至少之一的参数。在本公开实施例中,基于随机梯度下降准则可以利用每个训练样本即样本音频进行模型参数更新,每次执行随机梯度下降进行一次模型参数的更新,执行速度更快,能够快速准确的实现模型收敛。本公开实施例中,编码器、解码器和音素对齐模型的参数更新可以通过多次迭代实现,本公开实施例不限定具体的迭代次数,达到训练目标后,可以停止训练。
[0091] 图5是根据本公开另一实施例的语音情绪识别模型训练方法的流程示意图,该实施例的方法包括上述语音情绪识别模型训练方法实施例的一个或多个特征。在一种可能的实施方式中,S103利用解耦得到的情绪特征进行情绪识别训练,还包括:
[0092] S501、将该编码器的输出特征,输入情绪识别分类器进行情绪类别识别,并利用情绪类别识别结果更新该编码器和该情绪识别分类器的参数。
[0093] 在本公开实施例中,S501可以在S301之后。情绪识别分类器也可以称为情绪识别分类模型、情绪识别分类网络等。编码器的输出特征可以包括解耦得到的情绪特征。将编码器的输出特征输入情绪识别分类器后,可以通过激活函数例如softmax得情绪的分类结果。利用更纯净的情绪特征的情绪类别识别结果,更新编码器和情绪识别分类器的参数,可以提高语音情绪识别结果的准确性。
[0094] 在一种可能的实施方式中,该情绪识别分类器包括第二线性层、丢弃层和第三线性层,S501将该编码器的输出特征,输入情绪识别分类器进行情绪类别识别,并利用情绪类别识别结果更新该编码器和该情绪识别分类器的参数,包括:
[0095] 将该编码器的输出特征输入串联的该第二线性层、该丢弃层和该第三线性层依次进行处理,得到情绪识别结果;具体地,可以将该编码器的输出特征输入该第二线性层进行处理,将该第二线性层的输出特征输入该丢弃层进行处理,将该丢弃层的输出特征输入该第三线性层进行处理,得到情绪识别结果;
[0096] 利用该情绪识别结果的交叉熵计算损失;
[0097] 利用该损失更新该编码器和/或该情绪识别分类器的参数。
[0098] 在本公开实施例中,情绪的分类结果可以包括每种情绪对应的概率。假设该音频共有N个片段,可以将N个片段的概率进行平均,得到整个音频的情绪分类结果。并且,可以利用交叉熵构建损失函数,利用损失函数调整分类器的参数,使得目标情绪的概率增大,其他情绪的概率减小。
[0099] 在本公开实施例中,情绪识别分类器的训练可以通过多次迭代实现,本公开实施例不限定具体的迭代次数,达到训练目标后,可以停止训练。利用情绪识别分类器对更纯净的情绪特征进行情绪类别识别,并利用交叉熵更新编码器和情绪识别分类器的参数,可以得到识别结果更加准确的语音情绪识别模型。
[0100] 图6是根据本公开一实施例的情绪识别方法的流程示意图,该方法包括:
[0101] S601、获取待识别音频的第一特征和第二特征,其中,该第一特征用于表征与该待识别音频的波形有关的特征,该第二特征用于表征与该待识别音频的说话者有关的特征;
[0102] S602、将该第一特征和该第二特征输入语音情绪识别模型进行情绪类别识别,得到第一识别结果;
[0103] 其中,该语音情绪识别模型为采用语音情绪识别模型训练方法训练得到的语音情绪识别模型。
[0104] 例如,待识别音频可以包括测试音频。从待识别音频提取与波形有关的第一特征,以及与说话者有关的第二特征。将该第一特征和第二特征输入语音情绪识别模型,可以利用语音情绪识别模型的编码器得到解耦的情绪特征,并利用分类器对情绪特征进行分类,能够得到准确的情绪类别识别结果。
[0105] 在本公开实施例中,获取待识别音频的第一特征和获取待识别音频的第二特征可以是分开执行的,本实施例不限定二者的执行时序,可以具有先后顺序,也可以并行。
[0106] 图7是根据本公开另一实施例的情绪识别方法的流程示意图,该实施例的方法包括上述情绪识别方法实施例的一个或多个特征。在一种可能的实施方式中,在一种可能的实施方式中,S601中,获取待识别音频的第一特征包括:利用Wav2vec模型从该待识别音频中提取该第一特征。该Wav2vec模型的具体结构和功能可以参见上述训练方法实施例中的Wav2vec模型的相关描述。利用Wav2vec模型可以将音频的波形的尽量多的特征提取出来,为情绪识别提供丰富的数据基础。
[0107] 在一种可能的实施方式中,利用Wav2vec模型从该待识别音频中提取该第一特征,包括:对该待识别音频进行分帧,得到多个第一音频帧;从该多个第一音频帧中提取至少一个音频片段输入该Wav2vec模型,得到该第一特征,该第一特征包括该音频片段的Wav2vec特征。其中,该音频片段可以包括第一数量个第一音频帧。例如,对待识别音频进行分帧,得到多个第一音频帧后,可以每次从这些第一音频帧中提取一个音频分段,该音频分段中可以包括多个第一音频帧。每次将一个音频分段输入Wav2vec模型,得到该片段的Wav2vec特征。然将Wav2vec特征输入模型的编码器,结合说话者特征进行识别,得到语音情绪识别结果。再将该音频的多个片段的识别结果进行平均,可以得到整个音频的情绪识别结果。情绪识别结果也可以称为情绪分类结果。利用多个音频片段进行情绪识别,能够结合每个片段的识别结果得到更加准确的识别结果。
[0108] 在一种可能的实施方式中,S601中,获取待识别音频的第二特征包括:利用说话者分类模型从该待识别音频中提取该第二特征。该说话者分类模型的具体结构和功能可以参见上述训练方法实施例中的说话者分类模型的相关描述。利用说话者分类模型提取的特征与Wav2vec特征能够实现情绪特征解耦,提高情绪特征的纯净度,从而得到更加准确的情绪识别结果。
[0109] 在一种可能的实施方式中,利用说话者分类模型从该待识别音频中提取该第二特征,包括:对该待识别音频进行分帧,得到多个第二音频帧;将该多个第二音频帧输入该说话者分类模型,得到该第二特征。例如,第二特征可以包括多维向量。该向量可以表征该说话者的特点。说话者分类模型可以分别计算每一帧对应的说话者的概率,然后进行多帧累加再平均后得到该第二特征。计算每一帧对应的说话者的概率时,也可以带有一定数量的上下文。
[0110] 在本公开实施例中,通过对音频中的多个音频帧进行说话者特征分类,可以得到更加准确的说话者特征。
[0111] 在一种可能的实施方式中,该方法还包括:
[0112] S701、利用文本情绪识别模型对待识别音频对应的文本内容进行文本识别,得到第二识别结果;
[0113] S702、对该第一识别结果和第二识别结果进行加权处理,得到第三识别结果。
[0114] 在本公开实施例中,文本情绪识别模型也可以称为文本情绪分类模型、文本情绪分类器等。该文本情绪识别模型可以包括:CNN(Convolutional Neural Networks,卷积神经网络)层、平均池化层(Mean Pooling)、展平层(Flatten)和线性层等。该文本情绪分类模型的输入可以包括待识别音频的文本内容中各个词语对应的特征向量。该特征向量可以通过Transformer网络预训练得到。损失函数可以采用交叉熵计算,并且可以是基于整个文本内容的训练。将语音情绪识别结果与文本情绪识别结果结合,能够得到更加准确的情绪识别结果。
[0115] 本申请实施例的情绪识别方法,本申请实施例的语音情绪识别模型训练方法,可以由单机、多机或集群系统中的终端、服务器或其它处理设备执行。其中,终端可以包括但不限于用户设备、移动设备、个人数字处理、手持设备、计算设备、车载设备、可穿戴设备等。服务器可以包括但不限于应用服务器、数据服务器、云端服务器等。执行语音情绪识别模型训练方法和情绪识别方法的设备可以是相同的设备,也可以是不同的设备,具体可以根据实际应用场景的需求进行选择。
[0116] 图8是根据本公开一实施例的语音情绪识别模型训练装置的结构示意图,该装置包括:
[0117] 获取模块801,用于获取样本音频的第一特征和第二特征,其中,该第一特征用于表征与该样本音频的波形有关的特征,该第二特征用于表征与该样本音频的说话者有关的特征;
[0118] 解耦模块802,用于利用该第一特征和该第二特征进行情绪特征解耦;
[0119] 训练模块803,用于利用解耦得到的情绪特征进行情绪识别训练,得到训练后的语音情绪识别模型。
[0120] 图9是根据本公开另一实施例的语音情绪识别模型训练装置的结构示意图,该实施例的装置包括上述语音情绪识别模型训练装置实施例的一个或多个特征。在一种可能的实施方式中,该获取模块801用于利用波形到向量Wav2vec模型从该样本音频中提取该第一特征。
[0121] 在一种可能的实施方式中,该获取模块801包括:
[0122] 第一分帧子模块9011,用于对该样本音频进行分帧,得到多个第一音频帧;
[0123] 第一特征提取子模块9012,用于从该多个第一音频帧中提取至少一个音频片段输入该Wav2vec模型得到该第一特征,该第一特征包括该音频片段的Wav2vec特征。其中,该音频片段可以包括第一数量个第一音频帧。
[0124] 在一种可能的实施方式中,该获取模块801用于利用说话者分类模型从该样本音频中提取该第二特征。
[0125] 在一种可能的实施方式中,该获取模块801包括:
[0126] 第二分帧子模块9021,用于对该样本音频进行分帧,得到多个第二音频帧;
[0127] 第二特征提取子模块9022,用于将该多个第二音频帧输入该说话者分类模型,得到该第二特征。
[0128] 图10是根据本公开另一实施例的语音情绪识别模型训练装置的结构示意图,该实施例的装置包括上述语音情绪识别模型训练装置实施例的一个或多个特征。在一种可能的实施方式中,该解耦模块802,包括:
[0129] 编码子模块1001,用于将该第一特征和该第二特征,输入编码器进行编码处理,以实现情绪特征解耦。
[0130] 在一种可能的实施方式中,该编码器包括权重平均层、第一连接层、第一卷积正则化层、BLSTM层和降采样层,该编码子模块1001用于:
[0131] 将该第一特征输入该权重平均层;
[0132] 将该第二特征输入该第一连接层;
[0133] 在该第一连接层将该权重平均层的输出特征和该第二特征拼接,得到第一拼接特征;
[0134] 将该第一拼接特征输入串联的该第一卷积正则化层、该BLSTM层和该降采样层依次进行处理,得到该编码器的输出特征,该编码器的输出特征包括情绪特征。具体地,可以将该第一拼接特征输入该第一卷积正则化层进行处理,将该第一卷积正则化层的输出特征输入该BLSTM层进行处理,将该BLSTM层的输出特征输入该降采样层进行处理,得到该编码器的输出特征。
[0135] 图11是根据本公开另一实施例的语音情绪识别模型训练装置的结构示意图,该实施例的装置包括上述语音情绪识别模型训练装置实施例的一个或多个特征。
[0136] 在一种可能的实施方式中,该装置还包括:
[0137] 音素特征提取模块804,用于利用音素对齐模型从该样本音频中提取音素特征。
[0138] 在一种可能的实施方式中,该解耦模块802包括:
[0139] 解码子模块1101,用于将该编码器的输出特征、该第二特征和该音素特征,输入解码器进行解码处理;
[0140] 更新子模块1102,用于利用该解码器的输出特征,更新该编码器、该解码器和该音素对齐模型的至少之一的参数。
[0141] 在一种可能的实施方式中,该解码器包括升采样层、第二连接层、LSTM层、第一线性层和第二卷积正则化层,该解码子模块1101用于:
[0142] 将该编码器的输出特征输入该解码器的升采样层进行升采样;
[0143] 将该第二特征和该音素特征输入该第二连接层;
[0144] 在该第二连接层将升采样得到的特征、该第二特征和该音素特征进行拼接,得到第二拼接特征;
[0145] 将该第二拼接特征输入串联的该LSTM层、该第一线性层依次进行处理,得到第一梅尔谱特征和第一误差;具体地,可以将第二拼接特征输入该LSTM层进行处理,将该LSTM层的输出特征输入第一线性层进行处理,得到第一梅尔谱特征和第一误差;
[0146] 将该第一梅尔谱特征输入该第二卷积正则化层进行卷积正则化处理,得到第二梅尔谱特征和第二误差。
[0147] 在一种可能的实施方式中,该更新子模块1102用于:
[0148] 利用该第一误差和该第二误差按照随机梯度下降准则,更新该编码器、该解码器和该音素对齐模型的至少之一的参数。
[0149] 在一种可能的实施方式中,该训练模块803用于:将该编码器的输出特征,输入情绪识别分类器进行情绪类别识别,并利用情绪类别识别结果更新该编码器和该情绪识别分类器的参数。
[0150] 在一种可能的实施方式中,该情绪识别分类器包括第二线性层、丢弃层和第三线性层,将该编码器的输出特征,输入情绪识别分类器进行情绪类别识别,该训练模块803包括:
[0151] 情绪识别子模块1103,用于将该编码器的输出特征输入串联的该第二线性层、该丢弃层和该第三线性层依次进行处理,得到情绪识别结果;具体地,可以将该编码器的输出特征输入该第二线性层进行处理,将该第二线性层的输出特征输入该丢弃层进行处理,将该丢弃层的输出特征输入该第三线性层进行处理,得到情绪识别结果;
[0152] 损失计算子模块1104,用于利用该情绪识别结果的交叉熵计算损失;
[0153] 参数更新子模块1105,用于利用该损失更新该编码器和/或该情绪识别分类器的参数。
[0154] 本公开实施例的语音情绪识别模型训练装置的各模块、子模块的具体功能和示例的描述,可以参见上述语音情绪识别模型训练方法实施例中对应步骤的相关描述,在此不再赘述。
[0155] 图12是根据本公开一实施例的情绪识别装置的结构示意图,该装置包括:
[0156] 获取模块1201,用于获取待识别音频的第一特征和第二特征,其中,该第一特征用于表征与该待识别音频的波形有关的特征,该第二特征用于表征与该待识别音频的说话者有关的特征;
[0157] 第一识别模块1202,用于将该第一特征和该第二特征输入语音情绪识别模型进行情绪类别识别,得到第一识别结果;
[0158] 其中,该语音情绪识别模型为采用语音情绪识别模型训练装置训练得到的语音情绪识别模型。
[0159] 图13是根据本公开另一实施例的情绪识别装置的结构示意图,该实施例的装置包括上述情绪识别装置实施例的一个或多个特征。在一种可能的实施方式中,该获取模块1201用于利用波形到向量Wav2vec模型从该待识别音频中提取该第一特征。
[0160] 在一种可能的实施方式中,该获取模块1201包括:
[0161] 第一分帧子模块1301,用于对该待识别音频进行分帧,得到多个第一音频帧;
[0162] 第一提取子模块1302,用于从该多个第一音频帧中提取至少一个音频片段输入该Wav2vec模型得到该第一特征,该第一特征包括该音频片段的Wav2vec特征。其中,该音频片段可以包括第一数量个第一音频帧。
[0163] 在一种可能的实施方式中,该获取模块1201用于利用说话者分类模型从该待识别音频中提取该第二特征。
[0164] 在一种可能的实施方式中,该获取模块1201包括:
[0165] 第二分帧子模块1303,用于对该待识别音频进行分帧,得到多个第二音频帧;
[0166] 第二提取子模块1304,用于将该多个第二音频帧输入该说话者分类模型,得到该第二特征。
[0167] 在一种可能的实施方式中,该装置还包括:
[0168] 第二识别模块1203,用于利用文本情绪识别模型对待识别音频对应的文本内容进行文本识别,得到第二识别结果;
[0169] 处理模块1204,用于对该第一识别结果和第二识别结果进行加权处理,得到第三识别结果。
[0170] 本公开实施例的情绪识别装置的各模块、子模块的具体功能和示例的描述,可以参见上述情绪识别方法实施例中对应步骤的相关描述,在此不再赘述。
[0171] 在一些应用场景中,如图14所示,一种语音情绪识别流程的示例包括:对语音数据进行前端特征的提取。例如提取MFCC、PLP、Fbank、FFT(fast Fourier transform,快速傅立叶变换)等。接着,利用语音识别模型例如GMM、DNN、CNN、ResNet(Residual Neural Network,残差神经网络)、SincNet(优化的卷积神经网络)从前端特征中提取情绪特征等。然后,将情绪特征输入后端分类器例如COS(余弦)分类器、SVM(Support Vector Machines,支持向量机)分类器、LDA(Linear Discriminant Analysis,线性判别式分析)分类器中得到识别结果。一般通过优化前端特征提取、优化情绪特征模型、增加更多的训练数据等方式来提高识别结果的准确性。
[0172] 其中,优化前端特征提取:可以尝试不同的特征组合,比如MFCC与PLP,或不同的维度比如从40到80等。优化情绪特征模型:例如采用传统的HMM、SVM模型进行分类,或者采用深度学习的模型如DNN、CNN、LSTM等进行分类识别。此外,增加更多的训练数据,可以提升覆盖度。
[0173] 通常情况下,语音情绪从音频的角度看,一般从音调、音量、语速、重音等多个维度上体现,与说话人、内容并没有直接的关系。例如,不管张三还是李四生气的时候可能会说任意话。
[0174] 本公开实施例从解耦的角度出发,将音频的特征划分成情绪特征、说话人特征和内容特征等,有助于情绪特征的准确提取。
[0175] 另外,从音频的文本内容角度出发,可能体现一定的情绪,比如“我太喜欢这个羽绒服了,摸起来很舒服”,从文字上看说话者是开心的状态。本公开实施例可以实现多维度的结合,利用文字来辅助情绪的识别。
[0176] 本公开实施例提供了一种解耦学习(Disentanglement Representation Learning)多模态(音频和文本)的情绪识别方法和系统,能够识别情绪类型可以包括但不限于生气、开心、中立、伤心等。参见图15,该系统主要包括:1)音频特征解耦模块;2)音频情绪分类模块(Classifier);3)文本情绪分类模块。其中,音频特征解耦模块可以包括编码器(Encoder)、解码器(Decoder)和音素编码器(Phone Encoder)等,通过对情绪特征、说话人特征和内容特征进行拆解并合成重建原音频的方式对特征进行建模。这样可以将三个特征剥离的更加彻底,得到纯净的情绪特征。然后进行识别分类,并结合文本的信息辅助,共同判定音频的情绪种类。下面参见图15详细介绍语音情绪识别模型(SER model)各个模块的功能:
[0177] 1:音频特征解耦模块
[0178] a:Wav2vec特征提取模块
[0179] 例如,可以通过预训练模型得到Wav2vec特征。预训练模型可以包括多层变换器层(Transformer Layer)。例如,{Transformer Layer*25}表示一个包括25层变换器层的预训练模型。变换器层的具体层数可以根据需求进行设置。采用大量的音频数据,如LibriVox(开放的语音数据集),约6万小时无标注,对模型进行无监督的训练,待迭代多轮收敛后,将得到一个分层特征提取器。对于每帧音频(每帧时长40ms,帧移20ms),可以将得到25*1024维向量(一共25层,每层输出1024维)。各个层的特征可以从不同角度,深度刻画音频的不同属性。预训练模型可以包括各种维度的特征,尽量将该音频的波形的全部特征提取出来。如果一次提取96帧,则Wav2vec特征维度可以表示为[25,1024,96]。上述1024维、96帧等仅是示例而非限制,也可以为其他的数量。
[0180] b:说话人特征提取(Speaker Identity)模块
[0181] 例如,说话人特征提取模型可以包括多层LSTM层、线性(Linear)映射层和全连接(full connection,FC)层等。说话人特征提取模型的输出包括预测的各个说话人的概率,输入可以包括每帧音频的特征。输入的音频特征的类型可以包括但不限于MFCC(Mel‑Frequency Cepstral Coefficients,梅尔频率倒谱系数)、PLP(Perceptual linear predictive,感知线性预测)或Fbank(FilterBank,基于滤波器组的特征)等的至少一种。例如,音频特征的维度可以取20,每帧时长25ms,帧移10ms。计算时可以带有一定数量的上下文,例如带有上下2帧(上一帧和下一帧)。具体例如,在计算第3帧时可以输入第2帧、第3帧和第4帧,计算结果可以包括预测是第3帧是某个人的语音的概率。训练的损失函数可以是CE(cross entropy,交叉熵)。例如,可以利用损失函数实现期望目标:期望该音频是李四的概率最大,是张三、王五的概率小。
[0182] 在线性(Linear)层抽取说话人声谱特征x作为该输入音频的说话人特征。例如,说话人特征可以包括d向量(d‑vector)或x向量(x‑vector)。上述向量可以表征该说话人的特点,例如声带振动频率、口腔大小、嘴唇厚度、舌头位置和鼻咽腔粗细等等。向量的维度可以取128或其他。例如,向量的一部分维度可以表示声带振动频率,一部分维度可以表示口腔大小,一部分维度可以表示嘴唇厚度,一部分维度可以表示舌头位置,一部分维度可以表示鼻咽腔粗细。说话人声谱特征x可以由多帧累加再经过平均等方式处理后得到。例如每50帧计算一次向量的平均值。例如,采用d‑vector可以将语音截成多个片段,然后取每个片段通过模型处理后的特征的平均值。采用x‑vector可以语音截成多个片段,将每个语音片段通过模型处理后的特征用一种方式聚合起来。
[0183] 该说话人特征提取模块可以是预训练得到,例如采用开源数据VoxCeleb1、VoxCeleb2、Librispeech等提前训练得到一稳定的模型。在后续的系统上作为说话人特征(speaker identity embedding)提取模块,可以不做说话人特征提取模块的模型参数的更新。
[0184] 在系统提取该说话人特征时,可以选择该说话人的多条例如10条以上的音频,将每条音频提取到的向量(vector)平均后,作为该说话人的最终特征,即speaker identity embedding(说话人特征)。
[0185] c:编码器
[0186] 编码器可以包括权重平均层、连接层、卷积正则化层、BLSTM层和降采样层。例如,一种示例性的编码器的结构为{weighted  average+Concat+{Conv1D+BatchNormalization}*3+BLSTM*2+Downsampler},表示该编码器包括权重平均层(weighted average)、连接层(Concat)、3层卷积正则化层(Conv1D+BatchNormalization)、
2层BLSTM层和降采样层(Downsampler)。
[0187] 例如该编码器的输入可以包括96帧(总长约2s的音频片段)通过Wav2vec模型提取到的特征。每帧特征维度可以包括25*1024,先通过可学习的系数向量进行加权,可以参见如下公式:
[0188]
[0189] 其中,havg是25个向量的加权平均结果。其中,α是每个向量的系数,代表每个特征的重要程度,可以预先设置系数的初始值例如0.1、0.3等,训练过程中可以更新系数的值。例如,初始化有25个系数,hi是每个向量,i是第i帧。得到havg后,与说话人特征向量(speaker identity embedding,256维)拼接后,在输入到卷积正则化层,接着再输入到BLSTM层,得到96个2*d维的向量(称为bottleneck(瓶颈)特征)。然后对该bottleneck进行降采样,得到96/f个2*d维的向量,d取128,相应的f取2,或d取8,f取48,即维度如果小的话,那么降采样的粒度就大。通过降采样可以对输入的特征进行解耦,省去说话人特征和文本内容特征,分解出情绪特征。结合后续的解码器和音素编码器进行训练,可以得到解耦后的更加纯净的情绪特征。
[0190] d:解码器
[0191] 解码器可以包括升采样层、连接层、LSTM层、线性层和卷积正则化层,等。例如,一种示例性的解码器的结构包括{Upsampler average+Concat+LSTM+Liner+{Conv1D+BatchNormalization}*5},表示该解码器包括升采样层(Upsampler average)、连接层(Concat)、LSTM层、线性层(Liner)和5层卷积正则化层(Conv1D+BatchNormalization)。该解码器的输入可以包括编码器的输出(96/f个2*d维的向量),通过升采样即重复f次,得到96个2*d维的向量。然后,将升采样得到的特征与说话人特征向量、音素编码器的输出拼接后再输入到后续网络模块,在线性层得到96个80维的特征F1,即该小片段(约2s)的梅尔谱。
再计算特征F1与真实的梅尔谱的最小均方误差Lr1。并将特征F1输入后续的卷积层得到新的梅尔谱,并且计算特征F1和真实的梅尔谱的误差Lr2。Lr1和Lr2的可以参见如下公式计算:
[0192]
[0193] 其中,Lr表示计算值和真实值的误差。x和y一个表示计算值,一个表示真实值。M表示特征的维度(点)数,k表示第k维。
[0194] e:音素编码器
[0195] 通过开源的音素对齐模型,例如GMM‑HMM、DNN‑HMM、LSTM‑CTC、RNN‑T等可以获得音频的音素内容,然后再将各个音素映射到相应的向量。
[0196] 例如,参见上述编码其中的分帧方式和提取音频片段的方式,对96帧数据(即一个音频片段)通过音素对齐模型,得到每帧的音素。然后映射到128维向量,再输入到音素编码器,得到96个256维的向量。
[0197] 音素编码器可以包括卷积正则化层、BLSTM层等。一种示例性的音素编码器的结构包括{{Conv1D+BatchNormalization}*3+BLSTM*2}中,表示该音素编码器包括3层卷积正则化层和2层BLSTM层。音素编码器可以从音素序列(PhoneSequence)中提取音素特征。
[0198] 2:音频情绪分类模块
[0199] 通过编码器的输出接入到情绪识别分类器(Classifier(C)),再通过激活函数(例如softmax)等得到最终情绪的分类结果例如语音情绪识别(SER)Emotion Classes Logits)。结合情绪分类标签(Emotion Class Lable)得到损失函数。损失函数可以采用交叉熵计算。例如,损失函数可以参见如下公式:
[0200]
[0201] 其中,zj表示每个节点的输出(每个情绪的概率),zc表示目标情绪(例如开心,4个zj中的一个),调整模型参数可以使得目标情绪的概率增大。j表示每种情绪的编号,例如:开心、难过、伤心、中立等。
[0202] 该分类器可以包括:线性层、丢弃层和线性层。一种示例性的分类器的结构包括{Linear*2+Dropout+Linear*4},表示该分类器包括2层线性层、丢弃层(Dropout)和4层线性层。
[0203] 3:文本情绪分类模块
[0204] a:该模块所用的文本情绪分类模型可以包括:CNN层、平均池化层(Mean Pooling)、展平层(Flatten)和线性层。文本情绪分类模型也可以称为文本情绪识别模型(TER model)。一种示例性的文本情绪分类模型的结构包括{CNN*3+Mean Pooling+Flatten+Linear},表示该文本情绪分类模型包括。该文本情绪分类模型输入的是各个词语对应的特征向量,维度为L。该特征向量可以通过Transformer网络预训练得到,输出即预测的情绪类别。损失函数可以采用交叉熵计算,并且可以是基于整个句子的训练,可以不用如音频情绪分类那样基于片段(96帧)训练。
[0205] b:该模块相当于将文本通过神经网络映射到高维空间,将文本代表的内容信息,与其上下文的关联信息,语义信息表征出来,并且综合这些信息再抽取出情绪信息。
[0206] 对语音情绪识别和文本情绪识别的结果可以进行分值融合(Score Fusion),得到该音频对应的多模态情绪分类概率(Multimodal Emotion Class Probabilities)。
[0207] 本公开实施例中各种模型的具体结构仅为示例,而非限制,在实际应用中可以根据具体需求灵活的修改模型的层数和层的类型等结构。
[0208] 该网络架构在实际应用中,可以包括以下几个过程,预训练;训练;测试。如图16所示,下面分别对各个过程进行介绍:
[0209] S1601:预训练
[0210] S1601a:预训练Wav2vec模型:通过预训练某个模型结构例如{Transformer Layer*25}得到。采用大量的音频数据,如LibriVox,约6万小时无标注,对模型进行无监督的训练,待迭代多轮收敛后,将得到一个分层特征提取器。该音频数据的类型和6万小时无标注仅为示例,而非限制,具体可以根据实际应用的需求灵活选择。
[0211] S1601b:预训练说话人特征提取器:采用开源数据例如VoxCeleb1、VoxCeleb2、Librispeech等,在某个模型结构例如{LSTM+Linear+FC}上训练说话人分类器,得到系统中的说话人特征(speaker identity embedding)的提取器。
[0212] S1601c:预训练音素对齐模型:采用开源数据Librispeech、Aishell等,在模型例如GMM‑HMM、DNN‑HMM、LSTM‑CTC、RNN‑T等上训练,可以得到识别音频的音素内容的模型。
[0213] S1602:训练
[0214] S1602a:采用开源数据例如IEMOCAP,每条音频带有情绪标注和对应内容标注,对每条音频进行分帧(例如帧长40ms,帧移20ms)。每次取96帧,提取Wav2vec特征w。并且,对整条音频提取说话人特征s,对96帧音频通过音素对齐模型提取相应音素特征p。其中,每次提取的96帧可以作为一次处理的音频片段。
[0215] S1602b:将Wav2vec特征w输入到编码器,并与特征s拼接。然后通过对拼接特征降采样得到情绪特征e。将特征e输入到情绪分类网络(例如上述的分类器),进行情绪类别的识别计算,通过交叉熵得到损失Le。并且,将特征e输入到解码器,与音素特征和说话人特征共同重建声谱(梅尔谱)特征,分别计算最小均方误差Lr1和Lr2。这样根据随机梯度下降准则反向传播梯度,更新网络参数。例如更新编码器、解码器和音素对齐模型的至少之一的参数。
[0216] S1602c:对每个片段重复上述训练步骤例如S1601和S1602,迭代多轮至收敛即可,这样就可以得到情绪、说话人、内容解耦的语音情绪分类模型。
[0217] S1602d:对每条音频的内容,输入到文本情绪分类器中,训练模型,计算交叉熵损失,然后反向更新网络,重复迭代多轮至收敛即可,这样得到文本的情绪分类模型。
[0218] S1603:测试
[0219] S1603a:对测试音频,提取说话人特征s。并且,可以对该测试音频进行分帧,每96帧提取Wav2vec特征。接着,结合说话人特征输入到编码器,音频情绪分类器,得到该片段的情绪识别结果(例如在四类情绪上的概率)R。假设该音频共有N个96帧,则将N个计算得到的R进行平均,可以得到整个音频的情绪分类结果ps。
[0220] S1603b:将该音频的文本内容输入到文本情绪分类器中得到相应的情绪识别结果pt。
[0221] S1603c:对语音和文本的情绪识别结果进行加权,得到最终的识别结果pf,参见如下公式:
[0222] pf=w1·ps+w2·pt
[0223] 其中,w1和w2可以为经验值,例如可以分别取0.6和0.9。
[0224] 本公开实施例中,通过对声谱的重构以及多任务学习的方式,将音频中的情绪特征,说话人特征,内容特征进行剥离解耦,最大化的降低相互之间的相关性,有助于提升情绪特征的准确性;另外结合了文本语义方面情绪的特征识别结果,整体上进一步提升了情绪的识别正确率
[0225] 本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0226] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0227] 图17示出了可以用来实施本公开的实施例的示例电子设备1700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0228] 如图17所示,设备1700包括计算单元1701,其可以根据存储在只读存储器(ROM)1702中的计算机程序或者从存储单元1708加载到随机访问存储器(RAM)1703中的计算机程序,来执行各种适当的动作和处理。在RAM 1703中,还可存储设备1700操作所需的各种程序和数据。计算单元1701、ROM 1702以及RAM 1703通过总线1704彼此相连。输入/输出(I/O)接口1705也连接至总线1704。
[0229] 设备1700中的多个部件连接至I/O接口1705,包括:输入单元1706,例如键盘、鼠标等;输出单元1707,例如各种类型的显示器、扬声器等;存储单元1708,例如磁盘、光盘等;以及通信单元1709,例如网卡、调制解调器、无线通信收发机等。通信单元1709允许设备1700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0230] 计算单元1701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1701执行上文所描述的各个方法和处理,例如语音情绪识别模型训练方法或情绪识别方法。例如,在一些实施例中,语音情绪识别模型训练方法或情绪识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1702和/或通信单元1709而被载入和/或安装到设备1700上。当计算机程序加载到RAM1703并由计算单元1701执行时,可以执行上文描述的语音情绪识别模型训练方法或情绪识别方法的一个或多个步骤。备选地,在其他实施例中,计算单元1701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行语音情绪识别模型训练方法或情绪识别方法。
[0231] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0232] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0233] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0234] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
[0235] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0236] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0237] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0238] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

当前第1页 第1页 第2页 第3页