Примечание: я больше не работаю над этим проектом. Смотрите #9.
Эта работа вдохновлена моделью M-CNN, описанной в инверсии быстрого спектрограммы с использованием многопомодных сверточных нейронных сетей. Авторы показывают, что даже простых сети UPSAMPLING достаточно, чтобы синтезировать форму волны от спектрограммы/мель-спектрограммы.
В этом репо я использую функцию Spectrogram для обучающей модели, потому что она содержит больше информации, чем функция Mel-Spectrogram. Однако, поскольку преобразование от спектрограммы в мель-спектрограмму является линейной проекцией, так что в основном вы можете обучить простую сеть прогнозировать спектрограмму от мель-спектрограммы. Вы также можете изменить параметры, чтобы быть в состоянии обучать вокадчик из функции Mel-Spectrogram.
Сравните с M-CNN, моя предлагаемая сеть имеет некоторые различия:
$ pip install -r requirements.txtЯ использую набор данных LJSPEECH для своего эксперимента. Если у вас его еще нет, пожалуйста, загрузите набор данных и поместите его куда -нибудь.
После этого вы можете запустить команду для создания набора данных для нашего эксперимента:
$ python preprocessing.py --samples_per_audio 20
--out_dir ljspeech
--data_dir path/to/ljspeech/dataset
--n_workers 4$ python train.py --out_dir ${output_directory}Для получения дополнительных вариантов обучения, пожалуйста, запустите:
$ python train.py --help$ python gen_spec.py -i sample.wav -o out.npz$ python synthesis.py --model_path path/to/checkpoint
--spec_path out.npz
--out_path out.wavВы можете получить мою предварительно обученную модель здесь.
Эта реализация использует код из NVIDIA, Ryuichi Yamamoto, Keith Ito, как описано в моем коде.
Грань