对话式人工智能/自然语言处理

使用 NVIDIA NeMo 进行文本规范化和反向文本规范化

文本规范化( TN )将文本从书面形式转换为口头形式,是文本到语音( TTS )之前的一个重要预处理步骤。 TN 确保 TTS 可以处理所有输入文本,而不会跳过未知符号。例如,“ 123 美元”转换为“一百二十三美元”

反向文本规范化( ITN )是自动语音识别( ASR )后处理管道的一部分。 ITN 将 ASR 模型输出转换为书面形式,以提高文本可读性。例如, ITN 模块将 ASR 模型转录的“ 123 美元”替换为“ 123 美元。”

ITN 不仅提高了可读性,还提高了下游任务(如神经机器翻译或命名实体识别)的性能,因为这些任务在训练期间使用书面文本。

ITN is the post-processing step after ASR, while TN is the preprocessing step before TTS. ITN converts ASR output “on may third we paid one hundred and twenty three dollars” to a written form “on may 3 we paid $123,” while TN reverts the process and outputs the original spoken text.
图 1.会话 AI 管道中的 TN 和 ITN

TN 和 ITN 任务面临几个挑战:

  • 标记的数据稀缺且难以收集。
  • 由于 TN 和 ITN 错误会级联到后续模型,因此对不可恢复错误的容忍度较低。改变输入语义的 TN 和 ITN 错误称为不可恢复。

TN 和 ITN 系统支持多种 semiotic classes ,即口语形式不同于书面形式的单词或标记,需要规范化。例如日期、小数、基数、度量等。

许多最先进的 TN systems in production 仍然使用 加权有限状态传感器 ( WFST )基于规则。 WFST 是 finite-state machines 的一种形式,用于绘制正则语言(或 regular expressions )之间的关系。对于这篇文章,它们可以由两个主要属性定义:

  • 用于文本替换的已接受输入和输出表达式之间的映射
  • 直接图遍历的路径加权

如果存在歧义,则选择权重总和最小的路径。在图 2 中,“二十三”被转换为“ 23 ”而不是“ 203 ”

In the diagram, the shortest path is selected to output “23” instead of “20 3.”
图 2.输入“二十三”的 WFST 格子

目前, NVIDIA NeMo 为 TN 和 ITN 系统提供以下选项:

  1. Context-independent WFST-based TN and ITN grammars
  2. Context-aware WFST-based grammars + neural LM for TN
  3. Audio-based TN for speech datasets creation
  4. Neural TN and ITN

基于 WFST 的语法(系统 1 、 2 和 3 )

NeMo 文本处理包是一个 Python 框架,它依赖于 Python 包 Pynini 来编写和编译规范化语法。有关最新支持的语言的更多信息,请参阅 Language Support Matrix 。有关如何扩展或添加语言语法的更多信息,请参阅 语法定制 。

Pynini 是一个构建在 OpenFst 之上的工具包,它支持将语法导出到 OpenFST Archive File (FAR) 中(图 3 )。 FAR 文件可以在基于 Sparrowhawk 的 C ++生产框架中使用。

NeMo TN and ITN uses WFST grammars based on Pynini for development, then exports them in .FAR files, and deploys them in the Sparrowhawk (C++) framework.
图 3. NeMo 反向文本规范化开发和部署示意图

我们最初版本的 TN / ITN 系统# 1 没有考虑上下文,因为这会使规则更加复杂,这需要广泛的语言知识,并降低延迟。如果输入不明确,例如,与“ 1 / 4 个杯子”相比,“火车在 1 / 4 上出发”中的“ 1 / 4 ”,则系统# 1 会在不考虑上下文的情况下确定地选择归一化。

该系统扩展了系统# 1 ,并在规范化期间合并了上下文。在上下文不明确的情况下,系统输出多个规范化选项,使用预处理语言模型使用 Masked Language Model Scoring 重新搜索(图 4 )。

