

图1 发表论文截图

图2 扫码直接看论文
01 背景动机 一个典型的语音识别(ASR)系统通常在句子级别上进行识别。它通常利用句级语音-文本成对数据进行训练,并(通过例如VAD处理)识别句级别的语音。然而,在对话语音识别中,更好地利用对话的特点可能会帮助提升识别性能。对话语音的典型特点有角色偏好和局部连贯性等。角色偏好,比如个人的讲话风格和情感,会影响当前对话的整体表现风格[4]。话题的局部连贯性,即与一个或多个潜在话题有语义关联的词语会倾向于在对话中连续出现。同时,其他对话层面的现象也受到了广泛关注[1]。之前的相关工作倾向于隐式地学习对话中的上下文信息,但没有更直接有效地利用对话中的角色偏好等具体特征。针对这一问题,本文提出了一个对话语音识别的模型,该模型使用条件变分自编码(CVAE)[5]和一个主题模型[6]来辅助对话语音特征的提取和利用,具体贡献如下。 受[4]启发,我们使用角色条件变分模块和话题条件变分模块分别表征角色偏好和话题相干性。 我们使用组合主题模型 (CombinedTM)[6],一个具有上下文化的文档嵌入和更强的表达主题一致性的能力的主题模型,对ASR模型的top-k输出进行重打分。
本文在两个普通话对话数据集上进行了实验。在HKUST[7]和DDT两个数据集上的实验结果表明,本文提出的方法最高降低了12%的相对字错误率(CER)。
02 提出的方案
如图3所示,本文提出的模型由一个语音编码器、两个变分模块、一个解码器和一个重打分模块组成。首先,将语音输入特征和对话历史特征分别送入语音编码器和文本编码器。然后将变分模块生成的对话特征向量送到解码器中,用来表征主题和角色信息。在模型训练时,由变分模块中的后验网络导出对话特征向量。在模型推理时,由于没有真实的抄本,所以由变分模中的先验网络导出特征向量。最后,我们使用主题模型对解码器的输出进行重打分。下面我们对每个模块进行说明。

图3 模型的整体结构
Input Representation:我们的模型的输入由会话中的第k个句子的三部分组成——当前句子的语音特征Xk、目标文本的Yk和上下文输入特征{Crole, Cdia}。在这里,Crole是当前演讲者的文字记录,Cdia则是当前对话的历史文字记录。例如:Crole = (Y1, Y3, Y5,…, Yk−2)和Cdia = (Y1, Y2, Y3,…Yk-1)。文本数据以每个人轮流说一个句子的格式进行处理,因此角色偏好也可以表示为(Y2, Y4, Y6,…, Yk−1)。
Speech Encoder:由于Conformer[8]模型优秀的语音表征能力,我们使用Conformer来作为我们的语音编码器。具体地说,每个Conformer层包括一个多头自注意模块(MHSA)、卷积模块(CONV)和前馈模块(FFN)。假设第i层Conformer的输入为hi,则该块的操作可以表示为:

Latent Variational Module (LVM):LVM由一个文本编码器和两个特定的VAE模块组成,包括角色VAE模块和主题VAE模块。每个模块由多个Transformer层、一个后验网络和一个先验网络组成,如图3左半部分所示。这两个VAE模块通过学习角色偏好中间向量和局部连贯性中间向量来表征对话中的角色偏好信息和局部连贯性信息。训练时,先验网络会处理当前句相关的信息。通过KL散度,先验网络可以通过近似后向网络来学习当前角色或者话题的分布。角色先验网络的概率通过高斯分布表达为:

其中hrole为历史文本Crole的池化表征。加入对比的Yk,即当前句信息后,后向网络概率分布如下:

Decoder:我们使用Transformer来作为解码器的架构,并通过一个额外的注意力层来合并解码器的历史信息和对话的特征信息到解码过程中:

Training Objectives:我们使用了两阶段的训练方式,在ASR训练目标的基础上,加入LVM的训练目标进行finetune, 第二阶段LVM的训练损失函数如下所示:

Topic Model Rescoring:我们使用预训练的主题模型将训练集分为若干不同的主题,并筛选出主题对应的关键词,当识别的句子被分类为某个主题时,我们将加强其中的主题相关词汇的得分。具体来说,假设划分为m个主题,每个主题有j个关键词时,重打分公式如下:

其中,n为词汇编号,b为话题编号,d为该词语的打分权重。之后,我们将新的打分汇总,并加权到原来的句子打分上,得到重打分后的新句子排序。
03 实验验证
我们在两个普通话对话数据集HKUST和DATATANG (DDT)上进行实验。HKUST数据集包含200小时的语音数据,dev集用于验证识别结果;DDT数据集包含350小时的语音数据,dev和test集用于验证识别结果。
我们通过数据的附加标签来获得每一轮对话的话题边界信息和说话人信息,从而区分说话人,判断话题的转换。对于每个语料库,我们的声学模型的细节配置与ESPnet Conformer (Enc = 12, Dec = 6, dff =2048, H = 4, datt = 256) 配置相同。我们分别使用3653和3126个汉字作为HKUST和DDT的输出单元。
表1中的实验结果表明,两个VAE模型(RoleVAE和TopicVAE)都可以对对话语音识别提供一定的帮助,同时,加入基于主题模型的重打分模块(TopicRes)后,模型可以获得更优秀的对话语音识别能力。
表1 对话ASR模型的识别结果比较

由于HKUST数据集包含开放领域的主题,对话级语言模型使得最终HKUST上的识别结果变差。原始的注意力重打分方法(AttRes)已经能对识别效果做出一定的改进,但加入了主题信息后(TopicRes),识别结果得到了进一步的优化。同时,在主题开放域数据集HKUST上,主题模型重打分比主题分布更加集中的DDT数据集效果要差一些。
在对话中,即使是同一通对话,随着双方谈话轮数的增加,说话者的说话习惯和他们谈论的主题也会发生变化。与此同时,距当前待识别语音更临近部分的识别抄本可能包含了更有用的历史信息。因此,在HKUST数据集上我们进一步研究了VAE模块输入的角色上下文长度和主题上下文长度的影响,并得到了合适历史信息长度,实验结果总结于表2和表3。
表2 角色VAE的历史长度实验

表3 话题VAE的历史长度实验

