Press "Enter" to skip to content

【交易技术前沿】探索个性化TTS技术在券商智能外呼的应用

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

本文选自《交易技术前沿》总第三十九期文章(2020年第二期)

 

柯善超  晏强  周朝阳  陈妍

 

光大证券股份有限公司信息技术总部

 

一、背景

 

近年来,智能外呼在金融行业应用日益广泛,比如银行账款催收、保险信息核实,金融产品推荐等场景都有成熟的案例,极大缓解人工回访的业务压力,提升回访效率和覆盖率。智能外呼综合应用人工智能技术,包括语音识别ASR,文字转语音TTS以及自然语言处理NLP,其中回访语音是客户体验的第一印象,热情专业的客服声音能够给客户带来很好的体验,提升客户的兴趣促进回访完成。在智能外呼的场景下,语音播报包括三种方式,全录音播放,全TTS合成,以及录音+TTS混合模式。我们对上述3种方式都深入实践,总结如下:

 

1、全录音播放模式。录音与人声效果一致,客户体验最佳,但是证券回访场景的话术中含有许多变量的词语,比如客户的姓名,资金账号,股票代码,产品代码,风险等级等,无法使用录音实现全部变量的覆盖。

 

2、全TTS合成模式。TTS合成技术随着深度学习的应用,已经在资讯播报,语音导航等场景中广泛使用,能够达到媲美人声的效果;但是在外呼场景中仅能使用8KHz的采样率,声音效果与真实录音存在一定差距;同时商用TTS声音缺少个性化,没有针对客服场景进行定制化训练。

 

3、录音+TTS混合模式。为使得录音和TTS衔接自然,我们选取了与TTS合成声音色最为接近的客服进行音频录制。然而实际使用中仍存在明显差异。图1音频波形图可以看到,合成部分前后停顿过长,加上机器感音色,实际听感不佳,容引起客户的反感。

 

 

图1 录音+TTS音频波形示例图

 

针对以上问题,最成熟的解决方案是通过TTS供应商专门为证券外呼8KHz场景定制开发,但是成本较高;为了给客户带来更好的外呼体验,实现低成本且个性化的外呼语音,我们在研究当前主流的TTS合成模型基础上,结合实际情况,通过一系列优化方法克服了样本数量少、合成音质差等困难,有效解决券商回访场景下变量合成的问题,打造特色的TTS语音效果,推动AI自主研发的能力提升。

 

二、TTS技术概述

 

原始音频通常具有很高的时间分辨率,以16k采样率为例,1秒音频包括16,000个采样点。音频数据变量维度过高且前后存在依赖关系,如果直接将文字编码与音频进行建模,难度太大。目前主流的语音合成系统主要分为两部分:前端和后端。如图2所示,前端系统先解析输入的文本,提取语言学特征,映射为音频的中间形态——声谱图;后端即声码器再实现声谱图到声音的转换。其中,声谱图是音频波形数据在低维特征空间的表示,即音频特征,比如频谱、梅尔频谱等,能够保留音频主要的信息。

 

 

图2  TTS合成流程

 

深度学习自出现以来,在语音合成各个环节得到了广泛应用,与传统的统计参数建模方法相比,极大幅度地提高了模型的精度。

 

从文本到音频特征这个阶段,2017年谷歌发布了端到端的模型Tacotron,利用序列到序列(Sequence-to-Sequence,Seq2Seq)模型实现了文本到原始频谱的转化;2018年新版本Tacotron2发布,引入注意力机制(attention)的基于循环seq2seq的特征预测网络,并增加post-net来精调mel-spectrogram。2018年百度发布了DeepVoice3,提出了一个全卷积的特征到频谱的架构,能对一个序列的所有元素完全并行计算,并且使用了递归单元使其训练速度比类似的架构极大地加快;可以同时学习数千种不同人的语音,快速实现个性化的声音。

 

音频特征转换为语音阶段,Griffin-Lim声码器是早期基于信号处理提出的,根据原始频谱预测相位,进而重构时域信号,无需训练,对于音频的质量有很高的要求,真实环境下的噪声叠加对于语音生成效果有很大影响。2016年,谷歌引用了图像领域广泛应用的自回归模型思想,提出了WaveNet。这是一个语音后端生成模型,能生成原始音频信号。但WaveNet采用了自回归结构,需要依据之前采样点来生成下一个采样点,因而生成速度较慢。同样采用自回归生成模型结构的,还有同年发布的SampleRNN,该模型是在帧的层面生成语音,提高了生成速度。2018年10月,英伟达提出了一种基于非自回归的神经网络模型WaveGlow,用于语音合成时能使用GPU进行加速,极大提升了预测速度。但是,WaveGlow的训练成本过高,需要耗费很长的时间。2019年,MelGAN模型的提出,首次将 GAN 用于原始音频的生成,在没有额外的蒸馏和感知损失的引入下仍能产生高质量的语音合成模型,而且参数量只有WaveGlow的5%,大大提高了训练和预测速度。

 

