仅需3%训练数据的文本归一化技术
在语音合成系统中,文本归一化通常是文本转语音转换的第一步。该技术将原始文本(如字符串"6-21-21")扩展为可供文本转语音模型使用的口语化形式(如"twenty first of June twenty twenty one")。
技术背景
传统文本归一化算法依赖硬编码规则,这些规则难以跨语言泛化且维护困难:典型的基于规则的单一语言文本归一化系统可能包含数千条规则,这些规则会随时间演变,且开发需要语言学专业知识。
近年来,学术界和工业界开始开发基于机器学习的文本归一化模型,但这些模型也存在缺陷。序列到序列模型偶尔会产生不可接受的错误,如将"$5"转换为"five pounds"。符号分类模型需要语言学专家创建的特定领域信息类别,这限制了其泛化能力。这两类模型都需要大量训练数据,使得跨语言扩展变得困难。
Proteno模型创新
在北美计算语言学协会年会上,我们提出了名为Proteno的新文本归一化模型,解决了这些挑战。
Proteno仅指定少量低级别归一化类别(如序数、基数或罗马数字),这些类别能很好地跨语言泛化。然后,Proteno从数据中学习大量额外的细粒度类别。在英语实验中,我们使用了8个预定义类别,而Proteno自动生成了另外2,658个类别。相比之下,符号分类模型通常只有约20个类别。
分词技术改进
Proteno使用简单有效的分词方案。先前的分词技术需要语言学知识或数据密集型训练;而Proteno的分词技术只需在空格和Unicode类别(如字母、数字或标点符号)之间的转换处拆分文本。因此,它能够跨语言泛化,使大多数归一化可以从数据中学习,并减少不可接受错误的发生。
这些技术共同使Proteno比以前的机器学习方法需要更少的训练数据。在我们的实验中,Proteno在英语上提供了与先前最先进技术相当的性能——而仅需要3%的训练数据。
多语言评估
我们在三种语言(英语、西班牙语和泰米尔语)上评估了Proteno。英语有大量文本归一化研究,但西班牙语和泰米尔语没有现成的文本归一化数据集。因此,我们创建了自己的数据集,并公开供其他文本归一化研究人员使用。
在可比数量的训练数据下,在泰米尔语和西班牙语上训练的Proteno模型达到了与英语训练模型相当的准确率(西班牙语99.1%,泰米尔语96.7%,英语97.4%)。
方法详解
Proteno将文本归一化视为序列分类问题,其中大多数类别是学习得到的。
训练流程
分词:我们提出了一种与语言无关且适用于任何空格分隔语言的细粒度分词机制。要归一化的文本首先在其空格处拆分,然后在Unicode类别发生变化的地方进一步拆分。
标注:分词后的未归一化文本被逐标记标注,这为我们提供了每个未归一化标记与其真实归一化之间的一对一映射。
类别生成:每个标记随后被映射到一个类别。类别有两种类型:
- 预定义类别:我们定义了有限数量的类别(约8-10个),包含基本归一化规则
- 自动生成类别:模型通过分析数据集中的未归一化到归一化标记映射自动生成类别
分类:我们将文本归一化建模为序列标记问题,输入是未归一化标记序列,输出是可以生成归一化文本的类别序列。我们试验了四种不同类型的分类器:条件随机场、双向长短期记忆模型、双向长短期记忆-条件随机场组合和Transformer。
数据集分析
由于Proteno的目标是适用于多种语言,我们在三种语言上进行了评估。英语的自动生成类别数量明显多于泰米尔语或西班牙语,因为书面英语倾向于使用更多缩写。
语言 | 总预定义类别 | 语言特定预定义类别 | 自动生成类别 |
---|---|---|---|
西班牙语 | 10 | 5 | 279 |
泰米尔语 | 8 | 3 | 74 |
英语 | 8 | 4 | 2,658 |
性能比较
在现有数据集中11个类别上,Proteno的性能与使用32倍数据训练的两个最先进模型相当。这些结果表明,Proteno是在低数据标注需求下进行文本归一化的有力候选方案,同时遏制不可接受错误,使其成为生产文本转语音模型的稳健且可扩展的解决方案。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码
公众号二维码