Abstract
提高端到端ASR模型在几分钟到几小时长的话语上的表现是语音识别领域的一个持续挑战。
一种常见的解决方案是使用单独的语音活动检测器(VAD)预先分割音频,该检测器 纯粹基于声学语音/非语音信息 来决定片段边界位置。
然而,对于现实世界的语音来说, VAD分割可能不是最优的 ,例如,一个完整的句子应该被视为一个整体,但 中间可能包含犹豫 (“set an alarm for ... 5 o’clock”)
我们建议用端到端ASR模型取代VAD,该模型能够以流方式预测片段边界,允许 分割决策不仅以更好的声学特征为条件,还以解码文本的语义特征为条件 ,而无需额外的计算。
在长达30分钟的真实世界长格式音频(YouTube)上的实验中,与最先进的Conformer RNN-T模型上的VAD基线相比,我们证明了相对的WER提高了8.5%,中位段内延迟减少了250毫秒。
Introduction
ASR的端到端流(E2E)模型已经在长达几分钟的短至中等长度的话语中实现了较低的单词错误率(wer)。然而,E2E模型的wer较高, 对于几十分钟到几小时长的话语存在删除错误 。这样的话语出现在会议、讲座和视频字幕等任务中。
当前的分段存在高延迟,因为按照设计,VAD在决定分段之前必须等待很长时间的静默。 这会延迟后续的功能,如rescoring或预取,这些功能必须等待假设最终确定 。
改善延迟 很重要,因为它可以通过更快的 预取 使智能助手 反应更快 ,或者通过帮助 听写或字幕 应用减少由于 在热门假设之间切换 而导致的“ 闪烁 ”量,从而改善用户体验。
目前的切分器也有很高的切分错误,因为VAD的决策完全基于音频,而不是 解码的文本,这可能包含关于何时进行切分的语义线索 。
提高分割正确性很重要,因为它可以提高WER 。作为一个激励的例子,考虑下面的两个语音片段。注意,段边界用“|”表示。
理想的分词器会给出S1,因为它将语音分成语义一致的块。然而,VAD分段器会给出S2,因为说话者在说“沙克……”后停顿了一下。
重要的是,S2的次优分割可能导致单词错误,如果“shack”是最终假设的顶部。这是因为当“灌篮”被说出时,由于最终确定,没有更多的机会将“shack”修改为“shaq”。另一方面,完全不分割会导致假设没有多样性的波束膨胀,这也可能导致单词错误。
end-of-query(EOQ)预测或endpointing存在一个相关问题,历史上也使用基于音频的VAD或EOQ检测器。最近,通过 将端点和ASR结合 到一个单独的E2E模型中,对这两个任务进行联合优化,使它们能够 共享声学和语义信息 ,从而实现了WER和延迟增益。
从上面的端到端端点工作中获得灵感,我们现在引入端到端分段器,这是一个针对段端检测和ASR任务共同优化的端到端模型。
端到端分割的一个核心挑战是 ,与无可争议地属于文本末尾的end-of-query标签不同, 对于end-of-segment标签应该在哪里,没有一个基本的事实 ——这使得监督训练变得困难。为了解决这一问题,我们 提出了一种基于建模 hesitations 和 word timings 的新的 end-of-segment 注释方案 。
为了避免降低wordpiece预测 ,我们还在RNN-T架构中引入了 一个新的联合层 ,该层在 利用共享的声学和语义特征 的同时独立地预测end-of-segment标记。
与VAD基线相比,E2E分割实现了高达8.5%的质量改进,同时在YouTube字幕任务上减少了250毫秒的第50百分位延迟。
Method
分段器的主要工作是以流的方式向波束搜索发送分段边界信号。接收到该信号后,波束搜索完成顶部假设,清除波束,重置编码器状态,并将顶部假设的解码器状态传递给新段。
通常由上游VAD模型决定何时发送分段边界信号; 但 在这里,只要波束搜索中的top假设预测信号已经到达片段末端,且置信度超过阈值,信号就会由解码器自己产生 。现在我们讨论如何设计E2E模型来执行 end-of-segment() 预测任务。
End-of-segment joint layer
将段结束预测任务赋予RNN-T解码器的一种自然方法是 为联合层分配一个额外的输出logit,表示 ,就像对端点所做的那样,但我们在试点实验中发现, 这会干扰 wordpiece 解码并损害WER 。相反,为了 将词块预测与段末预测解耦 ,我们添加了第二个join层——end-of-segment join layer —— 它发出一个的后验 ,即,
其中
为第i个音频帧,
为波束中的第i个解码令牌。 end-of-segment join 层在结构上与 wordpiece joint 层相同 ,包含所有词块作为 logits。
- 首先对具有wordpiece joint层的RNN-T模型进行标准wordpiece训练;
- then the end-of-segment joint layer is initialized with the same weights as the wordpiece joint layer and fine-tuned on the training data with prediction included .
- 在推理过程中, wordpiece joint 层用于 wordpiece预测,而end-of-segment joint层用于 end-of-segment 预测。
End-of-segment annotation
虽然模型结构现在允许发出令牌,但我们如何训练模型在适当的时间发出它呢? 何时应该出现,音频或文本数据中的哪些模式可以用作监督? 人工注释是昂贵且不一致的,甚至在原则上都不清楚插入段边界的最佳位置。因此,我们选择一种 基于启发式的弱监督方法 ,其中真值标签根据表1所示的规则自动插入到训练文本中。
这些启发式规则包括当有 长沉默(≥1.2s) 或在**话语末尾插入**的规则。
为了消除常见的错误插入,我们还为模式指定了两个例外,在这些模式中,模型可能会插入,但实际上是 说话者可能还没有说完句子 的地方。
heyyy 或者 um; 中文可能是“到到到到” 或者 “嗯”。
图2给出了一个示例。具体来说, 这些包括在加长词(hey)或填充词(um)之后的沉默,这表明说话者犹豫 。
我们 将音素长度超过标准偏差5倍的词识别为加长词 ;我们使用 内部模型来检测填充词 。
"将音素长度超过标准偏差5倍的词识别为加长词" 只能用于phone模型中。可以用强制对齐,在因素级别上来找“加长词”。
实现这些启发式方法需要通过对训练集中的所有音频-文本对运行 强制对齐 模型来获得 silence、word和phoneme时长 。
FastEmit training
现在模型正确地发出,我们希望使它快速发出。毕竟,E2E分段的优点之一是它不需要像VAD那样在发出之前等待固定的沉默持续时间。
因此,我们使用FastEmit正则化来训练我们的模型,该技术鼓励在有足够的上下文可用时立即发出每个令牌。
在推理过程中,fastemit训练的模型可以在所需的沉默持续时间之前发出(表1,规则1)。
Setup
Dataset
YouTube视频涵盖了许多领域(电视节目,体育,对话等),并且通常很长,这使得YouTube字幕成为我们长期学习的理想任务。因此,我们在两个标准的YouTube测试集上进行评估:从YouTube视频点播中采样YT LONG,从YouTube上的谷歌首选频道中采样YT SHORT。表2显示了它们的长度统计信息。
Model
joint层(wordpiece and end-of-segment)是单层,输入编码器和预测网络特征的拼接。
Beam search
我们使用帧同步波束搜索,波束大小为8,剪枝阈值为5; 即去除负对数后验比最上面的假设多5的部分假设。
在每一帧中,我们应用宽度优先搜索类似于的可能扩展, 忽略任何负对数后值大于等于5的扩展 ,并将搜索深度限制为10个扩展。
我们运行的生产流客户端在强制完成之前的 最大段持续时间为65秒 。
Voice activity detector
我们的管道包含一个轻量级的语音活动检测器,它位于端到端模型的上游,以流式的方式将每个帧分类为silence或speech。每当它检测到 0.2秒 的持续silence时,它发送一个段边界信号,迫使波束搜索重置编码器状态并丢弃除顶部假设外的所有假设。
基于vad的分段最终化只在我们的基线中打开;在所有端到端分割实验中关闭。
Results
- WER:单词错误率——衡量ASR整体质量的指标。
- EOS50, EOS75: 以毫秒为单位的片段结束延迟,即在说话后多长时间转录完成。 由于句子末尾的segment boundary是唯一真实的标签,因此我们测量了从最后一个单词的结尾(其时间由强制对齐决定)到最后一个片段边界的时间差,并在话语中平均。 我们报告了第50和75百分位EOS延迟。低于 0.5s或超过2s的异常延迟将被排除在百分位数计算之外
- #segment: 每个话语的平均分段数
- #State: 每个话语在光束搜索中的平均模型状态数。它相当于joint网络前向通过的次数,因此是对波束搜索效率的度量。
Main results
VAD分割是由silence决定的,比固定长度的分割得到更好的WER。
threshold ablation study
表3b显示了阈值的消融研究。
当模型的负对数后验值低于阈值时,该段完成 。NLL越小越好。
更高的阈值更积极地完成,导致更低的延迟和更多的分段,但代价是更多的分段错误,例如,在句子中间结束。
相反,较低的阈值可能不会像维持波束分集所需的那样经常确定。
对于两个测试集来说,WER的最佳值出现在2.0的阈值处,我们选择它作为我们的操作点。
Utterance length dependence
在图3中,我们将每个示例E1和B3之间的wer相对值作为话语长度的函数进行评估。
我们在这里将话语长度定义为真实文本中的单词数,而不是音频持续时间(尽管它们是相关的),因为它更接近于束搜索lattice长度。这使我们能够分析我们的WER增益是否仅限于长形式的utterence。
令人惊讶的是,对于两个测试集,即使对于几百个单词(几分钟)的话语,WER-relative也是相当不变的。这表明端到端分割也可以更广泛地应用于中等形式的话语。
Results with frame filtering(跳帧)
在表4中,我们在打开帧滤波的情况下对VAD和E2E分段进行评估。
与基于VAD的终结一样, 帧过滤在VAD检测到0.2秒的silence时开始,丢弃即将到来的帧,直到再次检测到语音 。这是一种节省设备上部署计算的实用措施,因为它可以防止silence帧被昂贵的端到端模型不必要地处理。
分割和帧滤波通常是紧密耦合的;当VAD决定分割时,它同时启动帧滤波,确保分割决策能够访问所有音频帧。
用E2E模型替换分割需要评估它如何与vad控制的帧滤波相互作用,因为分割可能发生在帧滤波开始之前或之后。
第一个观察结果是,由于减少了声学环境,与没有帧滤波相比,帧滤波增加了大约2%的绝对WER(见B4 vs. B3和E12 vs. E1)。
然而,E2E仍然比VAD高出约3.1%的相对WER (E12 vs. B4)和120毫秒的EOS50延迟。它还实现了更好的波束搜索效率(更少的状态数),这与帧滤波减少计算负荷的目标是一致的。
与无帧滤波(E1)相比,E12的段数从56.1减少到28.1。这是因为该模型虽然使用FastEmit进行了训练,但为了自信地预测片段结束,仍然需要看到一些沉默,而过度激进的帧过滤会阻止看到这种沉默.
帧滤波可以通过增加余量来逐渐减少,或者VAD在初始化帧滤波之前必须检测到超过0.2秒的额外沉默时间 。
在E13-E20中,随着余量的增加,在没有帧滤波的情况下,WER向其值收敛(17.05%),代价是计算量略有增加。EOS50延迟也减少了;
该表表明,在资源受限的情况下, 使用帧滤波必须在质量和波束搜索效率之间进行权衡 。
Conclusion
我们的工作提出了一种通过用E2E模型取代基于vad的分段器来改进流媒体长格式音频解码的方法。我们提出了一个预测段边界的端到端架构,并提供了以端到端方式学习该任务所需的自动段结束数据注释策略。我们的研究结果表明,在长篇YouTube字幕任务上,与VAD基线相比,显著改善了WER和段末延迟。
