准备开题

最近忙着赶论文和开题, 很多东西放在了印象笔记和git上, 没有往csdn搬. 回头再说吧.

下面的文字也是临时当个网盘用, 等等就删了

code-switched TTS 语言片段切换的语音合成 mixed-lingual TTS 混合语言的语音合成

应用场景是生活中涉及到一句话中涉及到中文和英文的部分,比如说外国人在中国生活的时候就会反复使用或者是香港,香港的中英混杂的现象,然后更更简单更若役层次的就是句子与句子之间是不同语言。比如说地铁站上的那个地铁,地铁的啵啵啵棒呃以及以及一些指引。

所以他的要求第一是音色一定要相近,就是放在一块儿来回转换的时候肯定不难受,但只是要求音色的相近就可以,因为不同语言之间本来的韵律以及强调的韵律本身就不太想通,呃,强调这个就中中毒,还应该再讨论。

所以说扣得所有曲中他不涉及到像风格或者是情感对以及韵律,然后但是他要求的是说中文的时候一定是中文的口音,说英文的时候一定是正宗的英文,不能带有本土语言的那个口音。

所以可以额外做一个测试测试,就是说看同样的,比如说中文的句子,用两个说话人对比他们的韵律,然后风格,然后重音和和情感看是不是有明显的别的特征,就是说除了音色欠1万之外,别的不抑郁察觉的是不是也在之内?然后说白了就是不考虑太多只是把整个人的整个的沃饮食统一建模成一个向量然后共同送入到解码器中

非得要把warns的音就是声音给人的声音特征给分开,说的话可以借鉴,就是谷歌发的那篇说把声音建国为音色和口音,这样的话可以让同一个人的音色说正宗的英文和中式英文,但是他这个思路的老师强调不能不要顺着他这个思路。走不要太瘦这个思路的影响这种思路其实是不太有意义的因为中文本身就应该有中文的因素一百中文的口音英文就应该有中文的口音没有意义和没有必要去单独说一个故意的老外的口音当然如果书中有本土人说叔叔

并且结合所有的以前的做法.

因此这次interspeech我至少准备两篇,

关注点不同的. 比如study of input unit和刷loss以及demo的

其实!!! (add+concat+gated) * (residual h, residual context make attention same most simple residual-----2.4.1. Phoneme embedding context vector)

少了一种h为残差的concat的

方案, 真正也影响到attention.

包括卢辉的介绍的比concat好的

方法, 可跑完实验然后study的多了去了

给出有理有据能够节省别人时间的实验结果

和实验结论.

这样做法在语言含义解释下. 这个也是study之一, 都去寻找专家知识.

论文embedding不同, 但是encoder的参数相同, 是shared. 而cuhk embedding共享, 但是encoder分开, 其实具体说不清, 要分析的点之一

把关于分布情况的所有知识点都列出来, 每一个都分析透了, 说明原因.
没有说话人向量,

而是re-train decoder,

其实我感觉也很好, 但是

前面的很多人训练平均模型,

这个没有额外给input更精确,

但是训练平均音色可以通过这样的

方式, 挺好的.

他单语合成和多语言混合

实验差别很大, 可能因为共享

编码器.

为什么他的用中文的说话人说英文能这么好???
数据集: 他有很多个说话人, 先天优势. 接触的音全.
他用的T-2的encoder
DEC确实一样, 但是超参数不如人家调的好
人家用的phoneme, 而我目前用的拼音, 之前用phoneme有可能实验不标准. 毕竟phoneme在确保发音准确性上有优势
encoder参数的共享, encoder以后更加接近.
训练的没有人家好
可以出一篇专业角度来分析几个不同的T-2以及他们condition的延伸的. 这种更有意义, 并且学到难的细节.