三、TTS探索实践

 

我们对上述主流的深度学习方法进行了大量文献调研与实践比较。经过分析,百度Deep Voice3具备从文本到语音输出完整的结构,同时与其他端到端模型相比,具备独有的多说话者训练的优势。多说话者训练,能学习不同人之间共同的发声特点,实现参数共享,对于小样本数据集训练有很大优势。因此,我们将Deep Voice3模型作为基础研究方向,进行本地化的改造实践。

 

首先我们在互联网上收集了部分开源语音数据集,进行Deep Voice3模型的全流程测试,在约25小时的22KHz训练音频数据下,单颗GPU Tesla P40训练72小时后,合成效果能够实现发音清晰、流畅的效果,部分语句发音抖动厉害,与音频原声存在差距,整体效果基本满足需求。接下来我们将数据集替换为客服人员的8KHz录音数据,时长约3小时,同样环境下训练72小时,合成效果较差,声音模糊,部分变调,发音颤抖,较多尖锐的爆破音,基本不可用,针对上述问题,我们对Deep Voice3模型做了深入剖析。

 

 

图3  Deepvoice3原始模型架构及关键点

 

模型主体包括编码器、解码器以及转换器三个部分:

 

编码器将文本转换为模型内部学习表示,首先将文字发音转化为内部向量表示。嵌入向量通过全连接层后,利用卷积网络提取文本中的上下文关联信息,创建注意力键值向量。最终,按照计算出注意力向量。

 

解码器是利用注意力机制将编码器结果以自回归方式解码成低维特征(梅尔频谱)。输入一组音频真实梅尔频谱样本,利用多重带有整流线性单元(ReLU)的全连接层进行预处理。然后利用因果卷积与注意力块获取编码器隐藏状态。这里,注意力机制使用查询向量(解码器的隐藏状态)和编码器单位时间键值向量计算注意力权重,并结合权重计算值向量的加权平均值,得到上下文向量。最后通过全连接层,输出下一组梅尔频谱预测结果以及一个二值的终值预测。

 

转换器负责将解码器最后一层隐藏层输出转换为声码器的参数。对于不同的声码器,转换器使用的损失函数不同。默认使用的是Griffin-Lim声码器。

 

最终模型的训练目标Loss=Liner_loss+ Mel_loss + Done_loss,分别是线性频谱损失,梅尔频谱损失以及结束符预测损失。通过对模型主体结构每个环节的分析,我们定位到造成预测效果差的3个主要原因。

 

1、音频数据的差异。标准的语音训练数据采集环境为专业录音棚及录音软件,录音环境的信噪比高,人声音色、音量、语速一致稳定;而客服自主录音环境较差,在办公室采用手机、录音笔等录音工具,录音周期长语速前后有差异,录音采集时长较短,样本数量不足。

 

2、声码器Vocoder的差异。百度Deep Voice3默认采用Griffin-Lim作为声码器,利用frame之间相位的约束来实现迭代收敛,可以在缺乏原始相位信息的基础上利用频谱重构出语音信号。通过实验,直接输入原始音频的频谱数据生成音频可以发现,Griffin-Lim声码器合成的声音效果与原声差距明显,用预测的频谱则声音进一步变差,需要用选择更好的声码器。

 

3、Mel频谱差异。通过对比Decoder的Mel频谱输出,我们发现预测的频谱与真实频谱的分布差异明显,真实频谱清晰细腻,而预测的频谱轮廓基本一致但是模糊不清,对应的声音同样也有沙哑不明亮的感觉。

 

 

图 4  Mel频谱对比图

 

四、TTS优化方案

 

4.1 训练数据优化

 

因不具备录音棚的环境,我们尝试了多种简易录音方式,手机,录音笔,会议拾音设备等,最终采取笔记本+外置话筒+专业录音软件形式,44KHz采样率,录音音质较好;同时为了保证录音的前后一致性,我们通过脚本对音频进行初步筛选,将语速明显偏慢和偏快的片段剔除;每个音频前后留白保存一致,去除发音错误的数据,保证训练数据的质量。

 

