论文PDF版
Audio samples from “Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis”

Github

Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis

abstract


文中介绍了一种多说话人的语音合成系统(TTS),可以合成不在训练集合中的说话人声音,包括在train的时候没有见过的。该系统包含了三个部分。

  • a speaker encoder net: 在数千个说话者的带噪数据集上训练的,不需要文本数据,可以从几秒的语音中生成一个embedding vector;
  • 一个基于tactron2的seq2seq synthesis net : 在speaker embedding的基础上从文本生层梅尔谱;
  • 一个基于wavenet的自回归的声码器:可以将梅尔谱转成时域信号。

introduction

系统可以在不修改模型参数的情况下,仅通过target几秒的声音,完成从文本合成这个人声音的任务。为了太逼真产生安全问题,我们生成的语音和real speech还是可以区分的(认为是train set太小,无法完全模仿)。如果要合成逼真的声音,需要数十分钟的语音。

我们将speaker modelling和speech synthesis解耦合,通过第一个网络建模说话者特征,然后训练一个高质量的tts就可以在一个小的数据集上完成转换。decoupling network可以使两个模型在单独的数据集上训练,因此并不需要高质量的多说话者数据。speaker encoder网络建模声纹信息,可以判断两句话是否是一个人说的,在带有混响和背景噪声的多说话者数据集上训练。

合成网络在1.2kspeaker的数据集上训练,encoder网络在18k speaker的数据集上训练,不仅改善了自适应的质量,而且在遇到unseen speaker的时候就可以通过之前的embedding完成合成。

最初tactron2+wavenet可以在text-audio pair上完成单个说话者的转换;【8】将其拓展到一个low-dimensional embedding speaker,【13】deep voice 3可以通过一个全卷积的网络支持libri speech的2400个speaker。他们都是fix set of embedding ,可以在训练过的说话者上进行转换。【18】voice loop可以基于一个固定尺寸的memory buffer对unseen speaker进行合成,但是需要这个说话者10多分钟的speech and transcripts。【2】只需要few-shot speaker adaptation,只需要几秒的speaker speech,不需要transcripts,模型在小数据集上做微调就可以生成高质量的语音。合成网络使用triplet loss以确保同一个speaker 的编码和speaker encoder是否一致,cycle-consistency loss是用于确保合成的编码和自适应的一致。

我们的工作和【2】【10】很像,但是我们用一个单独的网络训练speaker encoder,从预训练的speaker verification模型探索迁移学习。然后用一个端到端的合成网络,不需要中间的语言信息。

Multispeaker speech synthesis model

系统由3个部分组成:

  • speaker encoder:参考【24】,计算一个fix dimensional vector;
  • seq2seq合成:参考【15】,icassp2018
  • wavenet vocoder:参考【19】

Speaker encoder

在一个文本独立的说话者判别网络上,用d-vector进行训练,参考【20,9】,网络训练端到端的speaker verification loss,就可以将同一个说话者说的不同的话的embedding有高度的cosin相关性,而不同说话者的embedding会被分在不同的空间。句子被分成1.6s长,且打上speaker identity标签,不需要transcript。输入40维MFCC,网络由3个LSTM stack组成,每个stack预测256个输出,最后的输出由最后一帧通过最后一层L2正则化产生。在inference阶段,任意长度的句子被窗长800ms,帧移50%,网络在每一帧run,然后输出求平均、归一化。

尽管网络并没有对专门为合成相关的说话者特征做优化,在说话者判别网络上的embedding可以直接在合成网络上表示speaker identity。

Synthesizer

speaker embedding会caoncat在合成encoder每一步的输出上。合成器输入文本和对应的音素序列,可以快速的收敛并且改善发音,使用预训练的encoder提取说话者embedding,训练合成器的迁移学习,训练时reference speaker和target一样,但没有给出说话者身份的标签。目标谱特征用窗长50ms,帧移12.5ms,送入80维梅尔谱,在预测谱时,L2 loss上增加L1 loss,这种混合loss的效果更好。没有在embedding上增加loss项。

neural vocoder

wavenet vocoder参考【15】,30层的dialted conv,在多说话者数据集上训练,得到multi-vocoder。

Inference and zero-shot speaker adaptation

因为用于合成的说话者特征是从speech中得到的,因此可以在训练集以外完成。我们的方法是用一句speech,循环几次,就可以捕捉到new speaker的特征,代表了对新说话者的zero-shot adaptation。

