Страница 1 из 1

Нейро-синтез речи своими руками

Добавлено: 15 дек 2018 21:21
newport
(поскольку пост от 12 декабря на 4пда был сегодня удален в теме о tts, то решил разместить здесь)

Это пример решения по обучению нейросети синтезу речи по вводимым текстовым отрывкам, которое можно опробовать самостоятельно, использую домашний или офисный сервер.

Шаг 1
- Установить Torch
Torch - это Open-Source научная вычислительная среда с широкой поддержкой алгоритмов машинного обучения.
В основе Torch лежат популярные нейронные сети и библиотеки оптимизации, которые просты в использовании и обладают максимальной гибкостью при реализации сложных топологий нейронных сетей. Вы можете создавать произвольные графы нейронных сетей и эффективно распараллеливать их на процессорах и графических процессорах.
http://torch.ch/

Шаг 2
- Установить Torch-rnn
Это модуль для Torch, который предоставляет высокопроизводительные, многократно используемые модули RNN и LSTM, и использует эти модули для моделирования на уровне символов, аналогичного char-rnn.
https://github.com/jcjohnson/torch-rnn/

Шаг 3
- поскольку первые два шага позволят нам вводить в нейросеть и обрабатывать текстовые данные (символы и их блоки), то для достижения нашей цели (обработка звуковых отрывков) нам требуется инструмент, который позволит переводить звуковые row-файлы в текстовые.
Такой инструмент был создан малоизвестным зарубежным программистом, написавшим небольшую утилиту, конвертирующую звуковой файл в текст.
Скачиваем её с его страницы:
http://robbi-985.homeip.net/blog/?p=1845
и читаем описание.
Читаем две его страницы с примерами:
http://robbi-985.homeip.net/blog/?p=1760
http://robbi-985.homeip.net/blog/?p=1819
Смотрим два видео с примерами работы:
http://www.youtube.com/watch?v=FsVSZpoUdSU&fmt=22
http://www.youtube.com/watch?v=NG-LATBZNBs&fmt=22

Системные требования:
Torch и его модули устанавливаются в Linux-систему;
Сама утилита-конвертер: написана и работает под Windows.
Чем мощнее сервер, тем быстрее идет обработка вводимых отрезков. (Второе видео является результатом более 300 часов обучения голосом на сервере автора. Использовались 8-битные оцифровки голоса).

Нейро-синтез речи своими руками

Добавлено: 01 янв 2019 18:16
newport
Всех с новым годом, народ.) :preved:


Отправлено спустя 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
(164.49 КБ) 658 скачиваний

Нейро-синтез речи своими руками

Добавлено: 03 янв 2019 22:07
speech
newport писал(а):
03 янв 2019 09:54
к примеру, в одной из них удалось обучить сеть (на машине Intel Core i5) за 15 часов на основе 5 часов аудио-записей
Я конечно не в теме, но надо ли там программировать? Есть ли какое-то описание, аналогичное первому примеру?

Нейро-синтез речи своими руками

Добавлено: 06 янв 2019 14:45
newport
speech писал(а):
03 янв 2019 22:07
Есть ли какое-то описание, аналогичное первому примеру?
Можно было бы и здесь продублировать, но лучше откройте по ссылке: https://habr.com/company/speechpro/blog/358816/
- там довольно подробное описание с примерами;
И посмотрите весь блог. https://habr.com/company/speechpro/
Там есть и конкурс, и про подготовку датасета, и прочее.

Нейро-синтез речи своими руками

Добавлено: 06 янв 2019 17:33
Lecron
newport, Есть ли шанс, что в ближайшем будущем, пара-тройка лет, это станет юзерфрендли решением. Скачал инсталятор, выбрал голос (коэффициенты обученной сети) с сайта или любительские с форума, и получил SAPI5 озвучку?
И самое главное, с ошибками внутрифразовой интонации (изменения высоты тона, темпа речи (ускорении и замедлении в протекании речи), силы звучания (интенсивности речи), внутрифразовых пауз) не чаще, чем 1 раз на час озвучки.

Нейро-синтез речи своими руками

Добавлено: 07 янв 2019 10:03
newport
Lecron писал(а):
06 янв 2019 17:33
И самое главное, с ошибками внутрифразовой интонации (изменения высоты тона, темпа речи (ускорении и замедлении в протекании речи), силы звучания (интенсивности речи), внутрифразовых пауз) не чаще, чем 1 раз на час озвучки.
Касательно естественности речи моё мнение таково, что построенные модели позволяют достигать достаточно достоверной имитации. Но это все-таки именно имитация. Имитационные модели используются и в классических синтезаторах. О настоящей безошибочной модели, повторяющей человеческую речь со всеми оттенками, сейчас речи быть не может, т.к. эта проблема полностью входит в круг задач искусственного интеллекта.
Это моё мнение, а как это повернется, и каковы сроки, зависит от активности инженерии.
Lecron писал(а):
06 янв 2019 17:33
Есть ли шанс, что в ближайшем будущем, пара-тройка лет, это станет юзерфрендли решением. Скачал инсталятор, выбрал голос (коэффициенты обученной сети) с сайта или любительские с форума, и получил SAPI5 озвучку?

