流式asr模型训练方法、语音处理方法和交互设备
技术领域
1.本公开涉及语音处理领域,尤其涉及一种流式asr模型训练方法、语音处理方法和交互设备。
背景技术:2.在语音交互场景中,对话机器人需要能够检测用户什么时候完成了表述并开始等待回复,这个任务通常被称为“句尾检测”。句尾检测任务的挑战在于需要合适把握闭麦时机,闭麦过早会导致用户意图无法被正确识别,闭麦过晚则会使得用户在得到回复之前等待过久。
3.现有技术中,通常由vad(voice activity detection)模型依赖语音能量来检测用户语音的开始和结束,但vad模型无法分辨背景语音或是噪声,从而导致过早或是过晚闭麦,降低用户的语音交互体验。
4.为此,需要一种改进的句尾检测方案。
技术实现要素:5.本公开要解决的一个技术问题是提供一种改进的句尾检测方案,该方案利用asr(自动语音识别)模型的语音特征处理和语义建模的能力,将句尾检测任务并入asr模型的训练过程中,从而使得在实际应用中,asr模型能够同时根据语音特征和语义关联来输出句尾标记,为语音交互中的准确闭麦提供决策基础。
6.根据本公开的第一个方面,提供了一种流式asr(自动语音识别)模型训练方法,包括:对语音信号进行特征提取以构造训练样本以及标签,所述标签包括语音信号中包含的标签文本和标签句尾标识;将所述训练样本送入流式asr模型;所述流式asr模型根据所述训练样本输出预测文本和预测句尾标识;以及根据所述预测文本和预测句尾标识与所述标签文本和标签句尾标识的差异,调整所述流式asr模型的参数。
7.可选地,所述方法还包括:构造第一损失函数,所述第一损失函数用于在所述预测文本和所述标签文本存在差异时引入第一损失;构造第二损失函数,所述第二损失函数用于在所述预测句尾标识和所述标签句尾标识的位置不同时引入第二损失,并且根据所述预测文本和预测句尾标识与所述标签文本和标签句尾标识的差异,调整所述流式asr模型的参数包括:根据所述第一损失和所述第二损失,基于反向传播调整所述流式asr模型的参数。
8.可选地,构造第二损失函数还包括:构造第二损失函数,使得所述预测句尾标识比所述标签句尾标识的位置提前所引起的过早损失要大于所述预测句尾标识比所述标签句尾标识的位置延迟所引起的过晚损失。
9.可选地,流式asr模型根据所述训练样本输出预测文本和预测句尾标识包括:所述流式asr模型根据所述训练样本流式输出预测文本;以及所述流式asr模型根据已输出预测文本判定语义完整并输出所述预测句尾标识。
10.可选地,所述方法还包括:所述流式asr模型在输出预测句尾标识后,对在前的所述预测文本整体上进行修改。
11.根据本公开的第二个方面,提供了一种语音处理方法,包括:接收来自用户的语音输入信号;将所述语音输入信号送入如第一方面得到的经训练的流式asr模型;所述经训练的流式asr模型根据所述输入语音特征输出预测文本和预测句尾标识;以及获取所述预测句尾标识输出前的预测文本进行语义解析。
12.可选地,所述流式asr模型根据所述输入语音特征输出预测文本和预测句尾标识包括:所述经训练的流式asr模型在输出预测句尾标识的概率大于预设的句尾预测阈值时,输出所述预测句尾标识。
13.可选地,所述方法还包括:在所述流式asr模型根据所述语音特征输出预测句尾标识时,停止获取来自所述用户的语音信号。
14.可选地,所述方法还包括:在语义解析判定语义不完整时,继续获取来自所述用户的语音信号。
15.可选地,所述方法还包括:在所述流式asr模型根据所述语音特征未输出预测句尾标识时,基于预设静音时长条件,停止获取来自所述用户的语音信号。
16.根据本公开的第三个方面,提供了一种语音交互设备,包括:麦克风,用于采集来自用户的语音输入信号;处理模块,用于对采集来的所述语音输入信号进行预处理;通信模块,用于将经预处理的语音输入信号发送给服务器并接收来自所述服务器的语音答复信息或操作信息,其中,所述服务器上设置有如第一方面得到的经训练的流式asr模型,并且根据所述流式asr模型输出的预测文本和预测句尾标识生成所述语音答复信息和/或所述操作信息;执行模块,用于输出所述语音答复信息和/或执行所述操作信息。
17.根据本公开的第四个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。
18.根据本公开的第五个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
19.由此,本发明通过将语音交互场景中的句尾检测任务和asr模型结合进行联合优化,共享asr模型通过训练学习到的信息,联合语音能量和语义进行进行更准确地闭麦判断。同时,为了应对实际应用场景中的各种复杂情况,还可以进一步通过兜底的闭麦黑白名单策略来对asr模型的句尾检测进行补足。本发明通过准确检测用户语音输入的句尾,提升语义理解准确性和答复及时性,由此改进语音交互体验。
附图说明
20.通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
21.图1示出了语音信号处理中加窗操作的示意图。
22.图2示出了原始波形、短时能量和短时过零率之间关系的一个例子。
23.图3示出了根据本发明一个实施例的流式asr模型训练方法的示意性流程图。
24.图4示出了流式识别语音的一个例子。
25.图5示出了模型输入的语音数据与模型预测的文本内容和句尾标记的对应关系。
26.图6示出了根据本发明一个实施例的语音处理方法的示意性流程图。
27.图7示出了流式asr和句尾检测相结合的判断过程图示。
28.图8示出了根据包括兜底策略的语音处理方法的示意图流程图。
29.图9示出了根据本发明一实施例可用于实现上述流式asr模型训练方法和/或语音处理方法的计算设备的结构示意图。
具体实施方式
30.下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
31.在语音交互场景中,对话机器人需要能够检测用户什么时候完成了表述并开始等待回复,这个任务通常被称为“句尾检测”。句尾检测任务的挑战在于需要合适把握闭麦时机。一方面,不希望对话机器人过早地关闭麦克风并开始回复,因为这样会在用户的语音中间停顿或在用户的呼吸间隔时切断用户并停止语音上传,造成用户的意图无法被正确识别(这种情况可以称为“提前闭麦”)。另一方面,对话机器人不应当在回复用户之前让用户等待太长的时间(或者错误地将背景语音当作是在对机器说话而保持继续开麦等待),因为这样会对用户造成“高延迟”的体感(这种情况可以称为“延迟闭麦”)。
32.传统的或是现有技术中,通常基于语音能量来进行句尾检测。在进行句尾检测之前,需要对获取的语音进行处理。
33.由麦克风获取的用户输入语音信号是一段包括语音能量的波形,需要将其变换成计算机能够进行处理的形式。人类语音的频率大部分集中分布在300~3400hz的频率范围内,因此通常对选定频谱范围内的连续语音信号进行采样,使其变成计算机能够处理的离散的时域语音信号。由于人体的发声特性,语音信号是一个非稳态的、时变的信号,在信号处理中,通常假设语音信号是短时平稳的。基于该短时特性,提出了短时能量、短时过零率用于处理。为了短时处理,需要对语音信号进行“分帧”,帧长一般取20~50ms。语音信号频域分析一般采用傅里叶变换,在一帧信号取出来做傅里叶变换之前,要先进行“加窗”的操作,即与一个窗函数相乘,使得一帧信号的幅度在两端渐变到0,(渐变可以提高傅里叶变换的频谱分辨率)。图1示出了语音信号处理中加窗操作的示意图。如图1所示,原始信号在叠加汉明窗之后变为右侧的加窗信号。
34.加窗的代价是一帧信号两端的部分被削弱了,作为弥补,以相邻帧之间存在相互重叠的方式进行。相邻两帧的起始位置的时间差叫做帧移,通常帧移取为帧长的一半,或者固定取为例如10ms。
35.此外,无论语音的发声者使用何种语言、带有何种音调,从声学角度上看都可以按照清音和浊音来进行分类。清音、浊音相对于无声而言,在短时能量、短时过零率方面都有显著的特点。对于时域信号s(t)而言,其短时能量e(t),短时过零率z(t)定义如下:
[0036][0037][0038]
其中
[0039]
清音段,能量较低,过零率较高,波形特点类似随机噪声;浊音段,能量较高,过零率较低,波形具有周期性特点;无声段,能量和过零率都很低。图2示出了原始波形、短时能量和短时过零率之间关系的一个例子。图中示出了英文单词“direction”的原始语音波形(黑色)、短时能量(灰线)和短时过零率(点划线)的归一化值,可以看到短时能量曲线与原始波形的走势基本一致,短时过零率(zcr)在清音阶段有明显峰值,而无声段的短时能量和短时过零率都比较小,这就为寻找无声段提供了判断依据。
[0040]
传统的句尾检测或是断句方案,多数是基于语音的短时能量、短时过零率等形式的语音能量,结合门限值和判断逻辑进行的。一种通常的做法是在端上或云端部署一个vad模型来检测用户语音的开始和结束,vad模型流式地判断当前音频片段是否包含用户语音,以便在语音结束时及时地切断用户并开始后续的识别和理解过程。vad模型主要依赖语音能量作为判断依据,这意味着:1)对于一段能量比较强的的噪声或背景语音,vad模型无法判断是噪声还是用户语音,而会错误地判断用户指令已经表达完成而错误闭麦,造成“提前闭麦”问题;2)若用户指令表述结束后,有一段持续的背景语音(如电视声或非主说话人语音),vad模型会认为指令还未结束而继续开麦聆听,造成“延迟闭麦”问题。
[0041]
为了实现准确的句尾检测,本发明设计了一种联合语音能量和用户语义进行句尾判定的流式asr模型,通过引入一个句尾标识的特殊token(标识),能够在实际应用中有效判断语音交互场景中的闭麦时机,从而在完整获取用户语义(以正确理解用户意图)的同时,尽可能减少用户的回复等待时间。
[0042]
为了使得在实际应用中,流式asr模型能够输入位置正确的句尾标识(即,特殊的句尾token),首先需要对流式asr模型进行训练,以使其能够输出该特殊token。
[0043]
图3示出了根据本发明一个实施例的流式asr模型训练方法的示意性流程图。该方法可以通过向已有的经训练的流式asr模型的输出词表上添加一个句尾token,并使用带句尾token标签的训练进行参数调优(finetune)来实现,也可以是针对未经训练且输出被调整为能够包括该特殊token的asr模型进行,也可以实针对端到端流式asr模型的特定子模型进行(例如,不涉及对特征提取子模型参数的调整)。
[0044]
应该理解的是,在此使用的asr模型是由人工神经网络所实现的模型。人工神经网络(ann)是一种模仿动物神经网络的行为特征,进行分布式并行信息处理的数学计算模型。在神经网络中存在有大量彼此连接的节点,也称“神经元”。每个神经元通过某种特定的输出函数(也称为“激活函数”)来处理来自其它相邻神经元的加权输入值。而各神经元之间的信息传递强度则用所谓“权值”来定义。人工神经网络的训练和调优过程在于调整这些权值,以使得模型的输出更为准确。
[0045]
在此,“流式(streaming)”asr模型是指可以在处理音频流的过程中,支持实时返
回识别结果的一类asr模型。与之相对的是非流式模型,它必须在处理完整句音频后才能返回结果。流式asr模型实时接收语音输入,并且旨在尽可能快速准确地输出用户说出的每一个字。为了方便理解,图4示出了流式识别语音的一个例子。例如,用户向智能语音交互设备说出“今天天气真不错”,此时,具备流式asr功能的交互设备并非等到用户将这句话全部说完才开始进行识别(这是非流式模型的处理方法),而是实时获取,实时解析。为了提升准确率,在识别时通常以词或者常用搭配为单位,例如,整体识别“真不错”这一常用搭配。
[0046]
在步骤s310,对语音信号进行特征提取以构造训练样本以及标签。在本发明中,对流式asr模型的训练采用有监督训练的方式,即,输入的训练样本带有指示正确预测结果的标签。在此,为了使得流式asr模型通过训练能够输出正确的句尾标识,因此在构造训练样本和标签时,所述标签需要包括语音信号中包含的标签文本和标签句尾标识。
[0047]
如前所述,声音信号是连续的模拟信号,为此,需要对输入的语音信号进行信号处理,例如前述的滤波、采样和分帧处理。由于针对原始波形进行识别并不能取得很好的识别效果,而需要进行频域变换后提取的特征参数用于识别。因此,在分帧完成后,需要对各个帧进行经频域变换的特征提取。常见的一种变换方法是提取mfcc特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,这个向量包含了该帧语音的内容信息。例如,可以将每一帧f1,f2,f3…
转换为了多维(例如,14维)的特征向量,然后整个语音转换为了14*n(n为帧数)的向量矩阵。该向量矩阵可以看作是语音信号经过特征提取后得到的训练样本。标签这用于指示该特征向量矩阵中所包含的文本信息(标签文本)和句尾标识(标签文本信息)。标签文本和标签句尾标识需要与具体的帧相对应。换句话说,需要对语音信号进行分帧和特征处理,才能够获取与具体帧相对应的标签文本。
[0048]
在构造标签时,可以通过强制对齐的方法获取语音和文本的对齐信息,并将最后一个有效字对应的语音的下一帧作为真实句尾(即,标签句尾标记)的位置。
[0049]
在步骤s320,可以将如上构造的训练样本送入流式asr模型。应该理解的是,模型训练通常需要多个样本,因此需要准备多段语音信号,并构造多个训练样本和对应标签,由此得到用于训练本发明的流式asr模型的训练样本集。该训练样本集里的样本可以按照预定的批次送入待训练的asr模型。
[0050]
在本发明中,在实际操作中使用的asr模型是端到端语音识别模型,即通过一个网络建模语音识别模型(该模型中包括声学模型和语音模型的功能),由此简化模型构造复杂度,并且通过联合优化预期可以获得更好的建模效果。端到端asr模型直接接收语音数据作为输入,并将模型预测得到的文本内容作为输出。为此,该端到端asr模型内需要包括能够对语音数据(即,语音波形)进行特征处理和分帧的子模型,例如从转换为频谱图的语音信号构造特征图的残差cnn子网络等。
[0051]
由于本发明的asr模型训练的目的是使得流式asr模型能够输出指示句尾所在帧的句尾token,因此改动可以不涉及从语音信号转换为特征信号的部分。为此,送入asr模型的训练样本即可以是语音信号本身(此时,需要端到端asr模型内部对语音信号进行特征提取处理)也可以是经特征提取得到的特征向量,本发明对此不作限制。
[0052]
随后,在步骤s330,所述流式asr模型根据所述训练样本输出预测文本和预测句尾标识。在步骤s340,可以根据所述预测文本和预测句尾标识与所述标签文本和标签句尾标识的差异,调整所述流式asr模型的参数。
[0053]
在具体应用中,为了从输入的语音信号或是基于语音信号提取的特征向量中识别出对应的文字,asr模型需要每一帧当中找出当前说的音素,再由多个音素组成字(或词),再由字(或词)组成文本句子。为了实现从音素到句子的识别,asr模型通常需要包括声学模型和语言模型两个子模型。
[0054]
声学模型用于确定发声的基本音素状态和概率。在训练时,需要获得不同人、不同年纪、性别、口音、语速的发声语料,同时尽量采集多种场景(安静的,嘈杂的,远距离的)发声语料来训练声学模型。语言模型用于确定字(或词)和语句的概率,可以使用大量的文本训练出来。实际应用中的语言模型通常是限定应用域的,同比如智能家居的,导航的,智能音箱的,个人助理的,医疗的等等,降低计算量的同时还能提高精度。asr模型中还可以包括词典(也可以称为词汇模型),用作针对语言模型的补充,比如定期更新热词和某些领域的特殊词汇等。
[0055]
声学和语言模型中对于音素和句子的确定都涉及概率的计算。假设某条句子s出现的概率为p(s),其中单词序列为w1,w2,w3…
,wn,则p(s)可以是每个词出现的条件概率相乘。在实际操作中,使用例如hmm隐马尔科夫模型,将某条句子s出现的概率为p(s)简化为:
[0056]
p(s)=p(w1)
·
p(w2|w1)
·
p(w3|w2)
…
p(wn|w
n-1
)
[0057]
另外,应该注意到的是,由于流式asr模型持续接收音频流进行识别,因此流式asr模型中,是根据已经接收到的一部分字或词o=o
1:t
,获取对应的后验概率最大的token序列w
*
=w
1:n
。即:
[0058][0059]
流式与非流式的区别在于未说出的语音(即,整个句子的下文)时未知的,因此o的取值为上文o=o
1:t
,而非整句上下文o=o
1:t
,其中,t为已接收音频特征流的当前帧索引。
[0060]
端到端asr模型直接建模序列后验概率,序列整体的后验概率通过token的后验概率累积得到,并假设当前token只依赖于之前出现的token,即:
[0061][0062]
为了使得当前asr模型能够支持流式,可以在训练时限制模型下文长度,让模型只对有限上下文进行建模。具体可以基于chunk(块)的方式,在序列建模的框架下,间接实现局部建模。
[0063]
在本发明中,虽然构造的训练样本本身包括整句的语音信息,但由于训练对象的流式asr模型,因此在训练时也需要(起码在部分轮次中)持续输入语音信息(例如,使得流式asr模型分次读取构造的特征向量矩阵),并使得流式asr模型持续输出预测的文本内容。
[0064]
为了实现句尾标识的输出,除了训练调参之外,还需要将本发明的流式asr模型的
输出修改为包括句尾token(相比于常规asr模型)。由此,使得该asr模型能够在输出文本token的同时,输出句尾token(在此,可将句尾token称为eos(end of sentence)token)。
[0065]
在利用深度学习模型处理文本数据时,需要逐字(或逐词)进行处理。这些文本被独立拆分的向量表示,可以称为token(标记)。通常一个字对应一个token。在本发明中,可以额外包括一种特殊的token,用来指代句尾,即,eostoken。
[0066]
图5示出了模型输入的语音数据与模型预测的文本内容和句尾标记的对应关系。应该理解的是,虽然图中为了理解方便示出了语音波形与预测的token之间的对应关系,但实际操作中,是语音波形对应于一个个的帧,一个个的帧在对应于预测的一个个token。
[0067]
如图所示,输入的语音包括用户询问的内容“abcd几点啊”(在此,“abcd”可以对应于例如智能音箱的四字唤醒词,abcd中的每一个都指代唤醒词所对应的一个汉字),因此在预测的token中,包括准确预测的对应于语音内容的文本token,即“a”、“b”、“c”、“d”、“几”、“点”、“啊”;还包括指示静音帧的siltoken(也可以不是token的形式,例如为空);还包括本发明特有的eos token(即,指示句尾的token)。
[0068]
在训练过程中,如果流式asr模型预测的输出与标签完全一样,例如,如图5所示,预测的文本token与标签文本完全一致,并且预测的句尾标记位置与标签句尾位置完全一致,则预测结果与标签无差异,不会导致流式asr模型的参数调整。
[0069]
而如果预测的文本token与标签文本不完全一致,并且预测的句尾标记位置与标签句尾位置有差异,则会引入损失,可以基于损失的大小通过反向传播算法来进行参数调整。
[0070]
在深度学习模型的训练过程中,通常使用损失函数来表征预测输出与标签之间的差异大小。在本发明中,可以为预测文本的损失和预测句尾标签的损失构造不同的损失函数。
[0071]
为此,本发明的流式asr模型训练方法还可以包括:构造第一损失函数,所述第一损失函数用于在所述预测文本和所述标签文本存在差异时引入第一损失;构造第二损失函数,所述第二损失函数用于在所述预测句尾标识和所述标签句尾标识的位置不同时引入第二损失。此时,根据所述预测文本和预测句尾标识与所述标签文本和标签句尾标识的差异,调整所述流式asr模型的参数包括:根据所述第一损失和所述第二损失,基于反向传播调整所述流式asr模型的参数。例如,可以将第一损失函数与第二损失函数的加权和作为总损失函数,并基于由此获取的损失进行模型参数调整。
[0072]
由于每个字符的声音可能有不同的持续时间,字符之间可能存在间隙和停顿,并且几个字符可以合并在一起,使得口语音频并不整齐。为此,可以使用ctc算法,通过引入空白字符和去除重复音素并计算概率来实现输入语音与输出文本之间的对齐,例如图5所示的对齐。为此,在一个实施例中,可以使用标准ctc优化目标作为第一损失函数。
[0073]
在构造第二损失函数时,可以根据预测eos token的位置与标签token位置相隔的帧数来量化损失。可以根据句尾的真实位置(即标签位置)和模型预测的位置,分别针对预测的句尾比真实句尾更早或比真实句尾延迟两种情况,分别设置了“过早惩罚”和“过晚惩罚”,惩罚项的计算是在流式asr模型输出上直接计算得到。由此构造的第二损失函数可以使得所述预测句尾标识比所述标签句尾标识的位置提前所引起的过早损失要大于所述预测句尾标识比所述标签句尾标识的位置延迟所引起的过晚损失。例如,预测位置比标签位
置早3帧引起的损失要大于晚三帧所引起的损失。
[0074]
由此,通过在现有的第一损失函数的基础上,加入表征预测句尾位置错误所引起损失的第二损失函数,就能够在流式asr模型的的训练过程中将如上的过早和过晚惩罚项加入训练目标中进行联合优化。
[0075]
如前所述,第一损失函数可以对应于标准ctc优化目标,即,l
ctc
=-log(p(y|x)),其中x是模型输入,y是模型输出。增加如上惩罚项后的优化目标(即,考虑了第一和第二损失函数的总损失函数)可以是:
[0076]
l’ctc
=-log(p’(y|x))。
[0077]
其中,p’(y|x)=softmax(l’(y|x))。在一个实施例中,其中,有关l’的表达式如下:
[0078]
l
′
(y
《eos》
|x
t
)-=(n
early
*max(t
《eos》-t,0)+α
late
*max(t-t
《eos》-t
buffer
,0)))*(max(l(y|x
t
)-min(l(y|x
t
)))
[0079]
其中,l表示模型计算输出的logit(s),l(y《
eos
》|x
t
)表示模型在时刻t计算出《eos》的logit(logit是全连接层输出的向量,用于提供给softmax层计算概率)。α
early
和α
late
分别是控制过早惩罚和过晚惩罚的系数,可以通过如上系数的调整提升过早惩罚的权重。在如上的式子中还包括t
buffer
,这可以看作是t
《eos》
之后为《eos》的输出提供的一个“宽限期”,即,在t
buffer
的时间内输出不会增加过晚惩罚。
[0080]
通过将句尾预测惩罚项加入训练目标进行联合优化,使得asr模型能够学习到何时判断一句话结尾的知识。如前所述,流式asr模型根据概率来判断文本序列组成,为此能够在一定程度上包括预测文本语义完整性的表征。为此,流式asr模型根据所述训练样本输出预测文本和预测句尾标识不仅包括所述流式asr模型根据所述训练样本流式输出预测文本,还包括所述流式asr模型根据已输出预测文本判定语义完整并输出所述预测句尾标识。
[0081]
上述eos token的输出,反过来可以提升流式asr模型预测文本的准确性,这是因为流式asr模型通过eos token的训练获取了对语句结尾的判定能力,这反过来可以用于模型对已经预测的文本内容进行整体上的修正。为此,在一个优选实施例中,本发明的训练方法还可以包括:所述流式asr模型在输出预测句尾标识后,对在前的所述预测文本整体上进行修改。
[0082]
理想的句尾检测模型知道如何区分语音停顿与真实的句尾。而现有技术中单独训练的句尾检测模型,其优化目标和asr模型不一致,因此是独立与asr过程本身来进行优化的。这种方式无法利用由asr模型学习到的语义信息,即使这些信息对于句尾的决策是有帮助的。为此,我们如上所述训练了一个联合语音能量和语义判断的句尾判断模型。端到端流式asr模型由大量的训练数据训练得到,学习语音特征到语义查询(query)的映射,具有联合语音特征编码和语义建模的能力。因此,本发明通过将asr任务和句尾检测任务联合训练来实现asr模型和句尾检测模型的信息贡献。具体地,通过引入一个句尾标识的特殊token eos,可以将句尾检测模型的训练引入到了asr模型的优化过程中,两个模型共享参数;同时,也可以看作是asr模型在经过简单修改后具备了句尾检测能力。
[0083]
本发明如上基于图3及其优选实施例描述的方法可以训练出能够输出eos token的流式asr模型,该模型可以在实际的语音处理操作中指示正确的句尾位置,从而作为闭麦和将语言文本送入nlu模型进行语义解析的指导。
[0084]
图6示出了根据本发明一个实施例的语音处理方法的示意性流程图。该方法可由智能语音交互设备(通常需要结合布置有经如上所述训练得到的流式asr模型的服务器,即,云端)实现。
[0085]
在步骤s610,接收来自用户的语音输入信号。在流式语音识别的场景下,可以持续接收来自用户的语音输入信号。
[0086]
随后,在步骤s620,可以将语音输入信号送入如上训练得到的经训练的流式asr模型。在模型布置在云端的情况下,可以在智能语音交互设备(例如,智能音箱)本地进行一定的预处理,例如,滤波降噪和特征提取,并直接将提取的特征向量上传至云端的流式asr模型进行实时语音识别。于是在步骤s630,经训练的流式asr模型可以根据输入语音特征输出预测文本和预测句尾标识。由于深度学习模型的输出通常为分类至某一个特定类别的概率,因此可以对模型在当前帧对应于句尾的标识预测概率进行设置。为此,经训练的流式asr模型可以在输出预测句尾标识的概率大于预设的句尾预测阈值时,输出所述预测句尾标识。
[0087]
在步骤s640,获取所述预测句尾标识输出前的预测文本进行语义解析。相应地,在流式asr模型根据所述语音特征输出预测句尾标识时,智能语音交互设备可以进行闭麦操作,即,停止获取来自所述用户的语音信号。
[0088]
作为补充,可以对流式asr模型的判定进行修正和兜底。例如,在语义解析判定语义不完整时,可以(例如,通过重新开麦)继续获取来自所述用户的语音信号。在所述流式asr模型根据所述语音特征未输出预测句尾标识时,也可以基于预设静音时长条件,停止获取来自所述用户的语音信号。即,可以通过闭麦黑名单和兜底闭麦(闭麦白名单)策略对闭麦逻辑进行补足。
[0089]
图7示出了流式asr和句尾检测相结合的判断过程图示。流式asr模型流式接受语音输入,并实时输出识别出的文本结果。倘若模型识别出eostoken,则认为模型检测到了句尾,并将完整的识别结果送给后续的查询理解模块(例如,nlu)生成回复。倘若未识别出eostoken,则继续开麦聆听直至检测到句尾。为了达到wer和延迟之间更好的平衡,不仅将句尾模型和asr模型联合优化,同时希望句尾能够在最后一个字被识别出后尽可能早地被预测出来。为此,可以通过在如上所述的第二损失函数中设置比“过晚惩罚”更严厉的“过早惩罚”来提升本发明的流式asr模型尽快识别出句尾的能力。
[0090]
进一步地,本发明针对基于语义句尾检测模型还设计了一套完整的闭麦决策过程,除模型预测外,还可以对“提前闭麦”和“延迟闭麦”的判断进行增强。图8示出了根据包括兜底策略的语音处理方法的示意图流程图。如图所示,语音特征可以输入如上训练的流式asr模型(其实是asr模型中的encoder(编码器)是流式的,decoder(解码器)只是相应地对encoder流式输出的内容进行解码)。
[0091]
流式encoder持续对输入语音进行解码,即,流式输出文本内容,并且在输出句尾eostoken并且判定概率大于预定阈值(threshold)时,判定流式模型认为句尾出现。但此时并非直接将在前文本交由nlu模型进行后续的语义分析处理,例如query(查询)理解,而是还有进行闭麦黑名单的查询。如果满足黑名单,则不进行闭麦,仍然保持继续开麦。闭麦黑名单策略主要包含容易出现提前闭麦问题的语义不完整的查询,在asr模型识别出句尾时,对命中黑名单的情况保持继续开麦。
[0092]
而对于流式asr模型在满足预设静音时长条件时仍然没有输出句尾token的情况下,可以利用云端的兜底闭麦策略进行兜底闭麦。
[0093]
具体地,兜底闭麦策略针对模型延迟召回的情况进行分级兜底处理,以避免用户等待时间过程。例如可以针对三种情况进行了兜底处理:
[0094]
1)流式中间结果为空且尾部静音时长超过t1;
[0095]
2)流式中间结果非空且尾部静音时长超过t2;
[0096]
3)识别出eos后,流式结果命中闭麦黑名单,继续检测出t3的静音时长。
[0097]
在实际操作中,可以针对实际需要灵活调整t1、t2和t3的取值。
[0098]
本发明还可以实现为一种语音交互设备。该语音交互设备例如可以是智能音箱。语音交互设备可以包括:麦克风,用于采集来自用户的语音输入信号;处理模块,用于对采集来的所述语音输入信号进行预处理;通信模块,用于将经预处理的语音输入信号发送给服务器并接收来自所述服务器的语音答复信息或操作信息,其中,所述服务器上设置有如上训练得到的流式asr模型,并且根据所述流式asr模型输出的预测文本和预测句尾标识生成所述语音答复信息和/或所述操作信息,执行模块,用于输出所述语音答复信息和/或执行所述操作信息。执行模块例如可以是扬声器,用于输出语音答复信息,也可以包括显示器,用于显示基于操作信息生成的图像内容。
[0099]
本发明采用了联合语义和语音能量来决策的句尾检测模型,相较于基于vad判断的决策方法,能够联合query语义完整性进行判断,有效区分语音中的语气停顿/说话人的呼吸间隔或犹豫与真实语义句尾之间的区别,提升了句尾判断的准确性,同时对于噪声的干扰更加鲁棒。
[0100]
相较于单独的句尾检测模型,本发明将句尾检测任务和asr识别任务进行了有机地结合,通过端到端模型进行联合优化,对所学到的信息进行了共享,能够更好地在asr识别效果和延迟之间取得平衡。同时,基于句尾检测模型设计了一套完整了的闭麦决策方案,能够在真实的语音交互场景中直接应用并达到更好的使用体感。
[0101]
图9示出了根据本发明一实施例可用于实现上述流式asr模型训练方法和/或语音处理方法的计算设备的结构示意图。
[0102]
参见图9,计算设备900包括存储器910和处理器920。
[0103]
处理器920可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器920可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器920可以使用定制的电路实现,例如特定用途集成电路(asic,application specific integrated circuit)或者现场可编程逻辑门阵列(fpga,field programmable gate arrays)。
[0104]
存储器910可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器
在运行时需要的指令和数据。此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
[0105]
存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的流式asr模型训练方法和/或语音处理方法。
[0106]
上文中已经参考附图详细描述了根据本发明的流式asr模型训练方法、语音处理方法和交互设备。
[0107]
本发明通过将语音交互场景中的句尾检测任务和asr模型结合进行联合优化,共享asr模型学习到的信息,联合语音能量和语义进行进行更准确地闭麦判断。进一步地,基于语义句尾检测模型,本发明设计了一套完整的闭麦决策方案,通过闭麦黑名单和兜底闭麦策略进行补充,能够有效抑制提前闭麦和延迟闭麦问题,降低用户表述完指令之后的等待时长,使对话系统具备更好的交互体验。
[0108]
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
[0109]
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
[0110]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0111]
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0112]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。