Pega os datasets IOACAS e MIR e os "mergeia" em um.
Este algoritmo precede a execução de lsh.
Importante: Para o algoritmo funcionar, é preciso ter os dois datasets dentro da pasta deste repositório para o código funcionar. Estes não estão disponibizados neste repositório devido a direitos autorais. Dois deles, podem ser recuperados do site MIREX. Para que possa ocorrer a expansão deste dataset é preciso adicionar um terceiro dataset. Este terceiro dataset, o dataset de ruído, pode ser encontrado em The Lakh MIDI Dataset v0.1 (Baixar o dataset LMD-matched).
A fim de obter um dataset unificado, executar as etapas abaixo:
Para ajuda via comando, consulte python main.py --help
-
Renomear pasta deste repositório para
uniformiza_dataset
-
Recuperar os datasets originais do MIXEX, seção "Data".
Colocá-los na pasta do reposítório. TODO: verificar pequenas modificações manuais feitas nos datasets antes de executar o algoritmo. Houve uniformização manual do nome das pastas.
-
Executar a uniformização/unificação
python main.py -norm True -expand False
Este comando gera uma pasta contendo as queries, outra as músicas (pasta songs). Gera também os seguintes arquivos:
- expected_results.list - Contém uma lista que relaciona cada query com o nome (sem extensão) esperado da música dos datasets unificados.
- ioacas_query_correlation_file.list - Relaciona os nomes das queries do dataset unificado com os do dataset IOACAS.
- ioacas_song_correlation_file.list - Relaciona os nomes das músicas do dataset unificado com os do dataset IOACAS.
- midi_songs.list - Lista das músicas em formato MIDI.
- mir_query_correlation_file.list - Relaciona os nomes das queries do dataset unificado com os do dataset MIR.
- mir_song_correlation_file.list - Relaciona os nomes das músicas do dataset unificado com os do dataset MIR.
-
Adicionar músicas de ruído na pasta de músicas
Para aumentar o dataset e verificar se o algoritmo está funcionando em boa velocidade e acurácia.
4.1. Criar lista das músicas presentes no dataset de ruído
grep .*[\.mid]$ -r -l | sort > midi.list
4.2. Executar comando de expansão do dataset
python main.py -norm False -expand True
-
(Opcional) Transformar as queries do formato MID para WAV.
5.1. Instalar, em seu Sistema Operacional, o programa Timidity.
sudo apt update sudo apt install timidity # funciona no Ubuntu 18.04
5.2. Executar a conversão
python main.py -norm False -expand False -convert $CONVERSION_OPTION CONVERSION_OPTION válidos: - "only_mirex" - converte apenas os datasets MIR_QBSH e IOACAS do MIREX. - "only_lmd" - converte apenas o datasets vindo do LMD - "all" - converte todos os três datasets envolvidos - "none" - não converte nenhum dataset (opção padrão)
As músicas convertidas ficarão na pasta
songs_wav.
NOTA: As opções que envolvem a conversão do dataset LMD trazem consigo um excessivo consumo de memória de disco. Numa das tentativas de conversão, cerca de 7 mil músicas convertidas ocuparam mais de 200 GB.