Здесь так-же - исключительно только мои гипотезы: я думаю, что по аналогии с языками программирования и средами разработок, имеющиеся на сегодня средства позволяют повторять эксперименты дома, но создание tech-end становится задачей всех участников рынка. Другими словами, все могут делать свои дистрибутивы и продавать, как и любой другой продукт.

Нейро-синтез речи своими руками

Добавлено: 07 янв 2019 13:46
Lecron
newport писал(а):
07 янв 2019 10:03
О настоящей безошибочной модели, повторяющей человеческую речь со всеми оттенками, сейчас речи быть не может
Используемый мной классический движок, интонационных ошибок уровня предложения не допускает вообще. Одна на несколько книг. Однако естественность произношения отдельного слова, хромает. Нужна привычка))). Прослушав ваши примеры, особенно после разбора в редакторе на отдельные слова, увидел как раз обратное. Слово звучит лучше, но фраза, это не просто проблема, а полный кошмар.
Вот и поинтресовался, каков прогноз. Будет ли это чистая нейросеть (уж извините, фраза искусственный интеллект в применении к простейшим рефлексам меня раздражает) или слияние с классикой, не важно. Так понял, что оценить эти перспективы невозможно. Уровень прогноза — рано или поздно, так или иначе.

Кстати, определил когда программу можно назвать интллектом. Когда она, с первого, максимум со второго прохода, сможет определить, какому из книжных персонажей принадлежат каждый из фрагментов текста.

Нейро-синтез речи своими руками

Добавлено: 13 янв 2019 14:10
newport
Lecron писал(а):
07 янв 2019 13:46
интонационных ошибок уровня предложения не допускает вообще. Одна на несколько книг. Однако естественность произношения отдельного слова, хромает. Нужна привычка))). Прослушав ваши примеры, особенно после разбора в редакторе на отдельные слова, увидел как раз обратное. Слово звучит лучше, но фраза, это не просто проблема, а полный кошмар.
Скиньте ваши примеры, если не сложно. Если мы сравниваем, то давайте сравним примерами достижений, так сказать, и там, и там.
Приведенные мной синтезированные отрезки, кстати, не мои, а Олега Петрова.
Lecron писал(а):
07 янв 2019 13:46
Кстати, определил когда программу можно назвать интллектом. Когда она, с первого, максимум со второго прохода, сможет определить, какому из книжных персонажей принадлежат каждый из фрагментов текста.
кстати, здесь не шла речь об искусственном интеллекте. Он упомянут лишь в контексте. Здесь же идет речь о повторяемости естественной речи.

Нейро-синтез речи своими руками

Добавлено: 13 янв 2019 15:26
good_cat
newport писал(а):
13 янв 2019 14:10
Не повторяйте ошибок ...
Предупреждение!
Переход на личности. Сообщения отредактированы.

Топлю баню! Вяжу веники! :dont:

Нейро-синтез речи своими руками

Добавлено: 13 янв 2019 17:03
newport
good_cat писал(а):
13 янв 2019 15:26
Сообщения отредактированы.
там был скорее товарищеский жест :smile1:
ps/ good_cat, я-то думал вы что-то по синтезу добавили) ..

Нейро-синтез речи своими руками

Добавлено: 13 янв 2019 17:08
good_cat
По синтезу я от Вас жду. Результатов после теории. :smile1:

Нейро-синтез речи своими руками

Добавлено: 13 янв 2019 20:58
newport
good_cat писал(а):
13 янв 2019 17:08
По синтезу я от Вас жду. Результатов после теории.
Я их точно так же жду от окружающих. :smile1:

Нейро-синтез речи своими руками

Добавлено: 14 янв 2019 11:21
Lecron
newport писал(а):
13 янв 2019 14:10
Скиньте ваши примеры, если не сложно. Если мы сравниваем, то давайте сравним примерами достижений, так сказать, и там, и там.
Примеров работы Loquendo Olga и других движков, в сети вагон и маленькая тележка.
Но для достоверности:
series_new_new.mp3
(127.09 КБ) 697 скачиваний

Нейро-синтез речи своими руками

Добавлено: 14 янв 2019 13:17
wasyaka
Lecron писал(а):
14 янв 2019 11:21
Но для достоверности:
И Вы это ...считаете за....ЗАНАВЕС (это моё личное мнение, человека который прослушал и продолжает ..., ну уж штуку точно)
Дуэль...
Сравнительный тэст:
Любой текст с вашенй стороны(фрагмент) - Вы Ольгой - Я Ивоновской и Яндексовской групой
Жду...
Дуэль...