经过上述步骤处理后,训练数据大约9000条,约3个小时,样本量较少,因客服录音时间成本较高,我们借助商用TTS合成了数倍的语音数量,作为不同的发音人员联合进行训练。为保障样本的多样性和覆盖率,我们从真实的变量数据中筛选出来数十万条数据,数据筛选规则主要为两点,第一为覆盖面,确保覆盖所有的发音,第二为典型性,发音重复次数较高的变量优先选择。

 

经过训练数据的优化处理和外部数据补充,模型训练过程更为平稳,loss稳步下降。

 

4.2Vocoder声码器选择

 

声码器的训练较为独立,训练数据直接通过音频就可以得到,我们实践对比了几款主流的基于深度学习的Vocoder,包括WaveNet, WaveGlow和MelGAN三种。

 

 

传统声音效果评估通过平均意见评分(MOS)进行测量,让听众评估待测试音频的听觉质量,要并按照标准评分方案评分。券商在实际评测中较难让听众熟悉一系列规则,我们采取更简单的测试方法,将3个模型各生成10个语音片段,与10个真实录音混合在一起,每名听众对20个语音片段判断是否真实录音。最终取10个合成语音中判断为真实的数量作为评判依据,可以看到MelGAN的合成效果最佳,平均7.3个语音被识别成真实语音,效果逼真。

 

Vocoder 训练最大的难点就是GPU算力资源要求较大,在单颗GPU的模式下需要数周乃至数月的训练周期,给模型的验证和比较带来较大挑战。如下图展示了MelGan在GPU Tesla V100下,需要14天跑批可以产生清晰明亮的声音效果,28天500万次迭代训练后声音更加细腻逼真。

 

 

图5  MelGan的Gloss训练过程

 

4.3 模型结构优化

 

4.3.1文本特征的选择

 

DeepVoice3提出的架构可以将各种文本特征(字、音素、重音)转换为各种声学特征,英文数据集训练时一般通过因素作为文本特征进行编码。中文语音可以转化为拼音,缺少英文更加细致的音素表,我们研究了字、完整拼音、拼音声母+韵母、拼音单个字母+音调四种方案,比如输入文本“你好”,各类方案如下:

 

 

通过上述几种方案的验证,字方案输入范围数量过大训练集无法覆盖全,预测时遇到新的词无法转换,方案不可行。另外三种方案测试下来,拼音声母+韵母以及单个拼音的测试效果较差,预测合成声音极不稳定,部分字完全偏离正常发音;只有拼音的方案能够输出稳定的发音,能明确识别说的内容,最终我们选取此方案作为文本输入特征。

 

4.3.2 Decoder结构优化

 

原始模型结构输出包括线性频谱和Mel频谱。首先我们只需要Mel频谱的预测,去除了线性频谱生成的部分。另外针对Mel Output的结构进行优化,生成更加细致的Mel频谱。

 

1、Mel input输入时进行了降采样,默认DownSampling=4。但是在外呼业务的变量文本场景下,训练文本偏短,降采样后实际输入长度过小;将模型降采样过程去除,直接用原Mel input,最终loss收敛值更小,与真实Mel频谱更接近。

 

2、Mel Output原模型结构处理较为简单,经过FC层后直接做Sigmoid转换得到Mel频谱,经过多次测试,我们加入了多层CONV进行微调,Mel Loss下降更加快速同时收敛值更低。

 

 

图6  Decoder结构优化说明

 

4.3.3 Mel频谱增强

 

与NLP模型不同,文本数据训练目标是明确一致的,而语音数据无可避免的存在差异,同一个字每次发音都有区别,最终预测的Mel频谱与真实数据会稍有不同。在Tacotron2的训练过程中,作者直接用预测的Mel频谱作为输入用于训练声码器,取得更好效果。我们对此方式也进行了尝试,合成效果稍有增强。但是训练过程不稳定,同时需要等待前模型的训练完成,受图像增强相关的技术启发,我们特别提出了Mel频谱增强的方式,来进一步提升声音合成的细腻度和真实感。

 

2017 年 CVPR 超分辨率论文SRGAN[14]中备受瞩目的,把图片高清的效果带到了一个新的高度。SRGAN 是基于 GAN 方法进行训练的,有一个生成器和一个判别器,判别器的主体使用 VGG19,生成器是一连串的 Residual block 连接,同时在模型后部加入了 subpixel 模块,提升分辨率的同时减少计算资源消耗。在SRGAN模型的基础上,我们进行了部分改造,专门用于Mel频谱的增强。

 

