已尝试
- DeepVoice3:训练速度快(2*tacotron)但无法收敛,合成不出有效的声音
- DCTTS:训练速度慢,合成效果差(用文档原配置合成英文亦是)。
- Tacotron-2:速度一般(=tacotron),但是后接wavenet部分报错,代码臃肿,除了Location-attention外其他改动效果不明显。
- Tacotron(对应hparams.py中):
-
multi_mode_0
是否启用多说话人模式:将每个说话人映射到256维向量speaker_embedding,和text_embedding在最开始concat,人数根据speaker_datasets
参数数量控制,speaker_proportion
控制训练时抽取data比例。默认每个data目录中都含有train.txt -
multi_mode_1-4,use_attention_embedding
是否使用不同的concat的位置,无明显效果。 -
use_spectral_subtract
是否预处理时额外提取共振峰频率等信息。供给配合use_harmonics_priority
参数在loss中给共振峰频段增加loss权重,针对单个效果不好的音频有效果(百度dyy) -
use_freq_priority
是否增加<3000hz部分的权重(降噪),无明显效果 -
use_sdtw_loss
是否使用soft dtw loss,训练太慢,无明显效果 -
use_pinyin
是否用声韵母进行编码,无明显效果 -
abc_mode
是否增加英文音标编码(支持中英文) -
outputs_per_step
控制每步输出帧数(调整过=2,3效果不明显) -
use_location
是否使用location-sensitive-attention,(对齐提升效果明显) -
use_regular_loss
对loss进行L2正则,无明显效果 -
use_zone_rnn
替换decoder为zoneout-rnn,多人模型时有效果 -
use_sos
在每个句子开头增加sos符号避免开始对齐错误,对齐效果提升 -
inference_mask
是否在对齐出错情况下强制改变注意力,max_sos_wait_time,word_pron_time,min_focused_attention_value,raise_attention_to
,对齐效果提升 -
inv_pre_emphasis
是否过滤合成波形时某些值(降噪),无明显效果 -
num_mels,num_freq
合成mel维度和线性频率刻度(调整过=160,2049效果不明显) -
jinlong_vocoder,SPSI_GF_vocoder
三种vocoder的选择,默认用GF,(音质提升效果明显) -
ctc_loss
初始loss太大,无法收敛,pass。 - 可以适当调节model/tacotron.py中learning rate(多人模型时调高,单人时调低)
- 可以使用evaluation.py测试对齐准确率
- 可以使用save_model.py导出pb模型
- 尝试gst-tacotron,可以影响发音韵律,但是效果不好,影响本身tts效果,原论文中是有多人语料。
-
-
Vocoder
- bfs18/nsynth_wavenet,蒸馏,Teacher网路可训练收敛。
- 速度:2GPU;1.4sec/step
- 进展:400k-静音部分大量噪音,pass
- andabi/parallel-wavenet-vocoder,蒸馏,无法收敛,pass。
- r9r9/wavenet_vocoder,自回归,demo800k效果很好。
- 速度:2GPU;0.91sec/step
- 进展:350k-语义不对;510k-语义对,略抖;1022k-抖改善-语义对,对接mel中;ing
- dhgrs/UniWaveNet,云之声uni-wavenet,demo1000k也有电音,可训练收敛。
- 速度:1GPU;1.86sec/step
- 进展:370k-有少量电音;继续训练无改善;pass
- ksw0306/ClariNet,百度ClariNet,demo不知道多少步Teacher效果可以,Student有底噪。
- 速度:1GPU;1sec/step;
- 进展:161k-Teacher有少量噪音;330k-Teacher噪音变小;680k-Teacher底噪无法消除;pass
- dhgrs/ClariNet:文档中student-sample也有底噪。
- 速度:2GPU;0.5sec/step;STU-2.6sec/step
- 进展:500k-Teacher有少量底噪;170k-Student底噪比较小;对接mel中;ing
- ksw0306/FloWaveNet,流生成,论文1000k效果较好
- 速度:1GPU;1.4sec/step
- 进展:124k有颤音;240k-颤音明显变小;484k-颤音基本消除,对接mel中;ing
- 对接:集成在fw-tacotron分支中,使用preprocess预处理数据(FW所需的audio-filepath加在最后),两个模型共用真实mel训练。合成todo
- NVIDIA/waveglow,流生成,论文580k效果较好
- 速度:1GPU;2.8sec/step
- 进展:58k-质量差;130k-质量明显改善,轻微抖音;250k-基本消除,效果跟FW相当,用原版tacotron-2对接mel中;ing
- 对接:修改原版tacotron-2支持中英文编码,todo
- dhgrs/waveglow,训练太慢,已用NVIDIA官方版,pass。
- bfs18/nsynth_wavenet,蒸馏,Teacher网路可训练收敛。
未尝试
- DeepVoice3:文档中sample效果一般,音色迁移(speaker adaptation)根据issue里反馈并不可行,pass
- WaveRNN:sample还行,todo
- TSNetVocoder:todo
- SING:一种乐器音调生成模型,理论上可以作为vocoder,todo
参考
- Google论文&demo
数据集
kdxf-6,bb-10,bd-4,azure-3
Speaker_id | 说话人 |
---|---|
0 | bb-jiaojiao |
1 | bb-nannan |
2 | bb-xiaojun |
3 | bb-ming |
4 | bb-lele |
5 | bb-ranran |
6 | bb-guozi |
7 | bb-ake |
8 | bb-xingzai |
9 | bb-sunwukong |
10 | kdxf-xiaohou |
11 | kdxf-xiaoru |
12 | kdxf-xiaoxin |
13 | kdxf-xiaolin |
14 | kdxf-xiaowanzi |
15 | kdxf-xiaoma |