基于的第一版代码和实验的实验分析-2020元旦前后的版本
1.限定: 就使用20wsteps的1fc的joee(有attention guided loss, output_steps=2)的cbhg版本. 隐藏的危险: 2fc会不会更好? 只是说有这个可能, 其实差不多, 只是不一定; 20w会不会不够, 或者之前的会好? 根据tensorboard的loss, 20wsteps还是比较合理的, 没必要纠结太精确, 反正怎么弄都是不满足工业界cs要求的; 先不分析T-2版本的joee(其实20wsteps的这个版本在bb发英文上甚至更有语义, 好一丢丢, 也多一丢丢重音变化), 因为还涉及到了CNN中有没有dropout的问题, 之后再联合Rayhane的一起分析.
工程路径为: /home/ec2-user/Tacotron-2-joee-cs-spe-1fc-ljs-bb-22050-quickConvergence
2.先用10wsteps的来看分布
3.现在有了18w, 但是忘了训练过程了…
4.分析tb, 其实最后eval loss不降, train loss波动是否可以改lr, 并且eval eval after loss还在降.


(临时, 但是不删)
1.encoded_output到底代表了什么?
linguistic features(语言学信息), 其中核心的是phoneme features(音位信息), 剩下的比如所处位置, 词性, 前后的phoneme–无根据, 但感觉像
language features(语言信息), 主要辅助决定上面的phoneme features, 剩下的如音调和重音系统信息–无根据, 乱猜的:
分为整齐统一变换语言信息, 和针对具体phoneme features打表变换语言信息; 然而可能只有统一变换的信息需要建模, 整体同一变换后就可达到各自完整语言信息效果, 原因一是: 打表变换语言信息造成的字母(input)到phoneme features的影响, 其实一直在同一个space/domain下, 且就那么几种来回变换, 因此打表变换语言信息拟合在了独立encoder中, 不需要再体现到language features进而再encoded_output中. 所以压力在是否phoneme features space可以有共享(如IPA, 或者看下发音和语谱图的联系), 找到发音单元, 使得该发音分辨率下两种语言可共用, 即集合A, B, A=B是最好. 注意是encoded_output中的phoneme features, 而不是input embedding, 他们映射不同, 但最终空间相同(因为A, B集合大小太小, 所以以离散角度, 需要能够替换对应, 而不只是在一个空间, 目的是结合speaker embedding后让decoder均见过). 剩下的是比如中文的音调信息, 英文的重音信息, 这种在另一个语言中没有的信息, 就像A+X, 和B+Y并起来, 假设A=B, X和Y不想交, 那么得到A+X+Y, 其中X, Y就是语言信息中的统一变换变换信息, 统一体现在将中文看做无重音, 将英文看做第四声调, 来concat补充每个的encoded_output, 则体现出了语言信息类似于音色信息让语谱图整体同一变换的特性. 如果concat全, 那么各自都是全集的子集, 加上speaker embedding后, 并不破坏特征, phoneme features + 音调 + 重音 + speaker embedding, 只是cross时候的组合没有出现过, 但是若这几部分分别控制声音做的解耦性很好的话, 是没问题的. 因为本来就缺失那种组合的数据, 但是可以借鉴另外一种语言的, 理由没想好, 大致就是网络模型是数学模型和解耦模型, 可以简化为在端到端神经网络的前提下, 动一部分信息, 它可以不影响别的信息最终体现到声音中. 利用的核心假设就是这个. 而A/B部分不用变, (但是需要确认是否发音A=B, 还是只有少部分shared, 虽然影响不大). 对于X和Y, 要做类似于speaker embedding那样的处理, 把维度的位置给空出来, 填上以对方语言标准来说最合适的值, 作为输入, 然后和speaker embedding处理一样, 分别concat(或更好的, 可以看看王木师兄emphasis怎么处理, 其实不重要, 意思是一样的)到A/B上. 因此需要翻翻中文的linguistic features的文件, 和英文的linguistic features的文件内容, 区分出A/B, X, Y, 找到XY以及对应的值, 通过专家规则, 语音统计实验, 神经网络训练, 这是最重要的. 比如最简单的:
phoneme encoder(中, 英文两个) + tone encoder + emphasis encoder, 独立同长的三个输入序列, 考虑上下文独立经过编码器, 直接concat, 然后最为encoded_output, 让decoder解码去吧. 就是感觉独立起来是不是信息不够? 比如在phoneme的embedding中就concat tone 和 emphasis(不过我想要的是直到encoded_output的时候, 中英文都保留着A/B+X+Y的结构, 不会因为梯度反传而丢掉, 所以结构上强行concat一波), 或者在concat后再变换一次. 都行. | 观察input和发音, 哪些是和语言无关的变化, 哪些是有关的变化. 结合linguistic 分析. 比如phoneme有关, tone无关, emphasis无关.
实际支撑的知识和现象是, 比如我看到tian, 会拼出类似于"天", 但是再加上3, 就是"舔". English, 不加重音就是English, 加了重音就是English. 这两个例子都有先phoneme, 再tone和emphasis的过程, 感觉上是不相关的(1,2,3,4, 重音与否均可与音独立发出来), 做实验的时候也可以互相组合.
原因二是: 不管目前phoneme主导的features是什么, concat上language embedding的话, 经过非线性变换, 就能达到任何效果. 所以考虑先得到平均/共享phoneme特征, 再concat上语言信息, 之后非线性变换后, 又能得到各异的信息了, 看上去和音色是一致的, 也就是在网络中, 整体一致的变换信息也可以完成打表变换信息, 只不过需要在经过几个NN. – 原因二只是一个理解方式.
所以目前的思路: concat(phoneme/Graphyme/self-define embedding, tone, emphasis) -> SPE, 中文, 英文各自的phoneme encoder, 得到phoneme_output; 之后, tone 经过 tone embedding(共享), 以及 tone encoder(共享), 得到tone_output. emphasis 共享 emphasis_output, 把他们concat到一起(phoneme_output, tone_output, emphasis_output), 不再做任何和语言相关的处理, 直接送于attention, 或者过个RNN/DNN等处理, 反正不能过跟语言有关的处理. 思路来源是新年NBA 保罗乔治: 新4年4快4乐4, 均是四声, 发发发发发.
借鉴蔡雄讲的3个encoder, 但是从根本上有两种用法:
shared encoder对应tone, emphasis, 而输入是比如graphyme或者phoneme, 分别有自己的encoder, 得到该有的phoneme features, 另外shared encoder包含tone encoder 和 emphasis encoder, 负责算出这部分的output. 其实speaker embedding也可以算是这一部分, speaker embedding的特性比如音色, 文本, 语言信息, 下面再说. 重点是–如何让单独encoder的phoneme_output中英文的是同一个域(方案有: 本来之后共用decoder, 就差不多了; 梯度反转层; 离散向量, 聚类, 或自己选, 或者直接IPA; 新的模型, 比如训练一定时间后, 先中文encoded_output找到所有的英文encoded_output距离最近, 互相代替使用, 去接着训练, 并且可以把这个方法作为评测encoder质量的标准. 这样甚至能够直接消除phoneme之外的tone, emphasis, speaker) 以及如何只含有phoneme特征, 去掉tone, emphasis, speaker features(方案有: 蔡雄讲论文的独立性loss; vae; bert预训练; GAN, 不过不会, 反正得对抗; 离散Bottelneck; dropout; tone, emphasis, speaker信息从一开始就很靠谱等), 其实这个跟去掉speaker features的做法是一样的, 看论文统计下.
shared encoder对应phoneme那部分, 因为那部分发音信息其实是一致的, 只不过input之前我们统一在之前加一个映射就好, 只是个小trick, 但是tone, emphasis, speaker并不是, 因此需要分开. 但是需要对这论文看一遍; 感觉这个方法更适合分不清language features有啥的时候用.
从大的来说, 指明language features中非发音部分信息是什么, 并给于专家知识的input, 影响发音部分信息独立或预处理, 来和speaker embedding处理方式区别对待, 能够造成语言信息(tone 1, 2, 3, 4, 5, 6, emphasis 0, 1, 但要指明完A+B-A和A+B-B, 这个很关键)和说话人信息不对称了, 使用的层级不同, 输入不同; 进一步来说, speaker embedding可能有语言信息, 所以采用multi论文中的speaker encoder, 只建模区分人与人的音色部分.
speaker features(说话人信息), 主要是timbre features(音色信息), 剩下的比如韵律习惯, 重音习惯等, 等读论文拆解–不知道
others, 如emotion, prosody, style 查一查有没有解析信息的论文. 不过先不考虑这一部分, 默认数据集具有统计意义中性.
2.上一段话涉及到的论文:

