Inter Speech19

Stella981
• 阅读 621

内容有很多是来之与论文, PPT, 知乎的回答, 侵权就加上您的信息~ 谢谢.

1. VQ vae 不懂.

2. 噪声加权的一个主要用途是测量音频设备中的残余噪声,通常在节目材料的安静时刻以嘶嘶声或嗡嗡声的形式出现。这里加权的目的是为了强调我们的耳朵最容易感知到的听觉频谱部分,并减弱对我们响度感知影响较小的部分,以便得到一个与主观效果很好相关的测量数据。

3.https://colab.research.google.com/github/kan-bayashi/INTERSPEECH19_TUTORIAL/blob/master/notebooks/sprocket/sprocket.ipynb#scrollTo=xWWpgTdGEbtO

4.https://colab.research.google.com/github/kan-bayashi/INTERSPEECH19_TUTORIAL/blob/master/notebooks/wavenet_vocoder/wavenet_vocoder.ipynb#scrollTo=4asoTN-wEbiH

5. 

  1. 发音人比较少时,可以在中文和英文在音素设计上,使得两者存在交叉,或者直接使用IPA,实现音素共享;
  2. 发音人比较多时,给每个发音人提取音色和韵律向量,加入到encode端进行训练,decode端
  3. 到底是要共享, 还是尽量不共享. 共享的发音一致, 还是可以不一致.

6. 最近也在做tacotron + world对接,我的想法就是只用WORLD参数替换Mel谱图(使用pyworld提取它们)并让模型直接预测这些参数。不知道这个思路对不对?

base可以使用标贝科技开放的女生数据(大约10h)

基于tacotron + world的语音合成框架上线。由于数据集的音色不一致和韵律不稳定,端到端的学习是比较困难的。补充输入信息可以弥补端到端模型韵律预测不准和音色波动的问题。另外,通过tacotron自适应的方法,base+x,base可以使用标贝科技开放的女生数据(大约10h),x的数据量可以做到一小时以内,合成效果可以媲美base数据合成效果。(试过x的数据只用了100条,合成效果比较一般,能听得清楚,但是仔细听部分音会有点糊)

语音合成的发展趋势,应该朝着base+x,保证x合成效果的前提下,不断减少x的数据量,实现低成本合成,引爆行业。

对于跨域种和多特征人少样本这种应用场景下,端到端的网络仍然有明显优势

7. 

blizzard challenge 2019结果出炉,MOS分4.3分有点出乎意料了。罗正宇的数据音质比较差,口头禅比较多。对于非定制TTS语料库,前期的洗数据是非常重要的,包括拼音校对以及文本增删。合成文本上有英文字母,没有使用base+x难以在英文字母上正常发音,特别是一些x和s这样的无法和中文共享音素的。

近来搜狗的变声功能已经上线,这种any to one的方式,偏娱乐性多一点,我测试过多种方言,有音素识别的sense但不明显,语音拉长唱歌无法迁移,音色也不是很像,按娱乐性定位已经很不错了。

8. https://cloud.google.com/text-to-speech/

9. http://ai.baidu.com/tech/speech/tts

10. https://mp.weixin.qq.com/s/W4X_h1m8Tp-fbHHDiWWGBA?

11. http://neuhub.jd.com/ai/api/speech/tts

12. 音频/识别/合成算法QQ群(696554058) 灵声讯音频-语音算法实验室

13. 我们将这种抑扬顿挫的信息称之为韵律(Prosody)。韵律是一个非常综合的信息,为了简化问题,韵律又被分解成了如停顿,重读等信息。停顿就是告诉后端在句子的朗读中应该怎么停,重读就是在朗读的时候应该着重强调那一部分。这些所有的信息综合到一起,我们可以叫”语言学规格书”。  王木师兄的重音合成.

14. 实际的拼接并没有这么简单,首先要选择拼接单元的粒度,选好粒度还需要设计拼接代价函数等。 可以借鉴到switch语音合成中.

15. https://developer.rokid.com/#/tts

16. Lyrebird

17. https://http://twitter.com/FeitengLi/status/1021927225405267968

18. "原文说输入是 textual features 而不是单纯的 text",ClariNet和Deep Voice 3一样,都是用char & phoneme joint representation (Section 3.2 in DV3 paper),全部是char input当然可以,支持phoneme是为了给在线产品留接口,用来及时干涉比如Trump新发明的热词 "covfefe" 发音不准的情况——只支持char的需要重新训练。

19. 我觉得是因为使用离散分布丢失了0~255这些数之间的顺序和距离关系。

20. 目前复现了 Single-Gaussian WaveNet 和 ParallelWaveNet(V2)(墙外)。

