SuperClonica против Supertonic: та же модель, быстрее и чище
Одна и та же модель Supertonic 3, те же голоса, тот же текст и тот же сид. Мы озвучили чатовые фразы на русском, английском и немецком стоковым Supertonic и SuperClonica и сравнили скорость и звук.
Коротко: SuperClonica в 1,7 раза быстрее на видеокарте и в 1,6 раза на процессоре, начинает говорить через 0,08 с вместо полсекунды, убирает фон в паузах и намного реже обрывает концовки. Ниже замеры, случаи, где сток лучше, и все записи, чтобы вы послушали сами.
Скорость
Оба движка работали в одном процессе и шли по фразам поочерёдно, меняя порядок на каждой фразе. Так фоновая нагрузка на компьютере замедляет обоих одинаково. Каждый вызов получал новый сид, как в чате, где каждая фраза новая. Движки созданы заранее и прогреты.
На видеокарте ускорение дают CUDA-графы: вся модель записывается один раз и потом запускается одной командой. На процессоре модели переписаны под многопоточный расчёт. SuperClonica оказалась быстрее на всех 10 фразах на видеокарте и на всех 24 фразах на процессоре.
| Supertonic | SuperClonica | |
|---|---|---|
| Видеокарта, медиана на фразу | 202 мс | 117 мс |
| Видеокарта, все 10 фраз подряд | 2,03 с | 1,19 с |
| Процессор, медиана на фразу | 855 мс | 530 мс |
| Процессор, 24 фразы на 8 языках подряд | 22,03 с | 14,39 с |
Звук
Модель одна, поэтому голос и интонация совпадают. Разница в том, что происходит вокруг слов: тишина по краям, шум в паузах и случайные звуки, которые модель иногда добавляет.
На графике одна фраза на общей шкале времени. Сток держит полсекунды тишины до первого слова и больше полсекунды после последнего, в SuperClonica остаётся 0,08 и 0,2 с, поэтому речь начинается раньше. Фон в паузах между словами тоже убран.
| На 10 фразах из примера | Supertonic | SuperClonica |
|---|---|---|
| Тишина до первого слова (медиана) | 0,50 с | 0,08 с |
| Тишина после последнего слова (медиана) | 0,63 с | 0,20 с |
| Общая длина 10 файлов | 37,6 с | 30,0 с |
| Фон в паузах между словами (медиана, к пику) | −48 дБ | −92 дБ |
Что показывают проверки на тысячах генераций
Десять фраз — это пример. Ниже результаты наших гораздо больших прогонов.
- Лишние звуки в конце фразы. Модель иногда дописывает после последнего слова щелчок, вдох, гул или лишний слог. В двух прогонах на 1800 и 1392 фразах (12 и 18 языков, распознавание Whisper) таких концовок было 27 и 26. После чистки SuperClonica осталось 0 и 3.
- Слова не срезаются. Чистка сверяется с сырым выходом модели фонемным распознавателем. На последних версиях это больше 25 000 генераций на 30+ языках, подтверждённых срезов настоящей речи 0.
- Меньше запинок на длинном тексте. SuperClonica режет текст на куски до 160 символов по естественным паузам, сток режет по 300. Повтор слова на кусках до 160 символов случился 1 раз на 1800 генераций, на кусках 200–290 символов — в 1–4% случаев.
- Без клиппинга. Модель иногда выдаёт пики выше полной шкалы. Ограничитель с упреждением опускает только эти пики.
Обрывов в конце стало меньше
Модель иногда обрывает последний звук на полной громкости, как будто запись выключили посреди слова. На слух это щелчок или «проглоченный» конец. SuperClonica доводит такие концовки до естественного затухания и при этом сохраняет сам звук.
Чатовые фразы, по 4 стандартных голоса на каждую, одинаковые голос и сид у обоих движков. Обрывом считается падение громкости больше чем на 25 дБ за 2 мс в конце речи. Ниже три примера: конец фразы крупно, пунктир отмечает конец речи.
| Резкий обрыв в конце фразы | Supertonic | SuperClonica |
|---|---|---|
| Русский, 312 озвучек | 37 · 11,9% | 3 · 1,0% |
| Английский, 300 озвучек | 53 · 17,7% | 6 · 2,0% |
| Немецкий, 132 озвучки | 14 · 10,6% | 0 · 0,0% |
| Всего, 744 озвучки | 104 · 14,0% | 9 · 1,2% |
Числа
Сток отдаёт цифры модели как есть. Мелкие числа она читает сама, а на крупных в части языков ошибается. SuperClonica проговаривает числа словами на 27 языках.
Числа проверялись на фразе с 3, 25, 2024 и 150, два сида на язык, распознавание Whisper.
| Язык | Supertonic | SuperClonica |
|---|---|---|
| es | «150» превратилось в кашу на обоих сидах | верно |
| fr | «150» слышится как «105» на обоих сидах | верно |
| de | на одном из сидов «150» стало «eine 50» | верно |
| pl | на одном из сидов «2024» исковеркано | верно |
| ru, uk, it | верно | верно |
Послушайте сами
Все фразы из замера. Под каждой записью её огибающая громкости: тишина до и после речи закрашена.
Где стоковый Supertonic лучше
SuperClonica выигрывает не во всём. Вот компромиссы, о которых мы знаем.
- Запуск. SuperClonica при старте проверяет CUDA-графы на видеокарте и переписывает модели под процессор, поэтому запуск дольше: 9,5 с против 1,2 с на видеокарте и 4,0 с против 0,9 с на процессоре. Движок стоит создать один раз и держать.
- Длинные абзацы на видеокарте. Текст режется на куски до 160 символов, и длинный абзац может выйти чуть медленнее стока; в нашем замере такого не случилось. Зато в нём меньше запинок.
- Числа без падежей. «В 2024 году» читается как «в две тысячи двадцать четыре году», а английские годы звучат как обычные числа. Параметр numbers=False отдаёт цифры модели, как в стоке.
Как мерили
Supertonic 1.3.1 (модель supertonic-3) без обработки против SuperClonica 0.6.23 с настройками по умолчанию. Оба движка работали со скоростью 1,05 и 8 шагами, у каждой фразы одинаковые голос и сид. Видеокарта RTX 5070 Ti, ONNX Runtime GPU 1.26 (10 кругов). Процессор Ryzen 7 5800X, 4 потока у обоих, 24 чатовые фразы на 8 языках (2 круга).
Компьютер был рабочий, с открытыми приложениями. Абсолютные миллисекунды на свободной машине меньше, а соотношение держится. Звуковые метрики взяты из отдельного прогона на видеокарте, тишина и фон считаются по кадрам 10 мс относительно пика фразы.
SuperClonica — независимая производная от Supertonic, а не официальный релиз Supertone. Модель Supertonic 3 распространяется по своей лицензии.