观察encoded_output分布, 主要的问题是说话人信息跟语言信息绑定在一起,没有分离开。
input unit 通过 encoder 之后的 encoded_output 能够被分为两类, 是因为所隐含的 with context linguistic feature 天然中文, 英文语言就不同.

我觉得可能的方向是先看看如何使得hidden embedding没有speaker信息.
这跟语料有关系, 在目前的数据库下恐怕很难,因为从输入信息来看,speaker信息和language信息是等价的

借助其他的有speaker信息的数据库例如VCTK. 同时具体的技术可以试试对抗学习

A

我觉得主要的问题是说话人信息跟语言信息绑定在一起,没有分离开。这跟语料有关系。我觉得可能的方向是先看看如何使得hidden embedding没有speaker信息,借助其他的有speaker信息的数据库例如VCTK。

具体的技术可以试试对抗学习

我本来想的是: input unit 通过 encoder 之后的 encoded_output 能够被分为两类, 是因为所隐含的 with context linguistic feature 天然中文, 英文语言就不同.

但是其实因为是从audio反传回来的, 导致speaker信息会在里面, 这个是独立于(理想下)语言linguistic feature体系/空间的, 它的存在也能分为两类, 所以会干扰我们对encoded_output的研究

所以我看到的目前的t-SNE是两类, 其实不能说明说, 中文的encoder之后的信息, 和英文的encoder之后的信息(大致称为语言学信息)在该输入单元(比如目前的字母), 所共处的space下, 是割裂开的两类, 而不是大量重合一致的, 类似于IPA发音有很多共享的情况.

