AI测试 [腾讯 TMQ] TTS 评测--方案介绍和实践分享

匿名 · 2018年07月26日 · 2615 次阅读

导读

语音合成(Text To Speech,TTS)技术将文本转化为声音,目前广泛应用于语音助手、智能音箱、地图导航等场景。TTS 的实现涉及到语言学、语音学的诸多复杂知识,因合成技术的区别,不同的 TTS 系统在准确性、自然度、清晰度、还原度等方面也有着不一样的表现,如何从多维度综合评价 TTS 系统质量成了 TTS 测试人员的一大挑战。针对 TTS 前端、后端的存在的问题,选取 TTS 评测指标,制定各指标评测方法,形成了一套系统的 TTS 评测方案。

1 前后端问题

当前常见的 TTS 系统可分为前端、后端两部分,前端完成输入文本的归一化、分词、发音预测、韵律结构预测等处理,后端对声音建模,用学习得到的声音参数,通过声码器合成声音。

由于自然语言本身的复杂性和开放性,前端处理部分难度较大,难以覆盖所有情况,可能引入的问题举例如下:

(1)发音错误,汉语中的多音字、数字、专有名词等根据上下文的不同,发音也不一样,语料的覆盖不全,会导致部分字词的发音错误,另外现在国际化背景下,各类中英混合语料、缩略词、符号的存在,也为发音预测带来了大量困难。

(2)声调不准,中文在实际口语发音时,存在一系列复杂的的变调规则,如一/不变调,上声变调等。这类规则的处理不当会导致合成的语音与平时发音习惯不符,听来怪异。

(3)韵律异常,前端通过语法词分词、韵律词分词、断句等方式在文本中插入不同程度的停顿,通过时长预测控制字词的发音时长,分词和断句的错误会引起合成语音时的错误停顿,听起来节奏不当。

后端通过训练模型预测声音参数,通过声码器(WaveNet 等不在此列)合成语音波形,但是无论是声音参数、还是声码器都是对实际发音过程的有损建模,无法百分百还原人声,可能引入的问题如下:

1)清晰度差,合成的字、词发音不清晰,近音词区分度差;

2)还原度差,与目标说话人的音色有差异;

3)杂音,在合成语音过程中引入背景噪声、字与字之间不流畅。

2 评测指标介绍

针对上文提到的前后端可能存在的问题,选择如下指标来评测 TTS。

2.1 发音准确性

线上语料中频繁出现的多音字、数字、符号、夹杂英文会给 TTS 前端带来很大的挑战,对这类 case 的发音错误会给用户带来较差的体验。为了评估并提升前端的正确发音的能力,建立大规模前端测试语料,通过 TTS 前端输出快速验证语料上的发音准确性。

2.2 韵律准确性

前端文本处理过程中会对文本做分词处理和时长预估,为评估 TTS 停顿和发音时长的合理性,可以准备不同领域不同句式的不同情感的文本,通过众测主观判断合成语音是否可接受,计算 TTS 韵律准确性。

2.3 字典覆盖率

为检查语音合成系统对汉字的覆盖程度,建立覆盖汉普通话不同等级的字库和生僻字库的测试语料,通过 TTS 前端输出工具,检查是否能正常处理,统计字典覆盖率,实际评测中,因为测试发音准确性需要准备庞大语料,覆盖了大量汉字,可以在测试发音准确性时顺便发现字典覆盖中的 badcase。

2.4 字清晰度得分

采用汉语清晰度诊断押韵测试(DRT)法测试字清晰度,TTS 合成 DRT 基本字表,覆盖浊音、鼻音、低沉音等不同特征的押韵字,听应音人根据 TTS 读音在问卷上选出听到的字,最后由测试人员统计结果计算清晰度等级,详见《GB-T13504-1992》。现有 TTS 合成的字清晰度较高,可以根据产品实际情况选择是否需要评测此项。

2.5 词清晰度得分

采用语义不可测句(Semantic Unpredictable Sentence, SUS)测试单词清晰度,语义的不可测可以避免听音人的经验猜测,使评测结果更可靠。可根据产品实际情况选择是否需要评测此项。

2.6 MOS

业界对语音的整体评测,一般是使用 MOS。邀请听音人试听合成语音,根据分值描述,从拟人性、连贯性、韵律感等方面为语音选择合适的分数。

3 评测方法介绍

本章详细介绍下评测时重点关注的发音准确性评测和 MOS 评测。发音准确性测试的目的是评估前端发音预测能力,发现 badcase,通过多轮修复和回归,提升系统发音准确率。

可能影响到 TTS 发音准确的语料类型较多,具体可细分为以下几类:

(1)特殊读音的姓氏:被测系统应该有能力根据上下文区别姓氏的特殊读音,如 “报仇” 和 “仇老五”,“仇 “做为姓时应该读为 [qiu2]。

(2)数字进制:被测系统应该按照汉语习惯对数字的进制正确发音,如宝马 4 系列的轿车需要 896,500 元,“896,500” 应展开为 “八十九万六千五百”。

(3)年代:以年代形式出现的数字应该根据上下文区分是进制读法、位制读法还是顺序读法,如中国在 4000 年前就开始物种驯化,中 “4000” 应该是进制读法 “四千”;秦朝建立与公元前 221 年,中 “211” 应该是位制读法 “两百二十一年”;马克思生于 1818 年,中 “1818” 应该采用顺序读法 “一八一八”。

(4)时间:被测系统对于不同的时间表示格式应该给出正确读音,如” 2017/10/27”,” 23:11”” 5pm” 等。

(5)电话:对于不同格式的电话数字应该给出正确读音,如 “0724-4356333”,“182-3123-3213”,“(+86)182-3123-3213 ” 等。

