Nota: não estou mais trabalhando neste projeto. Veja #9.
Este trabalho é inspirado no modelo M-CNN descrito em inversão rápida do espectrograma usando redes neurais convolucionais de várias cabeças. Os autores mostram que mesmo uma simples rede de amostragem é suficiente para síntese a forma de onda do espectrograma/espectrograma MEL.
Neste repo, uso o recurso Spectrogram para o modelo de treinamento porque ele contém mais informações do que o recurso MEL-Spectrograma. No entanto, como a transformação do espectrograma para o espectrograma MEL é apenas uma projeção linear; portanto, basicamente, você pode treinar uma rede simples prever espectrograma do espectrograma MEL. Você também pode alterar os parâmetros para poder treinar um vocoder do recurso MEL-Spectrograma também.
Compare com M-CNN, minha rede proposta tem algumas diferenças:
$ pip install -r requirements.txtEu uso o conjunto de dados LJSpeech para o meu experimento. Se você ainda não o tiver, faça o download do conjunto de dados e coloque -o em algum lugar.
Depois disso, você pode executar o comando para gerar conjunto de dados para o nosso experimento:
$ 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}Para mais opções de treinamento, corra:
$ 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.wavVocê pode obter meu modelo pré-treinado aqui.
Esta implementação usa o código da NVIDIA, Ryuichi Yamamoto, Keith ITO, conforme descrito no meu código.
Mit