Silero: качественный, быстрый и доступный синтез речи для всех
В синтезе речи много чего происходит: на рынке есть большое число тулкитов, закрытых коммерческих решений за АПИ и стартапов из кремниевой долины, пытающихся сделать очередные аудио «дипфейки».
Но при этом почему-то совсем нет готовых открытых решений, которые бы удовлетворяли минимальным критериям адекватности:
- Естественная речь и большая библиотека готовых голосов на пяти языках;
- Радикальная простота и минимализм, минимум зависимостей;
- Высокая скорость работы на на 1 потоке / ядре процессора;
- Не требует наличия видеокарты и команды специалистов;
- Не зависит от внешних сервисов и экосистем;
- Поддержка синтеза в разном качестве;
- Наличие уникальных голосов;
Мы учли все эти моменты и бесплатно подарили комьюнити свое открытое некоммерческое решение. Да вы не ослышались. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на заранее выбранных примерах. Вы просто можете оценить и попробовать все сами пройдя по ссылкам ниже.
Качество и примеры
Для оценки качества мы действовали просто:
- Cинтезировали примерно 200 новых файлов на одного спикера;
- Смешали с оригинальными аудио тех же спикеров (по сути сделав двойной слепой тест);
- Дали группе из 24 людей для оценки качества звучания по пятибалльной шкале;
- Для 8 килогерц и 16 килогерц оценки собирали по отдельности;
Можно самому попробовать наш синтез в тетрадочке по этой ссылке:
Детальный анализ распределений из 37 403 оценок, которые поставили наши асессоры показал, что:
- В 60% случаев люди считают, что синтез не хуже оригинала по естественности;
- 8 килогерц немного помогает скрыть ошибки синтеза;
- В 66% случаев люди не слышат разницы между аудио с частотой дискретизации в 8 килогерц и 16 килогерц;
Бенчмарки по Скорости
Скорость и прожорливость по ресурсам является следующей важной характеристикой моделей. Для оценки скорости мы считаем такие метрики:
- RTF (Real Time Factor) - какую долю длительности аудио занимает синтез;
- RTS = 1 / RTF (Real Time Speed) - насколько синтез "быстрее" реального времени, величина обратная RTF;
Мы снимали метрики на двух устройствах с помощью встроенных в PyTorch 1.8 утилит:
- CPU - Intel i7-6800K CPU @ 3.40GHz;
- GPU - 1080 Ti;
Для модели на 16 килогерц получаются такие показатели (модель на 8 килогерц примерно на 25% быстрее):
Автор статьи
Голоса и языки
На данный момент мы выложили 20 моделей:
- 10 голосов на 5 языках;
- Для каждого спикера две модели - для 8 и 16 килогерц;
- Языки - русский (6 голосов), английский (1), немецкий (1), испанский (1) и французский (1);
Особенностью русских моделей является то, что сейчас они требуют ручной простановки ударения и буквы ё, но в следующих релизах этот недостаток будет исправлен и модели сами научатся ставить ударения и буквы ё.
Основные ограничения и подводные камни
В процессе тестирования моделей пользователи выявили следующие ограничения:
- Модели (пока еще) не умеют сами ставить ударения и букву ё. Это будет в следующем релизе;
- Модели не умеют в нормализацию чисел, написанных цифрами, и дат. Это сделано намеренно, так как по нашему мнению синтез не должен этого уметь и это задача "middleware" и мы не планируем включать это в синтез;
- Синтез не принимает целые книги или абзацы. В него нужно кормить по одному предложению. Но алгоритмы, на которых он основан, умеют работать с батчами данных, что по сути превращает недостаток в преимущество;
- Знаки препинания влияют на интонации, в конце предложения лучше ставить точку. Мы не планируем это менять;
Философия, Лицензия и Мотивация
Как авторы моделей, мы считаем следующие правила использования моделей справедливыми:
- Все модели нельзя использовать в коммерческих продуктах;
- Репозиторий опубликован под лицензией GNU A-GPL 3.0. На бумаге это не запрещает коммерческое использование, но по факту тяжело отыскать коммерческие решения с полностью открытым исходным кодом (чего требует эта лицензия);
- Если ваша цель - некоммерческое использование наших моделей во благо общества — мы будем рады помочь вам с интеграцией;
- Если вы планируете использование наших моделей в личных целях, то делитесь результатами своих экспериментов в репозитории;
Дальнейшая Работа
Мы планируем постоянно развивать и улучшать свое решение, в частности:
- Добавить автоматическую простановку ударения и буквы ё;
- Добавить поддержку изменения скорости и высоты голоса;
- Ускорить все в целом еще в 3-4 раза (а может и даже в 10);
- Возможно даже получится научить говорить наших спикеров на иностранных для них языках или проявлять эмоции;
Скороговорки
И в качестве бонуса, немного скороговорок.
Русский язык:
Другие языки:
Имхо, лучшее, что есть сейчас на рынке опенсурс синтеза речи
Если закрыть глаза на некоторые моменты по качеству (и не хватает ударений и буквы ё), то может и не только опенсурс, а вообще
Комментарий недоступен
Вот тут есть что то около 700 синтезированных голосов, https://apihost.ru/voice наверно сейчас это самая большая говорилка. Авторы добавьте себя в этот сервис, в бесплатную версию, думаю после этого будет взрыв популярности.
Давно про эту Софию ничего не слышно
А можно подробнее о том, как потестировать на гугл.коллаб? (не технарь и что-то совсем запутался)
Писал тут подробнее на эту тему