Как стать автором
Обновить

Комментарии 22

Судя по произношению «в Питербу́рги пого́да» вместо ожидаемого «в Питирбу́рги паго́да» — после расстановки ударений система не пытается предсказать редукцию безударных гласных?
Пытается, почему же. Другое дело, что много ошибается. Но тут сказывается и недостаточность данных для обучения, всего 5 часов, и неочевидность крутилок, которые бы влияли на конкретную проблему в произнесениях.

Вот ниже в комментариях предлагают подавать на сеть сразу фонемную запись, вместо графемной. Тогда будут учитываться и степени редукции, и ударность/заударность. Придется правда делать хороший G2P.
1. Насколько я знаком с TTS, там, где MFCC всегда есть этот «металлический» отзвук. Не пробовали раскладывать по вейвлетам?
2. Касательно «End-To-End» — он честный и все эти нормализации и разложения прям в онлайне делать можно? Насколько дольше получается, чем с тем же WaveNet?
3. DCTTS всё-таки не от Kyubyong Park, а от Hideyuki Tachibana. У парка только готовая реализация.
4. «Вообще все E2E-архитектуры, которые я видел, требуют именно нормализованный текст.» Не согласен, некоторые могут сами предобработывать с помощью G2P от того же Парка.

Нормализация текста никак не связана с g2p. Как и "металлический отзвук" не связан с MFCC.

По обоим пунктам согласен.

E2E не то чтобы честный. Восстанавливаем то мы спектрограмму, а ее еще в звук нужно преобразовать. По поводу скорости — я бы сказал, что пока это работает слишком медленно. Прямо вот запустил и синтезировал пока не получается, оно какое-то ощутимое время пыхтит. Конкретную скорость я не измерял и с WaveNet не сравнивал, не знаю.

1. Хорошее g2p должно, в этом же и смысл. Понятно, что можно дробить это на две этапа (перевести цифры и даты в слова, а потом сделать фонетический разбор), но было бы здорово не.
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.
Мне кажется для увеличения качества не мешало бы делеать некоторую предобработку текста, менять безударную «о» на «а», «е» на «э» и т.д. А еще лучше заменить буквы на фонетический алфавит (типа того который используют при изучении английского). Это так-же можно делать сеточкой, но отдельной. Просто пытаться сделать 2 дела одной сеткой мне не кажется хорошим подходом.

ЗЫ: И кстати, если сделать синтез по фонетическому алфавиту, при условии использования достаточного количества фонем, возможно можно будет использовать одну синтезирующую сетку для разных языков. Хотя получится скорее всего только для некоторых, но и то хлеб…
Использовать фонемную разметку — это следующий мой шаг. Благо у нас есть хорошие G2P модели, на которых можно экспериментировать. Они же используются и в распознавании речи.

Для каждого языка обычно используется свои списки фонем и свои транскрипторы. Полагаю, что ключевой момент тут в качестве получающейся речи. Требования к коммерческому синтезу речи очень высокие.
Аудиокниги можно использовать в качестве данных для обучения?

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

Совсем необязательно. Достаточно использовать инструменты для forced alignment из любого проекта по распознаванию речи.

А как быть с нормализацией текста и поиском ошибок? Тексты не идеальны (часто это распознанные сканы с печатных изданий), часто дикторы изменяют текст, чтобы он звучал лучше или читался проще. Не всё это можно легко автоматизировать.

Коментарий-то был по поводу нарезки. Даже если текст нормализован и соответствует аудио на 100%, то всё равно вручную никто нарезать не будет.

Единственная проблема аудиокниги — это найти каждому отрывку речи соответствующий кусок текста, но даже в худшем случае это можно автоматизировать через распознавание голоса. Небольшое количество ошибок ничего не изменит, проблема только в том, что полученная сеть будет иметь голос диктора, который за это не получил денег.

Можно, есть даже открыйтый проект для этого, https://librivox.org. Правда, этот проект больше используется для тренировки акустических моделей для распознавания речи, потому что для синтеза диктор должен быть один и тот же, что несколько усложняет процесс.

Спасибо за свежую статью! HTS и Festival-Festvox даже не упоминаются в Вашей статье -они уже настолько устарели?
Сейчас мы с коллегами обсуждаем возможность выложить этот голос в свободный доступ

У Ольги Яковлевой (слепая программистка) на bitray много готового материала (движок RHVoice).
Нет возможности управлять интонацией

Интересно, почему? Интонации вроде не требуют локализации и алгоритм простой: вопросительная -последний слог выше и т.д. Кроме того, в примерах синтеза окончание предложения интонацией выделяется.
На счет интонации — тут две части: ее сначала надо определить в тексте, а потом воспроизвести в синтезированной речи. Чтобы определить — это нужна еще одна нейронная сеть, для которой нужно подготовить кучу текстов с размеченными интонациями и начать обучение. А чтобы воспроизвести надо 8 часов надиктованных текстов перенадиктовать заново со всеми возможными интонациями и уже этот материал использовать в обучении, добавив ко входу маркер интонации и немного изменив конфигурацию существующей нейронной сети. Это довольно большие затраты. Еще, теоретически можно просто провести обучение на исчерпывающем количестве материала с разными интонациями в расчете на то, что они как-то сами собой подцепятся, но почему то кажется, что это неправильный подход. Это так, мысли.
Спасибо за свежую статью! HTS и Festival-Festvox даже не упоминаются в Вашей статье -они уже настолько устарели?

Ну статья немного про другое. Она про то, что можно оторваться от всего, что есть в области синтеза, и сделать прямо с нуля. Благодаря машинному обучению это стало возможно.

У Ольги Яковлевой (слепая программистка) на bitray много готового материала (движок RHVoice).

Чем больше открытых данных, тем лучше.

Интересно, почему? Интонации вроде не требуют локализации и алгоритм простой: вопросительная -последний слог выше и т.д. Кроме того, в примерах синтеза окончание предложения интонацией выделяется.

Эта реализация, конечно, произносит предложение с какой-то интонацией, но задать ее сейчас не получится. Как дела? будет произнесено утвердительно.
Спасибо! Очень интересно! Тоже пробую обучить эту модель.
А как долго надо учить, чтобы появился хоть какой-то осмысленный результат и стало понятно, что движешься в правильном направлении?
В моем случае после 20 тысяч итерация генерируется или однородный писк, или тишина. Это примерно 2 часа обучения на 1080.
Эта архитектура начинает давать разборчивую речь довольно быстро. Но 20 тыс. итераций — это, конечно, довольно мало. Пройдите хотя бы по 150 тыс. на каждую часть.

Обратите внимание на 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/ — зацените

Зарегистрируйтесь на Хабре, чтобы оставить комментарий