论文笔记:A Mostly Data-driven Approach to Inverse Text Normalization

前言

这是苹果公司发表在语音识别顶会INTERSPEECH2017上的一篇文章。
在苹果的机器学习期刊上刊登的文章:Inverse Text Normalization as a Labeling Problem也基于相似的内容。

语音识别的后处理技术,主要是优化语音识别产品的用户体验,包括:口语顺滑(Disfluency Detection)、标点恢复(Punctuation Restoration)和逆文本标准化(Inverse Text Normalization)等。

在这里插入图片描述

Siri 使用标准的格式化方式来展示日期、时间、地址和金额等对象。这是由于在语音识别的核心组件的输出上应用了一个被称之为逆转文本标准化(ITN,Inverse Text Normalization)的过程。
可以通过下面这个案例来理解 ITN 所起的重要作用,如果没有 ITN,Siri 会把「October 23, 2016」显示成「October twenty third twenty sixteen」。在本文的工作中,考虑到对相对简单、紧凑、能够快速训练和使用的统计模型的使用,我们证明 ITN 可以被阐述成一个做标签的问题。我们证明这种方法体现了一条通向数据驱动的 ITN 系统的实际路径。

Abstract

为了使自动语音识别系统产生格式合理、可读的输出,必须将核心语音识别器产生的口语形式token序列转换为一个书面形式的字符串。这个过程称为逆文本标准化(inverse text normalization ,ITN)。 在这里,我们展示了一个主要由数据驱动的ITN系统,它利用一组简单的规则和一些手工编写的语法将ITN转换为一个标记问题。对于这个标记问题,我们应用了一个紧凑的双向LSTM。实验结果表明,该方法在实际训练数据的基础上取得了较好的效果。

1. Introduction

逆文本标准化(ITN)是将自动语音识别器产生的语音符号序列转换为适合用户表示和下游组件处理的书面形式的过程。
从口头形式到书面形式需要进行significant的转换,实体包括基数和序数,以及更复杂的项,如日期、时间和地址。在[1]中,这些实体的书面形式称为非标准词(non-standard words,NSWs)并给出了NSW的分类方法。表1给出了口语形式输入和书面形式输出的一些示例。
在这里插入图片描述
直接解决ITN问题的研究很少发表。除了[2,3,4]。在[3]中,手工编写的语法用于over-generate书面形式假设,基于口语形式token序列。一个class的语言模型(LM)用于选择最可能的书面形式假设。在[4]中,自动语音识别(ASR) LM建立在written domain。利用手工编写的语法构建的有限状态语言化模型,将书面形式转换为口语形式的token序列。结合written domain LM和语言化模型,建立ASR解码图。[2]中ITN也建立为decoding graph。
也有关于相关任务的相关工作,包括这里讨论的问题的反面,文本规范化(TN)。在[1]中,TN被表示为一个多阶段的过程,包括对书面形式的输入进行分段、对分段进行标记以及将标记的分段从转换为口语形式的输出。每个阶段都探索了不同的技术。在[5]中,统计机器翻译(statistical machine translation,SMT)技术被应用于TN。在[6]中,应用了多种RNN结构,包括基于注意力的sequence-to-sequence模型。在[7]中,SMT技术被应用到说话风格转换的任务中,而在[8]中,一个基于短语的SMT模型被用于将SMS消息转换为更conventional的书面形式输出。在[9]中,提出了一种利用概率模型确定何时应用自动学习的1-to-n替换来格式化和纠错ASR转录的方法。
除了至少部分数据驱动的方法之外,完全由手工规则构建有效的ITN系统也是可能的。本文中的参考系统就是这样一个系统。
我们在这里介绍的方法使用简单的手工规则表和一些手工语法将ITN转换为一个标记问题。对于标记问题,我们使用了双向长短时记忆(LSTM)神经网络,其动机是LSTM已被证明在各种类似的任务中非常有效[10,11,12,13,14]。
与完全基于规则的系统相比,我们的方法有一些优势。首先,可以通过修改训练数据来改变系统行为,这比编写规则需要更少的专业知识。其次,我们的方法具有学习在不同上下文中发生的转换的潜力,这些转换可能很难表示为规则。最后,合理准确的基于规则的系统需要构建和维护大型、复杂的特定于语言的规则文件。在我们的方法中,特定于语言的配置文件和语法相对较小且简单。与[4] (将ITN功能构建到解码图中)相比,我们的方法具有维持语言建模和ITN组件之间边界的实际好处。
我们的方法可能在概念上最类似于[3]。这也是一种使用手工语法和统计模型的混合方法。统计组件的形式是一个N-gram。在高层次上,我们在这里介绍的方法使用更简单的语法和更强大、更紧凑的统计模型。我们还应该注意到,[3]假设口语/书面格式对不能用于训练,因此他们完全依赖于书面格式数据来训练他们的系统。
我们本可以选择应用一个更通用的基于注意力的sequence-to-sequence模型,因为[6]对TN进行了评估。但是,正如在那篇文章中所指出的那样,这样一个模型可能产生的潜在误差空间是相当大的,而惊人的误差可以从根本上改变输出的意义。此外,我们的方法的基础模型要简单得多,对数据的需求可能更少,训练速度更快,推理运行速度也更快。
本文的其余部分组织如下:我们将在第2节和第3节中详细描述我们的方法和模型。第四部分给出了实验结果。