21. https://github.com/azraelkuan/parallel_wavenet_vocoder

22. 

2.3 生成式对抗网络

生成式对抗网络(Generative Adversarial Network,GAN)作为一种强大的生成式模型,已经成功地被应用到图像生成和其他一些领域。GAN 的结构如图 5 所示,由一个生成器 G 和一个鉴别器 D 组成。其中 G 作为参数合成系统中的声学模型,目标是生成逼近自然语音的特征参数;而 D 的作用是评估 G 输出的声学特征与真实的声学特征的相似度,并通过梯度的方式传递给 G,从而调整生成网络使得输出的声学特征更加逼近自然语音。采用 GAN 的网络结构,可以有效缓解参数合成带来的声学特征参数过平滑问题,从而使合成语音更加真实自然。传统 GAN 的生成器以随机噪声作为输入,这里输入的是语言学信息。而 G 的损失函数在传统损失函数基础上,还加入了输出声学特征和真实声学特征的均方误差。在训练阶段分别对 G 和 D 进行交叉训练,即在每次迭代先固定 D 的参数, 对 G 进行训练;然后再固定 G 的参数, 对 D 进行训练。

Inter Speech19

23. 

语音合成目前的问题

1. 合成的速度,工业界要求快速,但目前有些技术并不能做到实时合成

2. 不够自然

3. 工业界和学术界的分别(工业界依然还是拼接合成,但是学术界已经不主要研究这个了)

4. 目前大量的语言仍然无法合成,而且针对不同的语言需要独立分析,例如需要寻找一个合适的phoneset

5. 工业界中的语音合成仍然需要大量的人工介入,例如专业的发音员,需要在录音棚录音,人工转换成文本,人工做align的检查,添加特定的词汇到发声词典

6. proper intonation 合适的语调(韵律)

