{"id":13466,"url":"\/distributions\/13466\/click?bit=1&hash=891d339b00b86120568ea8e4296ded112a42876a976e2fd335004400f35cbd30","title":"\u0427\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u044f\u0442, \u0447\u0438\u0442\u0430\u044e\u0442 \u0438 \u043a\u0443\u0434\u0430 \u0445\u043e\u0434\u044f\u0442 \u0432\u0430\u0448\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u044b?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"24bb823c-c595-5fc8-be0f-fba9e89237c2","isPaidAndBannersEnabled":false}
Трибуна
Alexander Veysov

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

Робот София 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% быстрее):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
13 комментариев
Написать комментарий...
borodutch

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

Ответить
Развернуть ветку
Alexander Veysov
Автор

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

Ответить
Развернуть ветку
Аккаунт заморожен

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

Ответить
Развернуть ветку
Аккаунт заморожен

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

Ответить
Развернуть ветку
Денис Молотов

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

Ответить
Развернуть ветку
kir.romanov

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

Ответить
Развернуть ветку
Макс Довольный

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

Ответить
Развернуть ветку
Alexander Veysov
Автор

Писал тут подробнее на эту тему

Ответить
Развернуть ветку
Yuriy Kovalev

А не могли бы вы поподробнее рассказать про лицензию? То есть, эта штука в коммерческих продуктах не может быть внедрена, или её можно как-то там использовать?

Ответить
Развернуть ветку
Alexander Veysov
Автор

Лицензия есть в репозитории проекта
На практике это означает, что использование голосов из репозитория возможен только если код вашего решения полностью публичен и имеет такую же лицензию (или де-факто вы используете для себя, не коммерчески)
Если нужен свой уникальный голос в коммерческий проект - то обращайтесь напрямую в телеграме, контакты думаю легко найти 

Ответить
Развернуть ветку
Michael Toderashco

Авторам респект! Я давно искал что-то адекватное

Ответить
Развернуть ветку
Рушан Натфуллин

Круто!

Ответить
Развернуть ветку
Alexander Veysov
Автор

Добавили 4 уникальных голоса для языков малых народов России и СНГ - https://t.me/silero_news/200

Ответить
Развернуть ветку
Читать все 13 комментариев
null