2. Approach

我们首先观察到:

  1. 在语音形式的标志和书写形式的字符串片段之间通常有着明显的对应关系。
  2. 大多数情况下,输出的书写形式片段的顺序和对应的语音形式标志是一样的。

通过给出的这两个观察结果,我们把从口语形式到书面形式的转换描述为以下三个步骤:

  1. 标签分配:给每一个语音形式的输入标志分配一个标签。标签规定了对语音形式标志字符执行的编辑,已得到与之对应的书写形式片段。标签亦能够标识了应用后续处理语法的区域的开始和结尾。
  2. 标签应用:应用标签规定的编辑。结果将会是书写形式的字符串,也可能包含被后续处理标记过的区域。
  3. 后续处理:给所有被标记进行后续处理的区域应用合适的后续处理语法。

Table2 给出了一个例子,其中的语音形式的标志序列具有分配好的标签、应用标签以及应用了后续处理语法的最终书写形式输出。为了简单起见,我们忽略了具有默认值的一些域。
在这里插入图片描述

标签 Label Definition

标签是一种包含以下域的数据结构:

  1. 重写(Rewrite):语音形式的标志字符串是否应该被重写,应该被如何重写。这个域的内置值包括大写化和小写化。默认值是保持语音形式标志字符串原封不动。
  2. 前置(Prepend):决定应该给语音形式标志字符串前置什么字符串。默认值是不做任何前置。
  3. 追加(Append):决定应该给语音形式标志字符串追加什么字符串。默认值是不做任何追加。
  4. 空格(Space):决定是否要在语音形式标志字符串之前插入一个空格。默认值是插入一个空格。
  5. 后续处理·开始(Post Start):决定该位置是否代表一个需要后续处理的区域的开始,如果是,应该使用哪一个后续处理语法。
  6. 后续处理·结束(Post End):决定该位置是否代表一个需要后续处理的区域的结束,如果是,应该使用哪一个后续处理语法。

对于每一个域,每一个值都对应着一种字符串到字符串的转换。我们使用有限状态转换器(finite-state transducer, FST)来对每一个转换进行编码,FST 是具有输入和输出符号的有限状态自动机。给一个输入标志应用一个标签包括了给序列中的每一个域的值使用 FST。

如Table 3、4所示,我们为重写(Rewrite)、追加(Append)域生成了 FST。
在这里插入图片描述
在这里插入图片描述

后处理 Post Processing

对于我们观察到的大多数 ITN 转换,仅使用标签分配和应用就足以生成正确的书写形式的输出。然而,一些少数情况需要额外的后续处理。首先,在金额表示中,我们使用一个后续处理语法来记录货币符号和大额金额。其次,我们使用一种后续处理语法来适当地格式化关系时间表达,例如「3:35,twenty five minutes to four」。最后,我们针对格式化语音形式标志序列中的罗马数字使用相应的后续处理语法。在上一个例子中,标签机制就足够了,但是写一个语言独立的语法来把数字转换成罗马数字会更加直接一些。下表给出了每一种情况下的例子。后续处理的语法都被编译成了 FST。
在这里插入图片描述

标签推测 Label Inference

如果我们要训练一个模型去预测标签,我们需要一种能够从语音形式得到标签序列的方式,写成成对的形式。我们通过基于 FST 的方法来做这件事。首先,我们要构建以下几种 FST:

  1. E: 一个扩张的 FST。它使用语音形式的标志序列作为输入,生成允许把所有可能的标签作为每个标志的前置字符串的 FST。
  2. A1, A2…AF: 一系列被使用的 FST,每个域对应一个 FST。这些 FST 将前置了标签的标志序列作为输入,然后为每一个标志在域 f 应用具体的选项。
  3. R: 一个渲染 FST。在标签被应用之后,这个 FST 将具有前置标签的标志序列作为输入,然后去掉标签。输出就是书写形式的,也可能具有后续处理区域的标记。
  4. P: 一个后续处理 FST。这个 FST 将书写形式的字符串作为输入,也有可能同时包含具有后续处区域的标记。输出是最终的书写形式。