额 不太准确 咱们老师的课我没好好上 用起来就不准确

所以一旦去掉了speaker信息, 那么就可以清爽的观察编码之后的语言学特征/hidden embedding特征了,

在目前的数据库下恐怕很难,因为从输入信息来看,speaker信息和language信息是等价的

所以去掉speaker是个难点. 去掉speaker之后等到观察完, 再考虑语言特征的domain adaptation

考虑数据集的话 确实就是师兄说的VCTK

单语多弄几个说话人, 比如这篇Building a mixed-lingual neural TTS system with only monolingual data

我先只考虑两个数据集下的吧

借助别的的预训练

  1. 仍顶着目前实验: (1)先验证我们的想法, 看看能不能把目前hidden embedding和speaker embedding算下相关性, 然后看看怎么互相减掉一下说话人向量信息再看分布, 或者加上另一个说话人向量再看分布. ----- 这个有个强烈的假设, 就是假设语言特性不是像说话人特性一样, 可以抽象为embedding, 是蕴含在字母发音内的, 即hidden embedding内, 不能从26个hidden embedding 内找到共同的那个足够代表语言特性的向量(而音色可以), 它是对于每个字母都不同的. 因此speaker embedding中几乎不含语言信息

(2)去掉(1)的假设, 直观想就是speaker embedding不用了, 用预训练好的speaker encoder来, speaker features来做, 不能训练这部分. 比如那个: 很多git 星星.

嗯嗯,你把想法写清楚成实验步骤,然后就去试试吧

老师说得对,不要搞太复杂

好东西往往是简单的