(6)分数小数百分数:对于文本中常见的百分数和小数表示,应该给出正确发音,如 “1/2”“2%”“0.9882” 等。

(7)全角半角数字:数字符号有全角半角之分,前端系统应该能正确识别并发音

(8)符号单位:对测试材料中的符号和单位应该按照我国法定计量单位规定进行发音,一些复杂读音的符号如 “:”、“-”、“#”、“*” 等需要能根据上下文选择正确的发音。

(9)专有名词术语:对于专有名词和专业词汇应该根据上下文作出正确发音,如 “工尺”、“般若” 等。

(10)中英文混合:新闻和日常对话中,经常会混入英文词汇或缩写,对于这些情景,应该能识别主场景语言,平滑切换到英文部分并正确发音。

建设语料时,如此详的分类对于评估准确率、挖掘 Badcase 无额外收益,徒增工作量,因此实践中将准确性测试语料分为多音字、数字、符号三大类分别建设。

3.1 多音字发音评测

语料建设

完备的测试用例是评测 TTS 前端准确性的基础,多音字语料建设流程如下:

(1)整理收集常见多音字和多音字的读音,建立包含不同领域文章的文本集。

(2)然后收集多音字组成的词组(包括单字词),将词组进行分类,分为固定读音词组和非固定读音词组,固定读音词组是当多音字以这个词组形式出现时,始终读一个音;非固定读音词组是当多音字以这个词组形式(包括单字词)出现时,读音不确定。

(3)最后文本集上爬取包含多音字词组的句子生成测试用例。通过固定读音词组生成的用例自带标注,这里判断句子中是否包含指定词组时,需先分词然后判断分词结果是否包含词组;由非固定读音多音字生成的用例,因为读音不确定,还需要再通过众测做人工标注。

根据北京理工大学的研究,现代汉语词典中共查到 1036 个多音字,其中有 688 个多音字以单字词的形式在人民日报语料中至少出现过一次。目前已建立的多音词测试语料共覆盖 469 个多音字的 791 种读音,覆盖包含 12760 个词组的语料 120w 句。

评测方法

合成语音后,通过听语音来判断发音正确下的效率太低,实际评测过程中可直接对前端的发音预测结果进行校验,测试语料通过 TTS 前端,输出每个字的读音和音调,对比实际输出与期望输出判断对错。

注意 TTS 输出拼音时已经做过变调调整,测试时可以专门打包一个不变调的版本或者对输出的拼音做一次变调。评测形式如下:

评测进度应该按照第一轮摸底测试、多轮回归测试、错误率高的多音字专项测试、生僻字专项测试的顺序进行,不断挖掘 badcase,逐步提高 TTS 的多音字发音准确性。

3.2 符号发音评测

语料建设

符号类语料的建设需要考虑标点符号、单位、英文夹杂等情况,我们整理了 39 个可能发音的重点关注符号(:-~%)。建立语料时从文本集搜寻包含重点符号、单位、英文夹杂、其他符号的语料,分别进行评测。

评测方法

重点符号类和单位类:测试语料通过 TTS 前端工具,输出归一化结果,建立众测标准,人工标注输出结果是否符合预期,形式如下:

英文夹杂类:这类语料只通过前端输出无法准确判断对错,需要合成语音后,听音判断是否自然切换,发音准确。

其他符号:剩下的这类符号如颜文字、小语种符号大概率不参与发音,而这类爬取得到的语料数量又最多,实际测试时抽样了部分,检查 TTS 是否能正常跳过此类符号不发音。

3.3 数字发音准确性评测

语料建设

数字类语料需覆盖电话、QQ、分数小数百分数、型号数字等不同 case,实际建设这部分语料时比较暴力,凡文本集中包含数字的句子均拿来做测试用例,优于数字和符号常一起出现,为避免重复标注,一个句子不同时加入数字和符号的测试语料。

评测方法

数字部分的评测方法与符号类似,为加快标注速度直接对前端归一化输出做判断,而不是对测试语料进行标注后再与前端输出结果做比较,形式如下:

3.4 MOS 评测

MOS 常见于各类 TTS 的 PR 文或论文中,被用于评测 TTS 的整体得分。因为是主观评测,MOS 在不同人群、不同时间、不同测试语料下结果波动较大,在 TTS 产品不断迭代中,通过传统的 MOS 评测很难反映新旧模型差异、当前模型与竞品的差异。因此我们将 MOS 评测与两两比较法相结合,并引入上标锚定打分标准,使结果相对稳定。

测试语料

前端的评测通过发音准确、韵律准确等来评测,MOS 评测应该专注于整体自然度,因此准备测试语料的时候尽量避开了多音字、符号、数字语料,从各领域和 TTS 实际应用场景摘选常规文本作为测试语料。为避免听音人疲惫,语料数量不能太多,需要控制评测时间。

当前 TTS 的 MOS 大都高于 4 分,因此我们在传统 MOS 五档分值中加入了 4.5 分档,打分及描述如下:

评测方法

(1)分别合成被测 TTS、对照 TTS 的语音,并且录制一份声优语音混入一起测试,注意录制时各类语音参数应保持一致;

(2)校验上述语音是否与语料内容一致,是否存在错误发音;

(3)语音音量对齐;

(4)生成众测问卷,被测 TTS、对照 TTS、声优三者语音交叉打乱;

(5)开始任务前给听音人试听上标下标语音,告知上下标语音的大致得分;

(6)众测用户开始听音打分,前三条语料的语音作为用户进入状态平稳打分标准的铺垫;

(7)回收问卷,剔除出界次数较多的用户数据,统计 MOS 最终结果。

关注腾讯移动品质中心 TMQ,获取更多测试干货!

版权所属,禁止转载!!!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册