(поскольку пост от 12 декабря на 4пда был сегодня удален в теме о tts, то решил разместить здесь)
Это пример решения по обучению нейросети синтезу речи по вводимым текстовым отрывкам, которое можно опробовать самостоятельно, использую домашний или офисный сервер.
Шаг 1
- Установить Torch
Torch - это Open-Source научная вычислительная среда с широкой поддержкой алгоритмов машинного обучения.
В основе Torch лежат популярные нейронные сети и библиотеки оптимизации, которые просты в использовании и обладают максимальной гибкостью при реализации сложных топологий нейронных сетей. Вы можете создавать произвольные графы нейронных сетей и эффективно распараллеливать их на процессорах и графических процессорах.
Шаг 2
- Установить Torch-rnn
Это модуль для Torch, который предоставляет высокопроизводительные, многократно используемые модули RNN и LSTM, и использует эти модули для моделирования на уровне символов, аналогичного char-rnn. https://github.com/jcjohnson/torch-rnn/
Системные требования:
Torch и его модули устанавливаются в Linux-систему;
Сама утилита-конвертер: написана и работает под Windows.
Чем мощнее сервер, тем быстрее идет обработка вводимых отрезков. (Второе видео является результатом более 300 часов обучения голосом на сервере автора. Использовались 8-битные оцифровки голоса).
Нейро-синтез речи своими руками
Добавлено: 01 янв 2019 18:16
newport
Всех с новым годом, народ.)
Отправлено спустя 1 день 15 часов 37 минут 46 секунд:
реализации/архитектуры могут быть разные, и их уже довольно много есть на Гитхабе.
к примеру, в одной из них удалось обучить сеть (на машине Intel Core i5) за 15 часов на основе 5 часов аудио-записей.
ниже примеры:
TTS Example_ это был солнечный февральский день.mp3
(85.71 КБ) 674 скачивания
TTS Example_ раз, два, три, четыре, пять, вышел зайчик погулять.mp3
(39.59 КБ) 676 скачиваний
TTS Example_ Волга впадает в Каспийское море.mp3
(164.08 КБ) 646 скачиваний
TTS Example_ в школе надо было учить математику.mp3
(37.14 КБ) 658 скачиваний
TTS Example_ в Петербурге всегда хорошая погода.mp3
newport, Есть ли шанс, что в ближайшем будущем, пара-тройка лет, это станет юзерфрендли решением. Скачал инсталятор, выбрал голос (коэффициенты обученной сети) с сайта или любительские с форума, и получил SAPI5 озвучку?
И самое главное, с ошибками внутрифразовой интонации (изменения высоты тона, темпа речи (ускорении и замедлении в протекании речи), силы звучания (интенсивности речи), внутрифразовых пауз) не чаще, чем 1 раз на час озвучки.
И самое главное, с ошибками внутрифразовой интонации (изменения высоты тона, темпа речи (ускорении и замедлении в протекании речи), силы звучания (интенсивности речи), внутрифразовых пауз) не чаще, чем 1 раз на час озвучки.
Касательно естественности речи моё мнение таково, что построенные модели позволяют достигать достаточно достоверной имитации. Но это все-таки именно имитация. Имитационные модели используются и в классических синтезаторах. О настоящей безошибочной модели, повторяющей человеческую речь со всеми оттенками, сейчас речи быть не может, т.к. эта проблема полностью входит в круг задач искусственного интеллекта.
Это моё мнение, а как это повернется, и каковы сроки, зависит от активности инженерии.
Есть ли шанс, что в ближайшем будущем, пара-тройка лет, это станет юзерфрендли решением. Скачал инсталятор, выбрал голос (коэффициенты обученной сети) с сайта или любительские с форума, и получил SAPI5 озвучку?
Здесь так-же - исключительно только мои гипотезы: я думаю, что по аналогии с языками программирования и средами разработок, имеющиеся на сегодня средства позволяют повторять эксперименты дома, но создание tech-end становится задачей всех участников рынка. Другими словами, все могут делать свои дистрибутивы и продавать, как и любой другой продукт.
О настоящей безошибочной модели, повторяющей человеческую речь со всеми оттенками, сейчас речи быть не может
Используемый мной классический движок, интонационных ошибок уровня предложения не допускает вообще. Одна на несколько книг. Однако естественность произношения отдельного слова, хромает. Нужна привычка))). Прослушав ваши примеры, особенно после разбора в редакторе на отдельные слова, увидел как раз обратное. Слово звучит лучше, но фраза, это не просто проблема, а полный кошмар.
Вот и поинтресовался, каков прогноз. Будет ли это чистая нейросеть (уж извините, фраза искусственный интеллект в применении к простейшим рефлексам меня раздражает) или слияние с классикой, не важно. Так понял, что оценить эти перспективы невозможно. Уровень прогноза — рано или поздно, так или иначе.
Кстати, определил когда программу можно назвать интллектом. Когда она, с первого, максимум со второго прохода, сможет определить, какому из книжных персонажей принадлежат каждый из фрагментов текста.
интонационных ошибок уровня предложения не допускает вообще. Одна на несколько книг. Однако естественность произношения отдельного слова, хромает. Нужна привычка))). Прослушав ваши примеры, особенно после разбора в редакторе на отдельные слова, увидел как раз обратное. Слово звучит лучше, но фраза, это не просто проблема, а полный кошмар.
Скиньте ваши примеры, если не сложно. Если мы сравниваем, то давайте сравним примерами достижений, так сказать, и там, и там.
Приведенные мной синтезированные отрезки, кстати, не мои, а Олега Петрова.
Кстати, определил когда программу можно назвать интллектом. Когда она, с первого, максимум со второго прохода, сможет определить, какому из книжных персонажей принадлежат каждый из фрагментов текста.
кстати, здесь не шла речь об искусственном интеллекте. Он упомянут лишь в контексте. Здесь же идет речь о повторяемости естественной речи.
И Вы это ...считаете за....ЗАНАВЕС (это моё личное мнение, человека который прослушал и продолжает ..., ну уж штуку точно)
Дуэль...
Сравнительный тэст:
Любой текст с вашенй стороны(фрагмент) - Вы Ольгой - Я Ивоновской и Яндексовской групой
Жду...
Дуэль...
Нейро-синтез речи своими руками
Добавлено: 14 янв 2019 14:19
Lecron
wasyaka, А Ивона тут причем? Они все, включая Колю и прочих тань, плюс-минус одинаковые и на любителя. Поэтому ни соревноваться, ни тем более переубеждать не стану. Сравнение с новым приниципом, нейросеточной озвучкой. Где произношение отдельных слов мне нравится больше, но фразовые интонации..., даже на таких коротких примерах, уже удивляют. Как они себя поведут на осмысленном тексте на пару абзацев, со сложноподчинеными, вопросительными, восклицательными предложениями и прочими диалогами, вообще страшно.
Примеров работы Loquendo Olga и других движков, в сети вагон и маленькая тележка.
Но для достоверности
Эмм.... ...
Я прослушал. А в чем собственно преимущество вашего, так сказать, решения?
Мне вообще знакомы классические tts, и чего-либо нового из вашего примера я не услышал, извиняюсь.
Нейро-синтез речи своими руками
Добавлено: 20 янв 2019 17:19
Lecron
newport, А ничего нового вы и не должны были услышать. Просто для сравнения, нужны более длительные фрагменты нейроTTS. Предложений, абзацев, диалогов. Сейчас, вы можете доказывать, что никаких ошибок в его фразовых интонациях вы не заметили. Может оно так и есть. Но я слышу совсем другое.
Поживем увидим. Тем более, что основной мой вопрос как раз и был, про когда пользователь не гик, сможет более плотно протестировать возможности.
Сейчас, вы можете доказывать, что никаких ошибок в его фразовых интонациях вы не заметили. Может оно так и есть. Но я слышу совсем другое.
Поживем увидим. Тем более, что основной мой вопрос как раз и был, про когда пользователь не гик, сможет более плотно протестировать возможности.
Lecron, чтобы что-либо тестировать, лучше все-же немного ознакомиться с опубликованными материалами по тестируемому предмету. Вы зайдите по ссылке, если есть желание, и почитайте внимательно хотя бы начало статьи. Протестируйте два слоя, т.к. в том примере разобран именно этот уровень - уровень слова.
То, что вы называете фразовыми интонациями, есть уровень предложений. А следующий уровень это уровень абзацев и их совокупностей. И чтобы говорить о них, желательно иметь хотя бы ограниченное представление о модели на уровне слов.
Набор тональных огибающих уровня предложений, если изображать графически, достаточно богат, а на уровне абзацев их еще больше. Поэтому все же прочтите и проделайте сначала эту, более простую настройку, чтобы вам было легче подступиться к настройке предложений.
Периодически сталкиваюсь с проектами в данном направлении. На Хабре за прошлый год две или три статьи было с демками. Пока глухо. Либо качество хромает. Либо скорость — до 0.1х реал-тайма. Либо то и другое вместе. Ничего готового даже для потребителей-новаторов, пока нет. Только для исследований и несистематического озвучивания, для которого таки проще нанять диктора.
Кстати, недавно натыкался на попытку автоматического согласования голоса и текста. Без этого, даже при больших вычислительных ресурсах, толку мало. Слишком много ручной работы для разметки. А так, загрузил аудиокнигу(и), загрузил их тексты и вот у вас сотни часов корпуса. Обучай, не хочу.
Нейро-синтез речи своими руками
Добавлено: 25 фев 2021 14:26
Primkray
В продолжение темы:
"Украинский стартап Respeecher научился практически идеально синтезировать голос. У ребят уже есть контракт с голливудской студией из пятёрки кинокомпаний фабрики грёз."
Украинский стартап Respeecher научился практически идеально синтезировать голос.
Скорее не синтезировать, а перекрашивать. Имеете голос Брежнева, сами говорите в микрофон, из колонок звучит сказанное, но уже голосом Брежнева. Плюс неизвестно, насколько обработка реалтаймовая. Для студий потратить 1 час на минуту озвучки — не проблема.
Чтобы оффлайн использовать...
Все, что Вы привели в качестве примера, это же корпоративные разработки, кроме "утюга", а "домашние" разработки, где они, как из можно использовать?
SAPI удобнее, но для пакетной озвучки непринципиально. Используя сейчас balcon (консольную Балаболку) я вообще не знаю, что там под капотом, и появись некий speechcon, переключится не составит проблем. Лишь бы был хоть сколько-то готовый пакет, а не конструктор "всё сам" — найди обучающий датасет сам, настрой параметры обучения сам, обучи сетку сам, используй готовую модель сам, сам, сам, сам.
В целом, установить на свой ПК удалось с минимумом камланий. Повторить путь вообще без затруднений. Проверялось на Windows 10 x64, Python 3.9 x64, only CPU
Зависимостей минимум. Установка:
До Яндекс голосов может и не дотягивает, но качество мне пока понравилось. На длинных текстах еще не проверял.
aidar_16khz.mp3
(33.82 КБ) 37 скачиваний
natasha_16khz.mp3
(24.79 КБ) 39 скачиваний
kseniya_16khz.mp3
(30.2 КБ) 40 скачиваний
Минусы:
- нужна расстановка ударений для каждого слова. Без них говорит вроде правильно, но как с кашей во рту.
aidar_16khz.mp3
(34.1 КБ) 37 скачиваний
- baya, irina теряет слова. Например в 'С+олнечный кр+уг, н+ебо вокр+уг.', после запятой бэ-мэ.
- меееедленно. На 4 ядрах i5-4440 на 44 секунды результата потрачено 28 секунд машинного времени. Серьезные GPU, судя по статье, дают прирост раз в 30. Будет ли толк от интеловой интеграшки, пока не знаю.
- Текст надо передавать по одному предложению. Паузы между предложениями у каждого голоса разные.
В целом, буду экспериментировать дальше. Знать бы что книжка точно интресная, а не будет заброшена после десятка-другого страниц, можно было бы и перейти, а пока — не знаю.
Нейро-синтез речи своими руками
Добавлено: 02 апр 2021 14:28
Lecron
На маленьких фрагментах впечатление совсем иное, поэтому решил сделать побольше.
Впечатления. Ксения — голос классный, но непонятные паузы и проглатывания, рвут восприятие текста. Наташа — голос похуже, но восприятие ровное. Айдар — голос картавый, много рычащих, восприятие излишне монотонное.
kseniya.mp3
(724.78 КБ) 40 скачиваний
natasha.mp3
(661.54 КБ) 37 скачиваний
aidar.mp3
(698.52 КБ) 40 скачиваний
Вот бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколько-нибудь развязности, какая у Балтазара Балтазарыча, да, пожалуй, прибавить к этому ещё дородности Ивана Павловича — я бы тогда тотчас же решилась. :-) А пока наверное останусь на Ольге.
Loquendo Olga.mp3
(1.22 МБ) 37 скачиваний
Нейро-синтез речи своими руками
Добавлено: 27 апр 2021 22:54
speeck
Lecron, тестировали дальше?
Нейро-синтез речи своими руками
Добавлено: 28 апр 2021 12:44
Lecron
speeck, А куда дальше-то? Попробовал конвертировать сетку в OpenVINO для работы на встроенной видюхе — навыков не хватило, слишком чужая для меня тема. В нынешнем варианте, для работы синтез не пригоден. Ни по скорости, ни по стабильности результата, ни по простоте использования. Так, побаловаться, оценить прогресс.
Возможно ли сделать, чтобы - examples_tts.py копировал по 140 символов из файла книга.txt и записывал файлы 1.wav и 2 wav и т.д.?
В принципе не сложно. Но какой в этом смысл? Движкам надо передавать осмысленные фразы, желательно законченные предложения. А 140 символов, будут попадать на середнину слов.
speech, Так все современные экспериментальные движки основаны именно на нем. Сам по себе он лишь заготовка, которую нужно прилично обточить по вкусу напильником. А еще лучше полноценный станочный парк привлечь :)