Работа над созданием синтезатора марийской речи

Материал из Mari-Lab
Версия от 13:44, 1 декабря 2022; Андрей (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
Студия.jpg

Для создания аудиокорпуса построили студию звукозаписи с хорошей звукоизоляцией, звукопоглощением и звукорассеиванием.

Студию скомплектовали следующим необходимым оборудованием:

Студия 3.jpg

– студийные микрофоны;
– охватывающие наушники (головные телефоны) закрытого типа;
– выносной usb-монитор;
– предусилитель для наушников;
– микшерный пульт;
– профессиональный аудиоинтерфейс;
– микрофон для связи с диктором;
– компьютер или ноутбук с звуковым редактором;
– стойки, соединительные кабели и т.д.
Запись и обработку аудиофайлов проводим в программе Sound Forge.

Для пополнения аудиокорпуса (https://cloud.mail.ru/public/VAKT/WwWiTXYTC), в основном, озвучиваем произведения марийских авторов или переводные рассказы и повести, например, произведения Антона Павловича Чехова, переведённые на марийский язык в 1950 годах. Записанное в аудиоредакторе произведение обрабатываем следующим образом: нормализуем, компрессируем. Далее, для того чтобы данные аудиофайлы являлись не только частью для аудиокорпуса, но и имел второе назначение — аудиокниги на марийском языке. Для максимального охвата потенциальной аудитории созданную аудиокнигу размещаем в подкасте "Марий йогын" castbox.fm (https://castbox.fm/channel/id3103951?country=us), а оттуда аудиокнига автоматически расходится в Яндекс.Музыку (https://music.yandex.ru/album/11434684), Apple Podcasts (https://podcasts.apple.com/ru/podcast/марий-йогын/id1523723633), Pad FM (https://podfm.ru/podcasts/marij-jogyn-2/) и подкасты ВКонтакте (https://vk.com/mari_podcast). На сегодняшний день записано свыше 120 марийских аудиокниг. Это и рассказы, и повести. Охват: свыше 1000 чел. Первым голосом выбрали голос актёра Марийского национального театра драмы им. М. Шкетана Павла Ефимова. Записанные аудиофайлы в звуковом редакторе режем по предложениям. где файлы 001.wav, 002.wav, 003.wav — порезанные звуковым редактором аудиофайлы по предложениям, предложения могут быть и короткие, и длинные, они все заканчиваются точкой, знаком восклицания или вопросительным знаком, а файлы 001.txt, 002.txt, 003.txt — текстовые файлы с текстами соответствующих предложений. В данный момент в нашем аудиокорпусе https://cloud.mail.ru/public/VAKT/WwWiTXYTC более 15 часов записи голоса донора. Для обучения нейросети теперь необходимо выбрать готовую библиотеку: Google/Tacatron, Google/Tacatron 2, NVIDIA/NeMo и др., которые работают с использованием скрытых моделей Маркова.

Сервер.jpg

Для разворачивания нейросети строим серверную часть.

Сервер собираем из комплектующих, устанавливаем видеокарту nVidia GeForce RTX 2070SUPER, серверную операционную систему Ubuntu 20.04. Сервер помещаем в серверный шкаф с устройством бесперебойного питания и системы кондиционирования. На сервер устанавливаем все необходимые драйверы: NVIDIA CUDA (https://developer.nvidia.com/cuda-toolkit) и др. Далее поднимаем виртуальную среду на Python virtualenv (https://docs.python.org/3/tutorial/venv.html). А на питоновскую виртуалку устанавливаем открытые программные библиотеки для машинного обучения. Пробуем первую библиотеку Google/Tacatron (https://github.com/google/tacotron). Для этого из нашего аудиокорпуса делаем датасет в формате The LJ Speech Dataset (https://keithito.com/LJ-Speech-Dataset/). Получаем следующее: https://cloud.mail.ru/public/VAKT/WwWiTXYTC/. В приведённом датасете битрейт аудиофайлов 44100 Hz, а формат The LJ Speech Dataset требует — 22050 Hz. С помощью скрипта автоматически конвертируем в требуемый битрейт, но оригинал оставляем как есть. Запускаем обучение. Более суток. 100 тыс. итераций. Получаем модель объёмом примерно 100 Мб. С помощью Python-скрипта на сервере запускаем модель. На входе подаём текстовые файлы, а модель выдаёт звуковые файлы. Результаты можно посмотреть на сайте: http://mari-lab.ru/index.php/Работа_над_созданием_синтезатора_марийской_речи. Как видим, получается не очень естественный голос, компьютерный. Данную модель в открытый доступ выкладывать не будем. Будем добиваться более естественного близкое к человеческому звучания. Для этого будем пробовать другие библиотеки с битрейтом 44100 Hz, например, NVIDIA/NeMo (https://github.com/NVIDIA/NeMo). Но в других библиотеках другой формат датасета. Переделываем датасет. Результаты обучения будут чуть позже, в феврале 2022 года.

Студия 5.jpg

Также в данный момент готовим аудиокорпус с женским луговым, мужским и женским горномарийским голосами.

После нахождения оптимального варианта библиотеки в этом году планируем опубликовать в открытом доступе 4 синтезатора марийской речи с мужским и женским луговым, мужским и женским горномарийским голосами.

Для создания синтезатора марийской речи методом правил необходим аудиокорпус — аудиозаписи объёмом 10-20 часов, записанные голосом того человека, чей голос предполагается "синтезировать", и собственно тексты этих записей.

Мы мужским голосом выбрали голос актёра Марийского национального театра драмы им. М. Шкетана Павла Ефимова. В звукозаписывающей студии записываем аудио, в звуковом редакторе режем его по предложениям, предложения могут быть и короткие, и длинные, они все заканчиваются точкой, знаком восклицания или вопросительным знаком: где 00101.wav, 00102.wav, 00103.wav, ... — разбитые по предложениям аудиофайлы, а 00101.txt, 00102.txt, 00103.txt, ... — текстовые файлы соответствующих предложений. Получаем такой аудиокорпус.

Пример датасета в формате The LJ Speech Dataset.

Салам, Андрей.
Тугеже идалыкым Венера виктара. Тиде – ӱдырамаш вий-куат.
Тудо сурт, еш, йоча-влак дене кылдалтеш. Сандене у идалыкыште ешан лияш да тудым пеҥгыдемдаш тӱрлӧ ошкылым ыштыман.
Кокытан цифран идалыкыште йыгыр аза шукырак шочеш, маныт нумеролог-влак. Цифр-влакым иктеш ушена гын, кудыт лиеш.
Мутат уке, нелымат чыташ логалеш.
Презе, Скорпион да Кол шукертсек азам ыштен кертын огытыл, но 2022 ийыште тиде куан толын кертеш.