Given input “The train leaves on 1/4”, WFST grammars generate all possible normalization options, “The train leaves on one quarter,” “The train leaves on January fourth,” “The train leaves on one/four,” and “The train leaves on one divided by four.” Then, options with weights higher than the threshold values are disregarded. Here, the option “The train leaves on one/four” is dropped.  Finally, the LM scores the remaining options and selects “The train leaves on January fourth” as the best matching one.
图 4.WFST + LM 浅熔管线
  1. WFST 生成所有可能的标准化表格,并为每个选项分配权重。
  2. 修剪权重高于阈值“ 401.2 ”的标准化选项。在本例中,我们删除了“ 1 / 4 ”。它的权重更高,因为它没有完全归一化。
  3. LM 重新排序在其余选项中选择了最佳选项。

这种方法类似于 ASR 的浅层融合,并结合了基于规则和神经系统的优点。 WFST 仍然限制了不可恢复的错误,而神经语言模型在不需要大量规则或难以获取数据的情况下解决了上下文模糊性。有关详细信息,请参阅 Text normalization

Dataset Number of sentences Det WFST Duplex WFST + LM
EngConf 231 68.83 55.41 94.37
GoogleTN 7551 97.29 99.07 97.79
LibriTTS 7677 98.65 90.40 99.01
表 1.使用不同语言模型进行 LM 重新排序的 EngConf 数据集的句子精度

表 1 比较了 WFST + LM 方法在句子准确性方面与之前的系统# 1 ( DetWFST )和三个数据集上的纯神经系统( Duplex )。在本文后面,我们将提供有关系统# 4 的更多详细信息。

总的来说, WFST + LM 模型是最有效的,特别是在 EngConf 上,这是一个具有模糊示例的自收集数据集。

图 5 显示了这三种方法对错误的敏感性。虽然神经方法受不可恢复错误(如幻觉或遗漏)的影响最大,但 WFST + LM 受这些错误和类歧义的影响最小。

The following Duplex, Det WFST, and WFST+LM error patterns are showcased: “Number error” (Duplex is affected and input “10001” got altered to “one hundred”, the rest of the models are not affected), “Unknown format” (all models are affected), “Hallucination” (Duplex changes “Mrs.” to “m r e”, the rest of the models are not affected), “Omission” (given input “10 1”, Duplex returns “one one”, i.e. omits “zero”, the rest of the models are not affected), “Class ambiguity” (DetWFST produces a wrong form “leaves on one quarter” for input “leaves on 1/4”, the rest of the models are less affected by such error), “Smart URL splitting” (DetWFST produces “w e A r e s c dot com” for input “WeAreSC.com”, the rest of the models are less affected by such error).
图 5.上下文无关的 WFST 、 Duplex 和 WFST + LM 系统的错误模式

基于音频的 TN (系统 3 )

在创建新的语音数据集时,文本规范化也很有用。例如,“六二七”和“六二十七”都是“ 627 ”的有效规范化选项。但是,您必须选择最能反映相应音频中实际内容的选项。基于音频的文本规范化提供了此类功能(图 6 )。

Given input “627”, audio-based TN outputs all possible normalization options, for example, “six hundred twenty seven,” “six twenty seven,” “six two seven,” and so on Then character error rate (CER) is calculated to compare the ASR transcript of the corresponding audio with each normalized option. The option with the lowest CER is selected as the final output.
图 6.基于音频的标准化分辨率示例

神经 TN 和 ITN 模型(系统 4 )

与基于规则的系统相比,神经系统的一个显著优势是,如果存在新语言的训练数据,那么它们很容易扩展。基于规则的系统需要花费大量精力来创建,并且由于组合爆发,可能会在某些输入上工作缓慢。

作为 WFST 解决方案的替代方案, NeMo 为 TN / ITN 提供了 seq2seq Duplex 模型,为 ITN 提供了基于标记器的神经模型。

双重 TN 和 ITN

