-
Notifications
You must be signed in to change notification settings - Fork 1.9k
TTS Benchmark
Hui Zhang edited this page Mar 21, 2022
·
22 revisions
TTS RTF = 输入音素并合成 samples 的时长 / 合成的语音时长
AM RTF = 输入音素合成 frames 的时长 / (nframe * frame_shift)
Voc RTF = 输入 mel 并合成 samples 的时长 / 合成的语音时长
机器:
8x Tesla A100-80GB, 24 core Intel(R) Xeon(R) Gold 6148, 100Gbps RDMA network(GPU 是在单卡上执行)
python 版本: 3.7.0
测试文件:
测试数据是 csmsc 最后 100 条文本为测试文本,metadata.jsonl
模型:
纯离线推理。
备注:
不包含文本前端(调用 local/synthesize.sh
使用 dump/test/norm/metadata.jsonl
)
paddle 版本: v2.2.2
WaveRNN 的 RTF 与参数
target
和overlap
强相关,默认配置的 GPU RTF 是 55+, CPU RTF 是 65+ , RTF >>1 后续未统计。
GPU:
am only | pwgan | mb_melgan | style_melgan | hifigan | |
---|---|---|---|---|---|
voc only | —— | 0.01776 | 0.00347 | 0.01271 | 0.00599 |
speedyspeech | 0.01239 | 0.03175 | 0.01729 | 0.02591 | 0.01978 |
fastspeech2 | 0.01358 | 0.03191 | 0.01831 | 0.02795 | 0.0218 |
tacotron2 | 0.3249 | 0.34935 | 0.3296 | 0.3408 | 0.33057 |
CPU:
am only | pwgan | mb_melgan | style_melgan | hifigan | |
---|---|---|---|---|---|
voc only | —— | 2.2521 | 0.1958 | 2.9131 | 1.62216 |
speedyspeech | 0.02458 | 2.3261 | 0.2282 | 2.9804 | 1.6730 |
fastspeech2 | 0.07090 | 2.371 | 0.2733 | 3.0314 | 1.7128 |
tacotron2 | 0.67911 | 2.9934 | 0.8752 | 3.6405 | 2.32058 |
Paddle 2.3 优化了 Conv1D 的 unsqueeze 的方式,GPU加速约2x。后续测试中发现cpu也有提升,但不确定是否是这个优化策略提升的。
GPU:
am only | pwgan | mb_melgan | style_melgan | hifigan | |
---|---|---|---|---|---|
voc only | —— | 0.01508 | |||
speedyspeech | |||||
fastspeech2 | |||||
tacotron2 |
CPU:
am only | pwgan | mb_melgan | style_melgan | hifigan | |
---|---|---|---|---|---|
voc only | - | 1.60 | 0.6 | ||
speedyspeech | |||||
fastspeech2 | |||||
tacotron2 |
- GPU 上所有模型 RTF < 1
- speedyspeech + GAN Vocoder 的速度略快于 fastspeech2 + GAN Vocoder ,但是还是差不多的(小数点后两位)
- NAR 模型中 Vocoder 耗时占比高。 AR模型中 AM 耗时占比高。
- speedyspeech/fastspeech2 + mb_melgan CPU 上 RTF < 1
- style melgan CPU上最慢,GPU上第二(PWGAN最慢)(TODO: 看看这是为什么)
- GPU 上 Vocoder RTF mb_melgan < hifigan < style_melgan < pwgan
- mb_melgan CPU 上的 RTF 比其他声码器都小(不同声码器在 GPU 上相差不大,为什么在 CPU 上相差大,是否和具体算子有关?),可能是因为 mb_melgan 只上采样 75 倍,其他模型上采样 300 倍
- CPU RTF 相较于 GPU 慢:mb_melgan 15 倍,pwgan 75 倍,hifigan 88 倍,style_melgan 119 倍
- 从听感上来看,fastspeech2 + mb_melgan > speedyspeech + mb_melgan,CPU RTF 相差也不是太大,综合考虑速度和效果可以优先选择 fastspeech2 + mb_melgan
- 对于 speedyspeech 和 fastspeech2 ,声码器选择 mb_melgan 时, GPU 上主要的耗时是在声学模型,CPU 上的主要耗时是在声码器;对于 tacotron2,GPU 和 CPU 耗时都是主要在声学模型上,因为 tacotron2 本来就没有怎么利用 GPU 的并行功能