-
Notifications
You must be signed in to change notification settings - Fork 1.9k
TTS Benchmark
Hui Zhang edited this page Mar 2, 2022
·
22 revisions
TTS RTF = 推理时长/合成的语音时长
AM RTF = 合成frames的时长 / (nframe * frame_shift)
Voc RTF = 合成samples的时长 / 合成的语音时长
8x Tesla A100-80GB, 24 core Intel(R) Xeon(R) Gold 6148, 100Gbps RDMA network(GPU 是在单卡上执行)
以下测试数据是 csmsc 最后 100 条文本为测试文本,不进行文本前端(调用 local/synthesize.sh
使用 dump/test/norm/metadata.jsonl
),计算的 RTF 的平均值
WaveRNN 的 RTF 与参数 target
和 overlap
强相关,默认配置的 RTF 在 GPU 上是 55+, 在 CPU 上是 65+,完全无法用于实时合成,此处不做计算比较。
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 |
- 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 本身
- 声学模型 + 声码器的 RTF 是与 单独声学模型 和 单独声码器 的 RTF 之和相关的,可以从 单独声学模型 和 单独声码器 的 RTF 看出模型组合时瓶颈到底是声学模型和是声码器