Нейро-синтез речи своими руками

Добавлено: 14 янв 2019 14:19
Lecron
wasyaka, А Ивона тут причем? Они все, включая Колю и прочих тань, плюс-минус одинаковые и на любителя. Поэтому ни соревноваться, ни тем более переубеждать не стану. Сравнение с новым приниципом, нейросеточной озвучкой. Где произношение отдельных слов мне нравится больше, но фразовые интонации..., даже на таких коротких примерах, уже удивляют. Как они себя поведут на осмысленном тексте на пару абзацев, со сложноподчинеными, вопросительными, восклицательными предложениями и прочими диалогами, вообще страшно.

Нейро-синтез речи своими руками

Добавлено: 14 янв 2019 14:44
wasyaka
Lecron писал(а):
14 янв 2019 14:19
А Ивона тут причем?
И я здесь каким боком...
Ушёл прослушивать...
Чем смог поделился, но без фанатизма...
Появится новинка - ... Удачи!
PS
На личные вопросы - отвечу.

Нейро-синтез речи своими руками

Добавлено: 20 янв 2019 17:00
newport
Lecron писал(а):
14 янв 2019 11:21
Примеров работы Loquendo Olga и других движков, в сети вагон и маленькая тележка.
Но для достоверности
Эмм.... ...
Я прослушал. А в чем собственно преимущество вашего, так сказать, решения?
Мне вообще знакомы классические tts, и чего-либо нового из вашего примера я не услышал, извиняюсь.

Нейро-синтез речи своими руками

Добавлено: 20 янв 2019 17:19
Lecron
newport, А ничего нового вы и не должны были услышать. Просто для сравнения, нужны более длительные фрагменты нейроTTS. Предложений, абзацев, диалогов. Сейчас, вы можете доказывать, что никаких ошибок в его фразовых интонациях вы не заметили. Может оно так и есть. Но я слышу совсем другое.
Поживем увидим. Тем более, что основной мой вопрос как раз и был, про когда пользователь не гик, сможет более плотно протестировать возможности.

Нейро-синтез речи своими руками

Добавлено: 20 янв 2019 19:49
newport
Lecron писал(а):
20 янв 2019 17:19
Сейчас, вы можете доказывать, что никаких ошибок в его фразовых интонациях вы не заметили. Может оно так и есть. Но я слышу совсем другое.
Поживем увидим. Тем более, что основной мой вопрос как раз и был, про когда пользователь не гик, сможет более плотно протестировать возможности.
Lecron, чтобы что-либо тестировать, лучше все-же немного ознакомиться с опубликованными материалами по тестируемому предмету. Вы зайдите по ссылке, если есть желание, и почитайте внимательно хотя бы начало статьи. Протестируйте два слоя, т.к. в том примере разобран именно этот уровень - уровень слова.
То, что вы называете фразовыми интонациями, есть уровень предложений. А следующий уровень это уровень абзацев и их совокупностей. И чтобы говорить о них, желательно иметь хотя бы ограниченное представление о модели на уровне слов.
Набор тональных огибающих уровня предложений, если изображать графически, достаточно богат, а на уровне абзацев их еще больше. Поэтому все же прочтите и проделайте сначала эту, более простую настройку, чтобы вам было легче подступиться к настройке предложений.

Нейро-синтез речи своими руками

Добавлено: 22 фев 2021 17:17
Pin240
Народ а что насчет этой статьи?? Кто опробует?
https://proglib.io/p/golosovoy-deepfake ... 2019-12-11

Нейро-синтез речи своими руками

Добавлено: 22 фев 2021 19:41
Lecron
Pin240 писал(а):
22 фев 2021 17:17
Народ а что насчет этой статьи?? Кто опробует?
Периодически сталкиваюсь с проектами в данном направлении. На Хабре за прошлый год две или три статьи было с демками. Пока глухо. Либо качество хромает. Либо скорость — до 0.1х реал-тайма. Либо то и другое вместе. Ничего готового даже для потребителей-новаторов, пока нет. Только для исследований и несистематического озвучивания, для которого таки проще нанять диктора.

Кстати, недавно натыкался на попытку автоматического согласования голоса и текста. Без этого, даже при больших вычислительных ресурсах, толку мало. Слишком много ручной работы для разметки. А так, загрузил аудиокнигу(и), загрузил их тексты и вот у вас сотни часов корпуса. Обучай, не хочу.

Нейро-синтез речи своими руками

