示范了200句后,我的声音“双胞胎”诞生了!

简介: 使用本文提出的语音合成中的说话人自适应技术,用户只需要录制200句话,便能够获得与1000句话普通的语音合成系统相当的效果。

小叽导读:语音合成的主要目的是让机器将文字变为人可以听得懂的声音。针对某个人,如果希望机器比较好地发出他的声音,那么需要录制这个人大量(几千到几万句话不等)的音频。很多时候,用户没有时间也没有精力录制这么多的音频。说话人自适应算法就是用来解决这个问题的,它利用用户少量的音频来学习,并能够发出令人满意的声音。使用本文提出的语音合成中的说话人自适应技术,用户只需要录制200句话,便能够获得与1000句话普通的语音合成系统相当的效果。

作者:黄智颖、卢恒、雷鸣、鄢志杰

会议:ICASSP-2018

----

摘要

说话人自适应算法利用说话人少量语料来建立说话人自适应语音合成系统,该系统能够合成令人满意的语音。在本文中,我们提出了基于线性网络的语音合成说话人自适应算法。该算法对每个说话人学习特定的线性网络,从而获得属于目标说话人的声学模型。通过该算法,使用200句目标说话人的自适应语料训练的说话人自适应系统能够获得和使用1000句训练的说话人相关系统相近的合成效果。

研究背景

对于一个目标说话人,如果他(她)拥有充足的训练数据,那么我们便可以建立一个说话人相关的声学模型,基于该声学模型的系统称之为说话人相关的语音合成系统。利用该系统,我们能够合成和目标说话人声音很像的语音。但是,大多数时候,目标说话人没有充足的数据,这使得合成出来的语音效果不太理想。利用说话人自适应算法,能够基于比较有限的数据来获得较好的语音合成系统,该类算法节省了大量的录音、转录和检查工作,使得建立新的声音的代价变得很小。

本文中,我们提出了基于线性网络(Linear Network, LN)的语音合成说话人自适应算法。该算法通过在源说话人声学模型的层间插入线性网络,然后利用目标说话人的数据来更新该线性网络和神经网络的输出层,从而能够获得属于目标说话人的声学模型。另外,一种基于低秩分解(low-rank plus diagonal,LRPD)的模型压缩算法被应用于线性网络。实验发现,当数据量较少的时候,通过LRPD来移除一些冗余的参数,从而能够使得系统合成的声音更加稳定。

算法描述

本文中,源说话人声学模型是一个基于多任务(multi-task)DNN-BLSTM的声学模型,见Fig. 1左侧。声学模型的输入为语音学特征,输出为声学特征。声学特征包括梅尔倒谱系数等。实验证明,在声学模型的底层使用深层神经网络(Deep Neural Network,DNN)可以获得更好的底层特征,并且收敛速度上相比于不使用DNN更快。在输出层上,不同的声学特征使用各自的输出层,它们仅共享声学模型的隐层。

基于线性网络的自适应算法首先被提出于语音识别领域,它的系统结构见Fig. 1右侧。根据线性网络插入的位置不同,它可以被分为线性输入网络(Linear Input Network,LIN)、线性隐层网络(Linear Hidden Network,LHN)和线性输出网络(Linear Output Network,LON)。

image.png

当线性网络被插入到声学模型的第image.png
image.png
层之间时,线性网络的输出image.png
为:

image.png

其中,image.png
表示第image.png
层的输出,image.png
表示说话人相关的线性变换矩阵,image.png
表示说话人相关的偏置矢量。模型训练流程如下:

1) 将线性网络插入至源说话人声学模型特定位置。此时,image.png被初始化为单位矩阵,image.png
的所有元素都初始化为0。

2) 利用目标说话人的数据来更新线性网络中的参数image.png
image.png
,直到收敛。此时,保持声学模型中的其它层参数固定不变。最后,获得目标说话人的声学模型。

image.png

LRPD算法主要被应用于线性网络的模型压缩。在语音识别中,基于LRPD的线性网络(LRPD-LN)能够减少普通线性网络(Full-LN)82%的模型参数量,并且性能几乎不出现下降。LRPD算法利用对角矩阵和低秩矩阵来表达Full-LN中的image.png

image.png

其中,image.png
image.png
分别表示image.png
image.png
的矩阵,image.png
为对角矩阵。可以看到,Full-LN中的模型参数量为image.png
,LRPD-LN的模型参数量为image.png
。通过实验证明,由于LRPD-LN所需要更新的参数量特别少,因此在目标说话人数据量有限的情况下能够获得较Full-LN更加稳定的合成声音。