7. 个性化语音合成(快速地模仿一个人的声音

个性化语音合成方向,做过一个比较新的思路,non-parallel voice conversion, 可以实现快速的语音模仿,不过还是受限于encoder和decoder,今年有个比赛vcc2018有个part是这个题目,有兴趣可以了解下~

8. 歌唱以及情感语音合成

9. 儿童的语音合成

如何获取当前语音合成的最新进展

1. 关注the Blizzard Challenge, 语音合成的年度比赛,例如2016年的比赛结果http://festvox.org/blizzard/bc2016/blizzard2016_overview_paper.pdf

2. 关注interspeech,例如2016年interspeech上的论文http://www.isca-speech.org/archive/Interspeech_2016/index.html

3. 关于大公司如谷歌、百度、科大讯飞,以及相关研究机构/学校的进展如中科院、爱丁堡大学等

24. WaveRNN,嵌入式平台都能跑.

25. 前端有很多发挥的空间,分词,多音字,韵律预测,情感的预测,都不是很好解决。换句话说随着nlp 的发展,语音合成的前端部分还有很大的空间发展。

26. 正在英国参加ICASSP2019会议,语音合成基本没人玩了,语音编码也基本没人玩了,声纹识别也是快不行了。语音识别还在走。传统的语音技术方向,现在都在考虑极为特殊的应用场景,比如环境很吵等。语音增强还是热点.

27. 讯飞配音阁了解一下,有类似于真人发音的,就是价格高,所以没有很好的市场化, 5个字,3块钱.

28. 声道模拟法。参数法利用的参数是语音信号的性质,它并不关注语音的产生过程。与此相反,声道模拟法则是建立声道的物理模型,通过这个物理模型产生波形。这种方法的理论看起来很优美,但由于语音的产生过程实在是太复杂,所以实用价值并不高。麦风阵列波束形成+目标语音信号处理+干扰抑制+降噪+去混响.

其实声道模拟在描述声带振动的时候,本质也是其它方法,比如参数法。但是接着就要通过声门和声管两个传输函数。
可以直接在频域做。当然,最近比较热门的是将信号表达为正弦分量之和的方法,那么也可以在时域做,也就是求出传输函数之后,对每个频率分量去乘以相应频点上的传输函数值。
声门的传输函数一般认为是多极点模型,用极点位置描述。声道的传输函数一般用(实/复)倒谱描述,认为是一个(零/最小)相移系统。
那么其实说到底,声道模拟法也还是参数法,只是参数有人体物理学上的意义……

29. 韵律预测, 韵律合成, 对电子书不用人工标志情感. https://zhuanlan.zhihu.com/p/35119322

30. https://speechresearch.github.io/fastspeech/ FastSpeech: Fast, Robust and Controllable Text to Speech. 文字到语音 TTS,by 浙江大学和微软.

31, 多使用一阶差分, 二阶差分.

32. 

一般认为语音的频域信号(频谱)相对于时域信号(波形振幅)具备更强的一致性(可理解为对波形的一种归纳抽象,相同的发音频谱上表现一致但波形差别很大),经过加窗等处理后相邻帧的频谱具备连贯性,相比于波形数据具备更好的可预测性;另外就是频谱一般处理到帧级别,而波形处理采样点,数量多很多,计算量也自然更大,所以一般会先预测频谱,然后经由vocoder重建波形。当然如果预测器性能够好,肯定是直接预测波形效果更精细。tacotron后端使用wavenet作为vocoder,更大的作用其实是对预测的频谱做一个音质上的提升,不仅仅是重建,而是一定程度上的找补。可参考wavenet sampleRnn waveRnn。

频谱到波形只是一个信号的转换,涉及到重建波形的音质,不会改变其超音段特征如时长、音高等,是一种还原转换,他们信息是一致的,只是形式不同,就如空气中传播的时域声波信号抵达耳蜗之后转换成频率信号一样的道理。你说的情绪特性,应该在生成频谱之前考虑。

这个方法和长河的PPG或者不带信息的Mel是矛盾的. 其实换个名字, 叫做raw_mel, pre_mel就行.

不同的人说同一句话,他们的频域信号是否表现一致?如果我想通过tacotron模仿特定人的声音,那特定人的声音特征是在生成mel频谱时就确定了还是vocoder后才确定的?

可以认为频谱和波形是一致的信息,那不同人说同一句话的谱也当然是不一样的(除非音色和韵律同时模仿得很像)。合成的时候谱决定了你听到的,所以要想改变音色或者韵律特点,需在生成谱之前进行模仿变换。vocoder一般是为了改善音质而存在的。

33. 韵律评测, 很重要. https://zhuanlan.zhihu.com/p/43240701

34. 复现了Tacotron2 中文和英文 单语言合成, 音质满足期望(忽略inference时间), 下一步方向在哪里, 如果想Expressive, 靠谱的方法有什么经验吗, 同时我尝试下混语言:

expressive最简单用look up table就可以,不过需要标注,继续深化就是vae系列了,比如gmvae,木神应该更加熟悉这些东西,mixlingual现在看来有数据就能做,不过跨说话人的话,可能vocoder的影响就会变得很大

Expressive, 如果有标注的话, 就类似于,speaker id, 之后用look up table, 这个我去找找有没有论文/数据集, 跑跑试试;
VAE (Encoder) 作为prosody Encoder, 这个应该是也要尝试的, 虽然对于VAE我.....;
mixlingual/cross-lingual 双语同人数据集有的话, 直接正常训练, 不涉及speaker id和language id, 这个看看有没有数据集 (或者把LJSPeech和标贝当成一个人), 但具体涉及到code-switching还有些细节 (比如训练数据switch的比例和测试语句相差很大);
跨语言说话人, 特别是一种语言只有一个说话人 (但是语料质量非常高),  如何做到voice clone, switch-coding, 确实是个难题, 但借助与VAE也可能有解决方法, 不过没有明白师兄说的"可能vocoder的影响就会变得很大"的含义, 是指的整个网络decoder端的网络设计吗

"可能vocoder的影响就会变得很大" 。我觉得是训练wavenet啥的,跟说话人关系比较大

翻翻王木师兄的论文了, 重音

举个例子啊,比如mixlingual的一句话: Amazon并购了Google

现在实际有两个说话人,一个英文说话人,一个中文说话人,然后训了一个multispeaker,multilingual的模型,在inference的时候,指定了中文说话人的ID,然后合成,这个时候英文部分的发音铁定不好,这个时候就需要靠vocoder的鲁棒性修了

就是英文从context text => aucostic feature会很难受, 因为他训练的时候没见过这个ID

但是网络还是会硬着去搞(找平衡), 这样的aucostic feature就不是那么完美, 需要vocoder来修

当然还有共享phone集这些办法

全共享phone这种, 其实音色迁移(统一)是很好的应该.

但是会丢掉每段语音内部自身语言的独特性(韵律, 口音, 发音)

总而言之任重道远

我其实设计了个很大的网络

Inter Speech19

而且往往起效的其实是简单的网络,比如transformer

等到结束后, 整理清楚, 尽量简化, 并且有用的, 和大家分享.!也是Liang's Task.

本文分享 CSDN - ruclion。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
暗箭伤人 暗箭伤人
1年前
【www.ithunter.club】 20230922下午
不容易的2023年,我们一起努力【www.ithunter.club】(2023092208:00:00.8872062023092216:00:00.887206)1.人事招聘专员数名(可选远程或入职)2.招聘向坐标东京Yahoo、Shift、L
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这