Добавлено: 25 фев 2021 14:26
Primkray
В продолжение темы:
"Украинский стартап Respeecher научился практически идеально синтезировать голос. У ребят уже есть контракт с голливудской студией из пятёрки кинокомпаний фабрики грёз."

Нейро-синтез речи своими руками

Добавлено: 25 фев 2021 21:14
Lecron
Primkray писал(а):
25 фев 2021 14:26
Украинский стартап Respeecher научился практически идеально синтезировать голос.
Скорее не синтезировать, а перекрашивать. Имеете голос Брежнева, сами говорите в микрофон, из колонок звучит сказанное, но уже голосом Брежнева. Плюс неизвестно, насколько обработка реалтаймовая. Для студий потратить 1 час на минуту озвучки — не проблема.

Нейро-синтез речи своими руками

Добавлено: 26 фев 2021 13:40
Primkray
Nixaristix писал(а):
23 фев 2021 17:02
SAPI5 то на кой вам сдался?
Чтобы оффлайн использовать...
Все, что Вы привели в качестве примера, это же корпоративные разработки, кроме "утюга", а "домашние" разработки, где они, как из можно использовать?

Нейро-синтез речи своими руками

Добавлено: 26 фев 2021 14:25
Lecron
Primkray писал(а):
26 фев 2021 13:40
Чтобы оффлайн использовать..
SAPI удобнее, но для пакетной озвучки непринципиально. Используя сейчас balcon (консольную Балаболку) я вообще не знаю, что там под капотом, и появись некий speechcon, переключится не составит проблем. Лишь бы был хоть сколько-то готовый пакет, а не конструктор "всё сам" — найди обучающий датасет сам, настрой параметры обучения сам, обучи сетку сам, используй готовую модель сам, сам, сам, сам.

Нейро-синтез речи своими руками

Добавлено: 27 фев 2021 17:50
skreb
Primkray писал(а):
25 фев 2021 14:26
"Украинский стартап Respeecher научился практически идеально синтезировать голос."
Искусственный интеллект воссоздает голос Высоцкого. Голос восоздан с помощью технологии Vera Voice:
► Показать

Нейро-синтез речи своими руками

Добавлено: 01 апр 2021 14:34
Lecron
Вышел новый проект, попытка упростить синтез своими руками. С лёту конечно не всё получилось, до готового продукта еще далеко, но шаг сделан приличный.
Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

В целом, установить на свой ПК удалось с минимумом камланий. Повторить путь вообще без затруднений. Проверялось на Windows 10 x64, Python 3.9 x64, only CPU
Зависимостей минимум. Установка:

Код: Выделить всё

pip install torch==1.8.1+cpu torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
pip install PySoundFile
pip install OmegaConf
Голоса скачиваются сами при первом к ним обращении. Немного измененный демонстрационный исходный файл из проекта.
examples_tts.py.zip
(822 байт) 50 скачиваний


До Яндекс голосов может и не дотягивает, но качество мне пока понравилось. На длинных текстах еще не проверял.
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 для работы на встроенной видюхе — навыков не хватило, слишком чужая для меня тема. В нынешнем варианте, для работы синтез не пригоден. Ни по скорости, ни по стабильности результата, ни по простоте использования. Так, побаловаться, оценить прогресс.

Нейро-синтез речи своими руками

Добавлено: 27 май 2021 16:20
GIS88
Вроде работает, поставил так -

1: Закинул на c файл examples_tts.py

2: Установил - https://www.anaconda.com/products/individual#Downloads (64-Bit Graphical Installer (477 MB)

3: потом запустил Anaconda Powershell Prompt (anaconda3) от админа.
вбил
pip install torch==1.8.1+cpu torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
pip install PySoundFile
pip install OmegaConf

4: cd c:\
потом
python examples_tts.py

Возможно ли сделать, чтобы - examples_tts.py копировал по 140 символов из файла книга.txt и записывал файлы 1.wav и 2 wav и т.д.?

Нейро-синтез речи своими руками

Добавлено: 27 май 2021 18:08
Lecron
GIS88 писал(а):
27 май 2021 16:20
Возможно ли сделать, чтобы - examples_tts.py копировал по 140 символов из файла книга.txt и записывал файлы 1.wav и 2 wav и т.д.?
В принципе не сложно. Но какой в этом смысл? Движкам надо передавать осмысленные фразы, желательно законченные предложения. А 140 символов, будут попадать на середнину слов.

Нейро-синтез речи своими руками

Добавлено: 31 май 2021 11:10
speech
Я не в теме, но попалась такая ссылка - Tacotron

Нейро-синтез речи своими руками

Добавлено: 31 май 2021 19:21
Lecron
speech, Так все современные экспериментальные движки основаны именно на нем. Сам по себе он лишь заготовка, которую нужно прилично обточить по вкусу напильником. А еще лучше полноценный станочный парк привлечь :)