-
Notifications
You must be signed in to change notification settings - Fork 1.9k
TTS Benchmark
TianYuan edited this page Mar 1, 2022
·
22 revisions
声学模型计算 RTF 的方式: 合成 mel 所需时间/(mel 帧长 * hop_size)
以下测试数据是 csmsc 最后 100 条文本为测试文本,不进行文本前端(调用 local/synthesize.sh
使用 dump/test/norm/metadata.jsonl
),计算的 RTF 的平均值
测试环境:
8x Tesla A100-80GB, 24 core Intel(R) Xeon(R) Gold 6148, 100Gbps RDMA network(GPU 是在单卡上执行)
GPU:
am only | pwgan | mb_melgan | style_melgan | hifigan | |
---|---|---|---|---|---|
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 | |
---|---|---|---|---|---|
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 |
综上:
- speedyspeech + GAN Vocoder 的速度略快于 fastspeech2 + GAN Vocoder ,但是还是差不多的(小数点后两位),差距不会大于换 Vocoder 的差距
- speedyspeech/fastspeech2 + mb_melgan 在 CPU 上的 RTF 能 <1,上述两个表格在 GPU 上的 RTF 都是可以 <1 的
- style melgan 不同于 GPU(pwgan 最慢), 在 CPU 上是最慢的(TODO: 有时间可以看看这是为什么)
- GPU 上的声码器 RTF 基本上是 pwgan > style_melgan > hifigan > melgan
- 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 的并行功能
- Tacotron2 与 GAN Vocoder 组合的瓶颈是 Tacotron2 本身