(一)损失函数修改

 

原论文中给出的损失函数:

 

 

此损失函数包括两部分,第一部分是感知损失,第二部分是正则化损失。其中感知损失是由李飞飞团队提出的一种损失函数。将生成器生成的假高分辨率图像和真实的高分辨率图像送入VGG19网络中进行特征提取,在提取的特征图上再使用均方根误差,能够提升图像的超分辨率效果。但针对Mel频谱场景,并不适用图像的感知范畴,content loss仍沿用MSE Loss,其余loss保持一致。

 

 

(二)模型结构调整

 

原模型中输入数据为彩色图像,包括RGB三通道,数据维度为(3,*,*),同时模型训练输入是缩小且模糊的图片,目标是放大高清图片,训练过程包括UpSampling步骤;针对Mel频谱的数据特征,对模型Generator Netwok进行调整如下。

 

 

图7  GeneratorNetwork 架构图

 

通过数万对预测的Mel频谱和真实Mel频谱进行训练,能够得到较好的Mel频谱增强效果,同样增强后的频谱输入到Vocoder后产生的声音更加细腻明亮。

 

 

图8  Mel频谱图增强效果对比

 

4.4 最终模型结构

 

最终我们完整的模型优化如下构建了如图9所示的语音合成模型,该模型由三部分构成。第一部分可将文本特征转换为梅尔频谱,第二部分对梅尔频谱进行增强处理,第三部分通过声码器将梅尔频谱转换为原始波形输出。最终单个音频生成的速度小于200ms,经过增强的Mel频谱产生更加细致、真实的频谱,弥补初始生成的Mel频谱过于平滑的缺陷,对应的声音更加细腻清晰。

 

 

图9  优化后模型结构

 

五、智能外呼效果提升

 

我们广泛体验了各类场景下的智能外呼服务,包括金融类、互联网、营销类等多种外呼场景,普遍采用的是全TTS模式,声音流畅甜美,但是仍然存在机器合成感,能够感觉到是机器人在对话,影响客户的服务体验。我们采用的录音+TTS混合模式,在录音播放部分客户是无感知的,和客服直接回答声音效果一致;变量部分通过优化后的TTS进行合成,TTS的训练声音和播放录音都来自同一人,最终合成的效果无论在音色、音调以及语气各方面都与录音原声较为接近;在持续的问答交互中,用户对录音和TTS之间的切换基本无感知,通话的整个流程用户实际体验都是和同一个人在交互,在语音方面提升了客户的体验。

 

在外呼的实际结果对比中,之前通过录音+商用TTS合成的混合模式下,客户在交互中明确抱怨机器人声音大约占比1‰,而且抱怨后配合完成回访意愿明显下降,大概率情况下会挂断电话或提出转人工回访。在切换到自主优化的TTS模型后,外呼一个月内未收集到抱怨机器人声音的记录,给客户带来更好的语音体验,提升整体的回访成功率,初步统计在切换后回访成功率提升1.5‰,全年可节省数万通外呼电话,节省外呼成本。同时通过掌控个性化的TTS模型完整优化流程,后续我们可以定制更多种类的客服声音,根据客户的年龄、地域等属性进行客服声音的匹配,进一步带来个性化的客户体验,打造公司特色AI服务。

 

六、总结展望

 

本文通过开源的算法模型,结合券商的实际应用场景特点对模型做了大量的研究和优化工作,在简易的录音设备和较少的录音训练数据下,有效解决智能外呼应用中出现的人名合成的问题,对于提高用户体验、减少建设成本以及后续推广等有重要意义。后续在其他语音类智能服务场景下,可以通过自主训练该TTS模型,实现不同角色的人声合成,打造更有温度的客户服务体系。

 

同时,TTS优化研发有助于推动公司迈向自主探索AI应用发展的道路。目前以深度学习为代表的AI技术,在NLP、图像处理、语音数据处理等方面的基础理论和算法流程基本一致,通过TTS的自主优化开发积累了丰富的论文学习、模型调参、算法结构调整等经验,对于推动我司AI个性化应用场景建设有积极意义。特别是在金融数据安全性等方面因素的制约下,加强公司AI自主研发能力,能够有效实现数据更新、模型迭代和产品维护等全流程的自主掌控,持续推动金融科技在证券行业的落地。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注