Silero: качественный, быстрый и доступный синтез речи для всех

Робот София Silicon Valley TV series
Робот София Silicon Valley TV series

В синтезе речи много чего происходит: на рынке есть большое число тулкитов, закрытых коммерческих решений за АПИ и стартапов из кремниевой долины, пытающихся сделать очередные аудио «дипфейки».

Но при этом почему-то совсем нет готовых открытых решений, которые бы удовлетворяли минимальным критериям адекватности:

  • Естественная речь и большая библиотека готовых голосов на пяти языках;
  • Радикальная простота и минимализм, минимум зависимостей;
  • Высокая скорость работы на на 1 потоке / ядре процессора;
  • Не требует наличия видеокарты и команды специалистов;
  • Не зависит от внешних сервисов и экосистем;
  • Поддержка синтеза в разном качестве;
  • Наличие уникальных голосов;

Мы учли все эти моменты и бесплатно подарили комьюнити свое открытое некоммерческое решение. Да вы не ослышались. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на заранее выбранных примерах. Вы просто можете оценить и попробовать все сами пройдя по ссылкам ниже.

Качество и примеры

Для оценки качества мы действовали просто:

  • Cинтезировали примерно 200 новых файлов на одного спикера;
  • Смешали с оригинальными аудио тех же спикеров (по сути сделав двойной слепой тест);
  • Дали группе из 24 людей для оценки качества звучания по пятибалльной шкале;
  • Для 8 килогерц и 16 килогерц оценки собирали по отдельности;
| Спикер | Оригинал | Синтез | Отношение | | ------------- | ---------- | ---------- | --------- | | aidar_8khz | 4.67 (.45) | 4.52 (.55) | 96.8% | | baya_8khz | 4.52 (.57) | 4.25 (.76) | 94.0% | | kseniya_8khz | 4.80 (.40) | 4.54 (.60) | 94.5% | | aidar_16khz | 4.72 (.43) | 4.53 (.55) | 95.9% | | baya_16khz | 4.59 (.55) | 4.18 (.76) | 91.1% | | kseniya_16khz | 4.84 (.37) | 4.54 (.59) | 93.9% |

Также можете послушать примеры ниже (нативный аудио-альбом на VC у меня почему-то выдает ошибки при загрузке) и большое количество примеров в папочках по ссылкам (1 2 3 4 5 6):

Можно самому попробовать наш синтез в тетрадочке по этой ссылке:

Детальный анализ распределений из 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% быстрее):

Оценка скорости моделей<br /> Автор статьи<br />
Оценка скорости моделей
Автор статьи

Голоса и языки

На данный момент мы выложили 20 моделей:

  • 10 голосов на 5 языках;
  • Для каждого спикера две модели - для 8 и 16 килогерц;
  • Языки - русский (6 голосов), английский (1), немецкий (1), испанский (1) и французский (1);

Особенностью русских моделей является то, что сейчас они требуют ручной простановки ударения и буквы ё, но в следующих релизах этот недостаток будет исправлен и модели сами научатся ставить ударения и буквы ё.

Основные ограничения и подводные камни

В процессе тестирования моделей пользователи выявили следующие ограничения:

  • Модели (пока еще) не умеют сами ставить ударения и букву ё. Это будет в следующем релизе;
  • Модели не умеют в нормализацию чисел, написанных цифрами, и дат. Это сделано намеренно, так как по нашему мнению синтез не должен этого уметь и это задача "middleware" и мы не планируем включать это в синтез;
  • Синтез не принимает целые книги или абзацы. В него нужно кормить по одному предложению. Но алгоритмы, на которых он основан, умеют работать с батчами данных, что по сути превращает недостаток в преимущество;
  • Знаки препинания влияют на интонации, в конце предложения лучше ставить точку. Мы не планируем это менять;

Философия, Лицензия и Мотивация

Как авторы моделей, мы считаем следующие правила использования моделей справедливыми:

  • Все модели нельзя использовать в коммерческих продуктах;
  • Репозиторий опубликован под лицензией GNU A-GPL 3.0. На бумаге это не запрещает коммерческое использование, но по факту тяжело отыскать коммерческие решения с полностью открытым исходным кодом (чего требует эта лицензия);
  • Если ваша цель - некоммерческое использование наших моделей во благо общества — мы будем рады помочь вам с интеграцией;
  • Если вы планируете использование наших моделей в личных целях, то делитесь результатами своих экспериментов в репозитории;

Дальнейшая Работа

Мы планируем постоянно развивать и улучшать свое решение, в частности:

  • Добавить автоматическую простановку ударения и буквы ё;
  • Добавить поддержку изменения скорости и высоты голоса;
  • Ускорить все в целом еще в 3-4 раза (а может и даже в 10);
  • Возможно даже получится научить говорить наших спикеров на иностранных для них языках или проявлять эмоции;

Скороговорки

И в качестве бонуса, немного скороговорок.

Русский язык:

Другие языки:

1919
14 комментариев

Имхо, лучшее, что есть сейчас на рынке опенсурс синтеза речи

3
Ответить

Если закрыть глаза на некоторые моменты по качеству (и не хватает ударений и буквы ё), то может и не только опенсурс, а вообще

3
Ответить

Комментарий недоступен

1
Ответить

Вот тут есть что то около 700 синтезированных голосов, https://apihost.ru/voice наверно сейчас это самая большая говорилка. Авторы добавьте себя в этот сервис, в бесплатную версию, думаю после этого будет взрыв популярности.

1
Ответить

Давно про эту Софию ничего не слышно

1
Ответить

А можно подробнее о том, как потестировать на гугл.коллаб? (не технарь и что-то совсем запутался)

1
Ответить