Introdução geral
O MuseGAN é um projeto de geração de música baseado em Redes Adversárias Generativas (GANs) projetado para gerar músicas com várias faixas (vários instrumentos). O projeto é capaz de gerar músicas do zero ou acompanhadas por faixas fornecidas pelo usuário. O MuseGAN é treinado usando o conjunto de dados Lakh Pianoroll para gerar trechos de músicas populares contendo baixo, bateria, guitarras, piano e cordas. A implementação mais recente baseia-se em uma arquitetura de rede de camadas convolucionais 3D com um tamanho de rede menor, mas com controle reduzido. O MuseGAN oferece vários scripts para facilitar as operações, como o gerenciamento de experimentos, o treinamento de novos modelos e a inferência e interpolação usando modelos pré-treinados.
Lista de funções
- Gerar música de várias faixas: gere clipes de música do zero contendo vários instrumentos.
- Geração de acompanhamento: gere acompanhamentos com base em faixas fornecidas pelo usuário.
- Treinamento de novos modelos: Scripts e arquivos de configuração são fornecidos para facilitar aos usuários o treinamento de seus próprios modelos de geração de música.
- Uso de modelos pré-treinados: baixe e use modelos pré-treinados para geração de música.
- Processamento de dados: faça o download e processe os dados de treinamento com suporte para o Lakh Pianoroll Dataset.
- Gerenciamento de experimentos: forneça uma variedade de scripts para facilitar aos usuários a configuração e o gerenciamento de experimentos.
- Formato de saída: a música gerada pode ser salva em matrizes numpy, arquivos de imagem e formatos de arquivo pianoroll de várias faixas.
Usando a Ajuda
Processo de instalação
- Certifique-se de que o pipenv (recomendado) ou o pip esteja instalado.
- Use o pipenv para instalar as dependências:
bash
instalação do pipenv
shell do pipenv
或使用pip安装依赖:
bash
pip install -r requirements.txt
### 数据准备
1. 下载训练数据:
bash
. /scripts/download_data.sh
2. 处理训练数据:
bash
. /scripts/process_data.sh
### 训练新模型
1. 设置新实验:
bash
. /scripts/setupexp.sh ". /exp/myexperiment/" "Observações sobre o experimento"
2. 修改配置文件和模型参数文件以设置实验参数。
3. 训练模型:
bash
. /scripts/runtrain.sh ". /exp/myexperimento/" "0"
或运行完整实验(训练+推理+插值):
bash
. /scripts/runexp.sh ". /exp/myexperimento/" "0"
### 使用预训练模型
1. 下载预训练模型:
bash
. /scripts/download_models.sh
2. 使用预训练模型进行推理:
bash
. /scripts/run_inference.sh ". /exp/default/" "0"
或进行插值:
bash
. /scripts/run_interpolation.sh ". /exp/default/" "0"
### 输出管理
生成的音乐样本默认会在训练过程中生成,可以通过设置配置文件中的`save_samples_steps`为0来禁用此行为。生成的音乐样本会以以下三种格式保存:
- `.npy`:原始numpy数组
- `.png`:图像文件
- `.npz`:多轨pianoroll文件,可通过Pypianoroll包加载
可以通过设置配置文件中的`save_array_samples`、`save_image_samples`和`save_pianoroll_samples`为False来禁用特定格式的保存。生成的pianoroll文件以`.npz`格式保存,以节省空间和处理时间。可以使用以下代码将其写入MIDI文件:
python
from pypianoroll import Multitrack
m = Multitrack('. /test.npz')
m.write('. /test.mid')
Exemplos de resultados
Alguns exemplos de resultados podem ser encontrados na seção./exp/
pode ser encontrado no catálogo. Mais exemplos podem ser baixados nos links a seguir:
- sample_results.tar.gz(54,7 MB): Exemplos de resultados de inferência e interpolação
- training_samples.tar.gz(18,7 MB): Exemplos de resultados gerados em diferentes etapas