В нашей прошлой статье про синтез речи мы дали много обещаний: убрать детские болячки, радикально ускорить синтез еще в 10 раз, добавить новые "фишечки", радикально улучшить качество. Сейчас, вложив огромное количество работы, мы наконец готовы поделиться с сообществом своими успехами: Это по-настоящему уникальное и прорывное достижение и мы не собираемся останавливаться. В ближайшее время мы добавим большое количество моделей на разных языках и напишем целый ряд публикаций на эту и смежные темы, а также продолжим делать наши модели лучше (например, еще в 2-5 раз быстрее). Попробовать модель как обычно можно в нашем репозитории и в колабе. Для самых нетерпеливых — вот основные примеры звучания: Update — баг с резким прерыванием речи на паузе уже пофиксили Как обычно, все инструкции можно найти: Вот самый минималистичный пример вызова модели: Спикеров и принимаемые символы для каждой модели можно посмотреть в свойствах модели model.speakers и model.symbols. Как обычно, больше примеров вы можете найти по ссылкам в репозитории или в статье ниже. Все дальнешие примеры мы будем приводить без импортов для экономии места. С недавнего времени у моделей также появился своё pip-пакет, аналогичный по функционалу импорту через torch.hub. Перечислим еще раз все нововведения вместе и более подробно пройдемся по каждому из них ниже с примерами: Тут особо нечего сказать, наши модели просто стали в 10 раз быстрее. Скорость мы измеряем в секундах сгенерированного аудио в секунду, ограничивая число потоков в PyTorch (1 ядро = 2 потока) на процессоре Intel.  Так например, скорость V3 модели для 8 kHz в 50 секунд аудио в секунду означает, что аудио длиной в 5 секунд будет сгенерировано примерно за 100 ms. Так как на CPU задержка и скорость напрямую зависят от длины генерируемого аудио, новые цифры указаны в виде интервалов. Скорость выходит на плато примерно на длительности аудио в 5 секунд. Задержка, понятно, линейно зависит от длины генерируемого аудио. Тут интересно также посмотреть на задержку — её легко посчитать в уме, просто поделив нужную длину аудио на скорость. По ряду технических причин, наши модели теперь не принимают списки текстов и не работают с батчами. В ближайшем будущем мы уже планируем (и самое главное — знаем как) ускорить модель еще в 2-5 раз. Также вышло снизить размер модели в 2 раза, но мы особо этим не занимались целенаправленно. Пока есть определенные проблемы с квантизацией и конвертацией в ONNX, но в теории минимальный возможный размер модели находится в районе 5-10 мегабайт. Вы всегда можете помочь нам профинансировать соответствующие исследования. Тут также важно обратить внимание, что теперь все спикеры на одном языке будут жить внутри одной модели. В этот раз мы готовы представить 4 высококачественных голоса, послушать можно по ссылке: Для добавления нового голоса xenia нам потребовалось записать всего лишь 2 часа аудио, и это не предел. Мы можем синтезировать аудио с частотой дискретизации на выбор: 8, 24 или 48 килогерц. Предсказуемо, скорость работы моделей линейно меняется в зависимости от этого параметра. Небольшая ремарка — качество модели для 8 килогерц сейчас не максимально возможное, мы это поправим при ускорении моделей. Раньше у моделей возникали проблемы при работе с текстами длиннее 140 символов — сейчас это ограничение снято. Также для удобства мы добавили поддержку самых важных SSML тегов: Более подробную документацию по тегам можно найти тут. Основные теги на примерах: Update — баг с резким прерыванием речи на паузе уже пофиксили Мы добавили возможность авторасстановки ударений ещё в прошлой версии, но в новом релизе стало доступно явно управлять флагами ударения и простановки буквы ё: Вручную ударение, как и раньше, можно проставлять с помощью символа +. Вот примеры — нет ударения вовсе, автоматическое ударение, автоматическое ударение + пара правок: Единственная загвоздка состоит в том, что мы смогли добиться точности только в 80% в простановке ударения на омографах, и поэтому новая версия модели не вошла в этот релиз. Наша цель — точность на уровне 90-95%. Также в следующей версии мы увеличим словарь словоформ до 4 миллионов штук. Среди дополнительных фишечек есть: Также можно послушать как работает перенос интонаций на известных и неизвестных спикерах: Понятно, что можно сделать генеральную модель, которая бы хорошо работала на всем, но мы пока не ставили такой задачи. Часто после какой-то очередной пиар акции очередного инвестиционного стартапа, мне пишут люди, мол смотрите какие классные вещи люди делают.  На практике оказывается, что кто-то просто скопировал код самой модной статьи, прикрутил к нему CLI и теперь люди могут по-настоящему делать качественные, быстрые и демократичные модели! В реальности такие решения долго тренируются, спроектированы на работу на карточках по типу RTX 3090 — A100 — V100 (то есть, имеющих более 16 GB VRAM) и уступают уже существующим решениям. Вот недавно мы сравнивали новую модную модель VITS: Самое печальное, что зачастую такие статьи написаны таким образом, чтобы нельзя было понять, какие элементы моделей на самом деле "тащат". Отчасти поэтому новые релизы занимают столько времени.  Мы не преследуем идеологию перепродажи чужих наработок и воздуха инвесторам и поэтому мы делаем максимально простые, быстрые и максимально публичные компактные решения. Мы не будем останавливаться на достигнутом, паниковать и следовать токсичным и самоуничижительным трендам. Мы гордимся нашей командой и тем, что мы сделали по-настоящему уникальный продукт. Мы верим, что только так мы все вместе можем бороться с игом корпораций, особенно иностранных. Именно по синтезу, дальше мы планируем: Machine Learning / Data Science