Skip to content

HosanaUFRRJ2014/uniformiza-datasets-qbh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uniformização/Unificação dos datasets

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).

Etapas:

A fim de obter um dataset unificado, executar as etapas abaixo: Para ajuda via comando, consulte python main.py --help

  1. Renomear pasta deste repositório para uniformiza_dataset

  2. 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.

  3. 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.
  4. 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
    
  5. (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.

About

Uniformização de datasets de query-by-humming

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages