Комментарии 22
Вот ниже в комментариях предлагают подавать на сеть сразу фонемную запись, вместо графемной. Тогда будут учитываться и степени редукции, и ударность/заударность. Придется правда делать хороший G2P.
2. Касательно «End-To-End» — он честный и все эти нормализации и разложения прям в онлайне делать можно? Насколько дольше получается, чем с тем же WaveNet?
3. DCTTS всё-таки не от Kyubyong Park, а от Hideyuki Tachibana. У парка только готовая реализация.
4. «Вообще все E2E-архитектуры, которые я видел, требуют именно нормализованный текст.» Не согласен, некоторые могут сами предобработывать с помощью G2P от того же Парка.
Нормализация текста никак не связана с g2p. Как и "металлический отзвук" не связан с MFCC.
E2E не то чтобы честный. Восстанавливаем то мы спектрограмму, а ее еще в звук нужно преобразовать. По поводу скорости — я бы сказал, что пока это работает слишком медленно. Прямо вот запустил и синтезировал пока не получается, оно какое-то ощутимое время пыхтит. Конкретную скорость я не измерял и с WaveNet не сравнивал, не знаю.
2. В смысле не связан? В том же DV2 пишут:
We observe that minor noise in the input spectrogram causes noticeable estimation errors in the Griffin-Lim algorithm and the generated audio quality is degraded. o produce higher quality audio using Tacotron, instead of using Griffin-Lim, we train a WaveNet-based neural vocoder to convert from linear spectrograms to audio waveforms.
ЗЫ: И кстати, если сделать синтез по фонетическому алфавиту, при условии использования достаточного количества фонем, возможно можно будет использовать одну синтезирующую сетку для разных языков. Хотя получится скорее всего только для некоторых, но и то хлеб…
Для каждого языка обычно используется свои списки фонем и свои транскрипторы. Полагаю, что ключевой момент тут в качестве получающейся речи. Требования к коммерческому синтезу речи очень высокие.
Как минимум у вас должно быть достаточно много времени для того чтобы нарезать запись на небольшие фрагменты. Ну и качество записи важно, конечно.
Совсем необязательно. Достаточно использовать инструменты для forced alignment из любого проекта по распознаванию речи.
А как быть с нормализацией текста и поиском ошибок? Тексты не идеальны (часто это распознанные сканы с печатных изданий), часто дикторы изменяют текст, чтобы он звучал лучше или читался проще. Не всё это можно легко автоматизировать.
Коментарий-то был по поводу нарезки. Даже если текст нормализован и соответствует аудио на 100%, то всё равно вручную никто нарезать не будет.
Можно, есть даже открыйтый проект для этого, https://librivox.org. Правда, этот проект больше используется для тренировки акустических моделей для распознавания речи, потому что для синтеза диктор должен быть один и тот же, что несколько усложняет процесс.
Сейчас мы с коллегами обсуждаем возможность выложить этот голос в свободный доступ
У Ольги Яковлевой (слепая программистка) на bitray много готового материала (движок RHVoice).
Нет возможности управлять интонацией
Интересно, почему? Интонации вроде не требуют локализации и алгоритм простой: вопросительная -последний слог выше и т.д. Кроме того, в примерах синтеза окончание предложения интонацией выделяется.
Спасибо за свежую статью! HTS и Festival-Festvox даже не упоминаются в Вашей статье -они уже настолько устарели?
Ну статья немного про другое. Она про то, что можно оторваться от всего, что есть в области синтеза, и сделать прямо с нуля. Благодаря машинному обучению это стало возможно.
У Ольги Яковлевой (слепая программистка) на bitray много готового материала (движок RHVoice).
Чем больше открытых данных, тем лучше.
Интересно, почему? Интонации вроде не требуют локализации и алгоритм простой: вопросительная -последний слог выше и т.д. Кроме того, в примерах синтеза окончание предложения интонацией выделяется.
Эта реализация, конечно, произносит предложение с какой-то интонацией, но задать ее сейчас не получится. Как дела? будет произнесено утвердительно.
А как долго надо учить, чтобы появился хоть какой-то осмысленный результат и стало понятно, что движешься в правильном направлении?
В моем случае после 20 тысяч итерация генерируется или однородный писк, или тишина. Это примерно 2 часа обучения на 1080.
Обратите внимание на attention plot. График должен быть диагональным, с минимальными выбросами. На то, как он должен выглядеть, можно посмотреть в оригинальном репозитории в соответствующем разделе README.md. Если у вас какой-то шум на графике после значительного количества шагов, то явно что-то пошло не так.
Ну и наконец, гиперпараметры:
max_N = 180 # Maximum number of characters.
max_T = 210 # Maximum number of mel frames.
Убедитесь, что данные, на которых вы обучаетесь, соответствуют этим ограничениям.
всем кому интересна идея синтеза нейросетками — вероятно вас заинтересует эта публикация — https://habr.com/ru/post/549480/ — зацените
Нейросетевой синтез речи своими руками