我们对一个 FST 应用下面方程中的一系列处理。S 是从一个语音形式的输入中构造得到的。需要注意, P r o j i n Proj_{in} 是这样的一个处理过程:它将每一段输入标签复制到输出标签。 P r o j o u t Proj_{out} 则恰恰相反。W 是一个从书写形式的输出中构造得到的 FST。与语音形式/书写形式对相兼容的标签序列可以很容易地从标签中抽取得到。
在这里插入图片描述
S l a b l e d S_{labled} 中,我们可以很容易地提取标签序列。对于绝大多数的utterances(在我们的数据中超过99%), S l a b l e d S_{labled} 将由单个路径组成。对于那些没有,我们通过a label sequence bi-gram选择得分最高的标签序列。标签序列bi-gram是在 S l a b l e d S_{labled} 只有一条路径训练话语的子集上训练的。
即,在我们的数据中的大部分情况中,只有一个单独的标签序列。在具有多个可共用的标签序列的情况中,我们通过使用一个从无歧义的案例中训练的到的标签二元模型来选择一个标签序列。

3. Modeling

结构 Structure

给定任务公式,建模问题就简化为标记一系列标记。对于这个问题,我们采用了双向LSTM[16,17]。通过summing a linearly-projected token embedding with linearly-projected feature embeddings for all active features,计算口语形式token的LSTM的输入。LSTM的输出被送入一个多层感知器(MLP),然后是一个softmax层,每个标签都有一个输出目标。

特征 Features

输入特性是二元的,有两种类型:令牌词法特征(token lexical features)和来自rewrite table的特征。我们有一个单独的词法特征,它指示标记字符串的第一个字母是否大写。这有助于确定何时需要应用Capitalize rewrite。它还允许从LM传播,例如,token可能是专有名词。请注意,该特征的值是在运行时确定的,因此即使对于不属于输入词汇表的单词,它也是有用的。
Features derived from the rewrite table are based on which rewrite options can apply to a token。例如,表3中,“pounds”和“zettabytes”都具有与缩写atemeasure选项对应的活动特性。“pounds”还将具有与CurrencySymbol选项对应的活动特性。这些特征旨在帮助模型预测正确的标签,即使对于不频繁的标记也是如此。

4. Experiments and Results

数据和评估准则 Data and Evaluation Criteria

们将使用来自一个英语虚拟助理应用程序的数据来展示结果。我们使用一个现有的基于规则的系统从说话表单数据生成写表单输出,而不是将训练和测试数据转录出来。通过手工检查1000个随机选择的输出,我们估计基于规则的系统的句子精度(SA)约为99%。考虑到基于规则的系统的高精度,我们认为使用这些数据为评估我们的方法提供了一种合理的方法。我们希望我们的结果能推广到手工转录数据可用的情况。
我们将主要使用基于规则的系统的句子保真度(sentence fidelity,SF)作为我们的评估指标。一个书面形式的输出必须与基于规则的系统的输出完全匹配,才能算作匹配。我们在80万个随机选择的话语中呈现结果。

数据选择 Data Selection

在我们的数据集中,对于大约80%的话语,ITN执行的唯一操作是大写第一个口语形式的token。
基于这个原因,我们发现当ITN在训练中进行更重要转换时over-represent utterances是有用的。为此,我们使用与书面形式语句匹配的正则表达式选择一半的训练数据。这个正则表达式匹配数字、逗号、地址缩写(例如“Ave.”)、货币符号、通用URL前缀、通用URL后缀和at符号(“@”)

超参数 Hyperparameters

粗调后,我们所观察到的最紧凑的模型中,以1M训练话语表现最好的是64维词嵌入,32维特征嵌入,一个96维输入、128个隐藏单元的双向LSTM层和和128个单元的单层MLP。
所有的权值和嵌入都使用均匀分布(-0.1,0.1)随机初始化。输入口语形式的token词汇表大小为30,000。在训练集中找到的所有惟一标签都包含在输出词汇表中。因为有些标签很少出现,所以输出标签词汇量的大小取决于训练集
对于500K、1M和5M的训练集,分别为152、170和208。

结果 Results

(此处部分省略)
下图给出了我们使用随机选择的 500K、1M、5M 的训练数据时系统的准确率。如果我们在 INT 发挥显著作用的情境中扩大数据量(包括日期、时间以及金额等),在 1M 的语料上训练的时候,准确率几乎会在所有的对象上超过 90%。
在这里插入图片描述

5. Conclusions

我们提出了一种ITN方法,将一组简单的规则和少许手写的语法和双向LSTM进行结合。该方法具有数据驱动系统的优点,同时使用相对简单和紧凑的底层统计模型。使用1M训练语句,我们可以构建一个接近基于规则的系统的整体性能的系统,具有99%的SA。我们证明,该方法在针对ITN执行重要转换的语句的测试集上也表现得很好。

6. Acknowledgments

(略)

7. References

(略)

笔记参考
原文链接:
https://www.isca-speech.org/archive/Interspeech_2017/pdfs/1274.PDF
参考网址:
探索Siri背后的技术:将逆文本标准化(ITN)转化为标签问题
INTERSPEECH 2017系列 | 语音识别之后处理技术

发布了143 篇原创文章 · 获赞 161 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/vivian_ll/article/details/90702142