使得hidden embedding没有speaker信息,借助其他的有speaker信息的数据库例如VCTK。 这个是怎么借助呢. 就是师兄说的对抗学习吗~

对,当然只是一个方向

我先按着我知道的两个对抗方式想想


实验一: 仿Paper-JD编码前后分布分析
第一部分
实验设置
输入CUHK论文Demo涉及的句子–small_text_list_for_synthesis.txt
session.run得到向量, 直接当地画图, 但是画T-SNE以后还有?
实验代码和过程
先直接用187500steps合成wavs, 感觉没有10w好, 但有效果, 并且有eval loss支持. 不要过度分析, 设置数据太少, 甚至32/96的那个都没用上
不知道plot的close, 和一直在一张图上画怎么弄. 因为每次都是batch第0个, 比较散.
第二部分
PPT中跑出来有线性插值变化的句子–
第三部分
描述: 多跑一个phoneme的实验, 并且共享encoder, 复现JD. 并和JD对比.
和google的区别, 只有speaker id送到了decoder, 且这一次正确在LSTM前
和CUHK区别, 共享encoder, phoneme.
和JD的区别, 没有30+30个500句话的说话人.
特点: 最简单的更改, 没有residual结构, 主要是看encoder和共享input unit的关系, 用于本大实验的参照, 以及对论文的子集复现.
实验设置
拷贝tacotron-2-joee-cs-spe-1fc-ljs-bb-22050-quickconvergence, 叫做: T2-JD-shared-phoneme-SE-DEC-2-speakers
T2-JD-shared-graphyme-SE-DEC-2-speakers, 晚上时间不够了, 先跑一版, 这个作为范例-反例. 但是training_data不一定对哦!

实验二: 具有代表性demo指引下的context vector分析

实验三: 具有代表性demo指引下的frame级别, phone级别分析, 以及概念的整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSTR语音克隆英语多说话人语料库工具包 概述 这个CSTR VCTK语料库包含了109个以不同口音为母语的英语使用者的语音数据。 每位演讲者要朗读大约400句句子,其中大部分是从报纸上挑选出来的,再加上彩虹段落和一段旨在识别演讲者口音的启事段落。 这些报纸文本是在先驱时报集团(Herald & Times Group)的许可下,从格拉斯哥的《先驱报》(The Herald)上摘取的。 每位演讲者阅读一组不同的报纸句子,每组句子都是通过贪婪算法选择的,该算法旨在最大限度地扩大上下文和语音覆盖范围。 彩虹段落和启发性段落对所有演讲者都是一样的。 彩虹之旅可以在国际英语方言档案(http://web.ku.edu/~idea/readings/rainbow.htm)中找到。 引出段落与用于语音重音存档(http://accent.gmu.edu)的段落相同。 语音口音档案的细节可以在http://www.ualberta.ca/~aacl2009/PDFs/WeinbergerKunath2009AACL.pdf上找到 所有的语音数据都是使用相同的录音设置记录的:一个全向头戴式麦克风(DPA 4035),采样频率为96kHz, 24位,在爱丁堡大学的半暗室中。 所有录音均转换为16位,基于STPK下采样至48 kHz,并手动端点。 该语料库的录制是为了构建基于hmm的文本-语音合成系统,特别是用于使用多个发言者训练的平均语音模型和发言者自适应技术构建基于发言者自适应的语音合成系统。 复制 该语料库是在开放数据共享署名许可(ODC-By) v1.0下授权的。 http://opendatacommons.org/licenses/by/1.0/ http://opendatacommons.org/licenses/by/summary/ 下载 http://dx.doi.org/10.7488/ds/1994 确认 CSTR VCTK语料库由: Christophe Veaux(爱丁堡大学) Junichi Yamagishi(爱丁堡大学) 克里斯汀•麦克唐纳 导致这些结果的研究部分得到了EPSRC EP/I031022/1 (NST)和EP/J002526/1 (CAF)的资助,来自RSE-NSFC的资助(61111130120)和JST CREST (uDialogue)的资助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值