图2可以从基频和能量的角度分析合成的正确性。

总结:核心思想就是单独加入speaker verification网络,生成speaker embedding,然后送入生成网络。

Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis相关推荐

  1. 【论文学习】《Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis》

    <Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis>论文学习 文章目 ...

  2. 声音克隆_论文翻译:2019_Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis

    论文:2019_Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis 翻译总结:只需 ...

  3. Transfer Learning from Speaker Verification toMultispeaker Text-To-Speech Synthesis复制他的声音MockingBird

    代码地址:https://github.com/babysor/MockingBird 模型地址:链接:https://pan.baidu.com/s/1J2fjbpGiyRUrWi5g8pCjFg  ...

  4. [论文品读]·d-vector解读(Deep Neural Networks for Small Footprint Text-Dependent Speaker Verification)

    Deep Neural Networks for Small Footprint Text-Dependent Speaker Verification 目录 ABSTRACT 1. INTRODUC ...

  5. Transfer Learning for NLP with TensorFlow Hub

    文章目录 Transfer Learning for NLP with TensorFlow Hub Overview Project Task 2: Setup your TensorFlow an ...

  6. 说话人验证论文翻译:Generalized end-to-end loss for speaker verification

    论文地址:2018_说话人验证的广义端到端损失 论文代码:Generalized End-to-End Loss for Speaker Verification 地址:说话人验证论文翻译:Gener ...

  7. 声纹识别之说话人验证speaker verification

    目录 一.speaker verification简介 二.主流方案和模型 1.Ecapa_TDNN模型 2.WavLm 三.代码实践 1.Ecapa_TDNN方案 a.模型结构 b.loss c.数 ...

  8. 迁移学习( Transfer Learning )

    转载于: http://apex.sjtu.edu.cn/apex_wiki/Transfer Learning 迁移学习( Transfer Learning ) 薛贵荣 在传统的机器学习的框架下, ...

  9. 迁移学习——Balanced Distribution Adaptation for Transfer Learning

    <Balanced Distribution Adaptation for Transfer Learning>学习 2017 IEEE International Conference ...

  10. Transfer Learning - Overview(详细讲解)

    大象和老虎都是在自然界中的所以与猫和狗有关系,卡通则是都是分类猫和狗任务一样,所以目标域不一样. 为什么要transfer learning,比如在speech recognition.image r ...

最新文章

  1. 前端 要了解是的事情
  2. java学习笔记day06---匿名内部类
  3. 蓝桥杯【(经验+资源)分享】【从零备考 蓝桥杯】说说我的经历及备考经验
  4. 经典案例:2012年最佳25个响应式网站设计作品《下篇》
  5. 主攻计算机专业英语翻译,湖师大“博导”黄振定,主攻“翻译学”
  6. mysql 5.5 外键_MySQL 5.5添加外键失败,错误[HY000] [150]和[HY000] [1005]
  7. python画六边形的代码_跟我学python(1)——turtle
  8. UVA11877 The Coco-Cola Store【模拟】
  9. 数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”
  10. 常见sql注入语句和xss注入语句
  11. R语言聚类分析(系统聚类、K-均值聚类)
  12. 2015年仿团800首页视频教程
  13. 微信内置浏览器直接下载APP的解决方法
  14. SIM显示字 SPN,PLMN ,MCC,MNC
  15. 阿里云主机Linux服务器配置步骤详解
  16. MacOS对文件夹加密的方法
  17. 在ORCAD原理图中怎么去指定器件的封装呢?
  18. (转)CC2530 ADC学习笔记
  19. python桌面宠物模块_利用python写个桌面挂件 | 手把手带大家做只桌面宠物呗
  20. 进度管理软件P6应用的三种场景

热门文章

  1. poj 2157 Maze(bfs)
  2. [K/3Cloud]创建一个操作校验器
  3. svn在linux下的使用(svn命令行)删除 新增 添加 提交 状态查询 恢...
  4. winform datagridview 打印预览
  5. 转帖:算法好学吗?——《大话数据结构》读者书评
  6. linux系统工程师的前途在哪里
  7. 令人魂牵梦绕的香格里拉
  8. Android NDK开发如何解决logcat日志打印不全
  9. 分享Android开发的一些工具
  10. BZOJ5224[Lydsy2017省队十连测] 毁灭