实验

本文提出的算法,在中文数据集上进行实验,该数据集包含3个说话人,每个说话人有5000句话,时长约5h。数据集中语音的采样率为16k,特征提取中的窗长和窗移分别为25ms和5ms。分别用A-male、B- female和C-female来命名这三个说话人。本实验中,源说话人声学模型训练过程所使用的句子数为5000。

为了对比不同句子数目下的合成效果,目标说话人的自适应数据集对应的句子数从50到1000不等。在自适应数据集之外,我们取200句话作为开发集,取20句话作为测试集(用于主观打分)。为了分析性别对自适应效果的影响,进行了三对源说话人-目标说话人之间的实验:女生-女生、男生-女生和女生-男生。另外,使用客观度量和主观测听两种方式来衡量模型的性能。客观度量主要包括:Mel-Cepstral Distortion (MCD)、root mean squared error (RMSE) of F0、unvoiced/voiced (U/V) prediction errors和开发集的MSE。主观测听主要是对系统合成的声音样本进行自然度和相似度上的打分——mean opinion score (MOS) 。

image.png

以女生-女生(C-female –B-female)为例,Fig. 3显示了不同自适应句子数目和客观度量之间的关系曲线图。其中,SD表示说话人相关系统,OL表示只更新源说话人声学模型输出层的说话人自适应系统,OL+Full-LN和OL+LRPD-LN分别表示基于Full-LN和LRPD-LN的说话人自适应系统。根据Fig. 3,随着训练/自适应句子数的增加,所有系统间的客观度量趋于相近。对比SD和另外三个自适应系统,自适应系统的性能在相同句子数目下要更优。

另外,OL+LRPD-LN和OL+Full-LN相比于OL均出现性能上的跳变(提升),说明只更新输出层而不对其他层进行更新不能够得到较好的自适应效果。同时,当自适应句子数较少的时候,OL+Full-LN在客观性能上要差于OL+LRPD-LN,这是因为OL+Full-LN引入太多的参数量,出现过拟合问题。反之,在句子数多的时候OL+Full-LN在客观性能上要优于OL+LRPD-LN,此时OL+LRPD-LN由于参数量少,出现欠拟合问题。

image.png

Fig. 4上对比了不同系统间的自然度和相似度。随着句子数的减少,SD系统的性能出现急剧下降,OL+LRPD-LN相比于SD和OL+Full-LN要更加稳定。与客观度量一致,在相同句子数下,OL+Full-LN和OL+LRPD-LN在性能上要优于SD。并且,OL+Full-LN和OL+LRPD-LN在200句话的性能和SD在1000句话时的性能相近。与客观度量不同,OL+LRPD-LN在500句以下的时候性能上就优于OL+Full-LN。这是因为过拟合导致合成出来的声音不稳定(虽然客观度量更优)声音的可懂度下降导致的。由此,我们依然可以得到相同的结论:当自适应句子数较少的时候,过拟合使得OL+Full-LN的性能变差。

结论

本文中,基于线性网络的说话人自适应算法被应用于语音合成领域,基于LRPD的模型压缩算法能够提高声音的稳定性。通过三对不同的源说话人-目标说话人的实验,我们发现,当自适应句子数目非常少的时候,LRPD能够提升声音的稳定性。另外,通过提出的算法,使用200句目标说话人的训练语料训练的说话人自适应系统能够获得和使用1000句训练的说话人相关系统相近的效果。

原文链接:https://arxiv.org/abs/1803.02445

目录
相关文章
|
前端开发 Java 应用服务中间件
Gateway网关使用不规范,同事加班泪两行~
Gateway网关使用不规范,同事加班泪两行~
Gateway网关使用不规范,同事加班泪两行~
|
测试技术
测试时间不够,项目要如期发布如何保证测试质量
1.定下测试优先级,测试策略,即优先测试哪些功能,是不是保主要流程和界面样式,其他分支流程和细节可以留待后面测试优化?2.bug是不是只确保严重等级以上的完全修复,其他尽量修复,不行留待后续版本解决?3.人员是不是可以借用,比如拉上产品、运营一起测试?4.协调好万分无奈的加班计划,尽可能给测试留下时间。
|
9天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
5天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
4040 13
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
7天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
6771 14
|
5天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
4329 5
|
4天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
3036 8
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
7天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
4429 21
|
13天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
8077 12