Duplex TN and ITN 是一个基于神经的系统,可以同时进行 TN 和 ITN 。在较高的层次上,该系统由两个组件组成:

  • DuplexTaggerModel:  基于 transformer 的标记器,用于识别输入中的符号跨度(例如,关于时间、日期或货币金额的跨度)。
  • DuplexDecoderModel :基于变压器的 seq2seq 模型,用于将符号跨度解码为适当的形式(例如, TN 的口语形式和 ITN 的书面形式)。

术语“双工”指的是这样一个事实,即该系统可以训练为同时执行 TN 和 ITN 。但是,您也可以专门针对其中一项任务对系统进行培训。

图特莫斯塔格

双工模型是一种顺序到顺序模型。不幸的是,这种神经模型容易产生幻觉,从而导致无法恢复的错误。

Thutmose Tagger 模型将 ITN 视为一项标记任务,并缓解了幻觉问题(图 7 和 8 )。 Thutmose 是一个单通道令牌分类器模型,它为每个输入令牌分配一个替换片段,或将其标记为删除或复制而不做更改。

NeMo 提供了一种基于 ITN 示例粒度对齐的数据集准备方法。该模型在谷歌文本规范化数据集上进行训练,并在英语和俄语测试集上实现了最先进的句子准确性。

表 2 和表 3 总结了两个指标的评估结果:

  • Sentence accuracy :将每个预测与参考的多个可能变体相匹配的自动度量。所有错误分为两组:数字错误和其他错误。当至少有一个数字与最接近的参考变量不同时,会发生数字错误。其他错误意味着预测中存在非数字错误,例如标点符号或字母不匹配。
  • Word error rate ( WER ): ASR 中常用的自动度量。
Table 2. Performance metrics (percentage) on English
Test set Metric Duplex model Thutmose (BERT) Thutmose (d-BERT)
Default Sent. acc. 97.31 97.43 97.36
Digit error 0.35 0.31 0.38
Other error 2.34 2.26 2.26
WER 2.9 3.7 3.74
Hard Sent. acc. 85.34 85.17 84.71
Digit error 3.12 3.13 3.06
Other error 11.54 11.70 12.23
WER 9.34 9.02 9.10

d- BERT 代表蒸馏 BERT 。
默认值是默认的 Google 文本规范化测试集。
Hard 是一个测试集,每个符号类至少有 1000 个样本。

Table 3. Performance metrics (percentage) on Russian
Test set Metric Duplex model Thutmose (BERT) Thutmose (d-BERT)
Default Sent. acc. 92.34 93.45 92.72
Digit error 0.51 0.43 0.52
Other error 7.15 6.11 6.75
WER 3.63 2.94 3.67
Hard Sent. acc. 81.02 84.03 81.75
Digit error 3.24 3.08 3.77
Other error 15.74 12.90 14.48
WER 11.76 7.07 8.05

标签和输入词之间的一对一对应提高了模型预测的可解释性,简化了调试,并支持后期处理更正。该模型比序列到序列模型更简单,更容易在生产设置中进行优化。

Thutmose tagger inference pipeline. The model takes as input a sequence of spoken-domain words, passes them through a BERT encoder and a classification head. It assigns a tag to each input word. After a simple post-processing step, the final written-domain output is generated.
图 7.ITN 作为标记:推理示例

输入单词的序列由基于 BERT 的标记分类器处理,给出输出标记序列。简单的确定性后处理提供最终输出。

The following Thutmose and Duplex error patterns are showcased: “Duplication due to alignment mistakes is common error pattern for Thutmose, for example “million million.” Duplex error patterns include hallucinations and overconfident choice of more frequent phrase even when it is not supported by the input, for example it predicts “air canada 777” instead of “air canada 773.”
图 8.错误示例:(左) Thutmose tagger ,(右) Duplex 模型

结论

文本规范化和反向文本规范化对于会话系统至关重要,并极大地影响用户体验。本文结合 WFST 和预处理语言模型的优点,介绍了一种处理 TN 任务的新方法,以及一种处理 ITN 任务的基于神经标记的新方法。

有关更多信息,包括本文中讨论的 TN / ITN 解决方案的代码示例、教程和文档,请参阅 NVIDIA/NeMo GitHub 报告。

 

Tags