Add dataset
This commit is contained in:
parent
965839ee00
commit
7c2485ce9b
7
.gitignore
vendored
7
.gitignore
vendored
@ -139,3 +139,10 @@ cython_debug/
|
||||
|
||||
# Generated docs
|
||||
*.pdf
|
||||
|
||||
/dataset/wav/
|
||||
!/dataset/wav/.gitkeep
|
||||
/dataset/processed/
|
||||
!/dataset/processed/.gitkeep
|
||||
/dataset/manifest.csv
|
||||
/eval/
|
@ -17,4 +17,7 @@ RUN curl https://raw.githubusercontent.com/tensorflow/magenta/master/magenta/too
|
||||
sed 's/sudo //' -i /tmp/magenta-install.sh && \
|
||||
bash --login /tmp/magenta-install.sh
|
||||
|
||||
# install fluidsynth for MIDI to WAV conversion
|
||||
RUN apt-get install fluidsynth fluid-soundfont-gm --no-install-recommends
|
||||
|
||||
RUN echo "conda activate magenta" >> /root/.bashrc
|
||||
|
28
README.md
28
README.md
@ -15,8 +15,34 @@ $ make image # wywołuje docker build . --tag transcription:latest
|
||||
|
||||
W ten sposób zostanie zbudowany obraz `transcription:latest`. Teraz możemy go wykorzystać:
|
||||
```
|
||||
$ docker run -v "$(pwd):/root/experiment" -it transcription:latest
|
||||
$ docker run -v "$(pwd):/root/experiment" -p 6006:6006 -it transcription:latest
|
||||
```
|
||||
|
||||
W ten sposób powinniśmy znaleźć się wewnątrz kontenera z skonfigurowanym środowiskiem i pobranym checkpointem. Katalog
|
||||
w którym się znajdujemy powinien być zamontowany w obrazie jako `~/experiment`.
|
||||
|
||||
## Dataset
|
||||
Pliki midi zaczerpnięte z http://www.piano-midi.de/midi_files.htm stworzone przez Bernda Kruegera, udostępniane na licencji CC BY-SA 3.0.
|
||||
|
||||
Do przygotowania datasetu z załączonych plików `midi` należy skorzystać ze skryptu `prepare_dataset`. Pomoc i opis argumentów można uzyskać z pomocą argumentu `-h`.
|
||||
|
||||
Przykładowe wywołanie:
|
||||
```
|
||||
python prepare_dataset.py -n 5
|
||||
```
|
||||
|
||||
Wygeneruje dataset z pierwszych 5 plików midi w folderze `./dataset/midi`.
|
||||
|
||||
Następnie należy przygotować dataset do działania z siecią:
|
||||
```
|
||||
python /opt/conda/envs/magenta/lib/python3.7/site-packages/magenta/models/onsets_frames_transcription/onsets_frames_transcription_create_tfrecords.py --csv="./dataset/manifest.csv" --output_directory="./dataset/processed" --wav_dir="./dataset/wav" --midi_dir="./dataset/midi" --expected_splits="test"
|
||||
```
|
||||
|
||||
Niestety, w tej wersji jest błąd przez co alias `onsets_frames_transcription_create_tfrecords` nie działa i trzeba się ratować pełną ścieżką.
|
||||
|
||||
Konwersję i testy możemy przeprowadzić komendą:
|
||||
```
|
||||
onsets_frames_transcription_infer --model_dir="${MODEL_DIR}" --output_dir="./eval/" --examples_path=./dataset/processed/test.tfrecord* --hparams="use_cudnn=false" --preprocess_examples=True
|
||||
```
|
||||
|
||||
Parametr `--hparams="use_cudnn=false"` można pominąć jeżeli dysponujemy GPU z CUDA.
|
BIN
dataset/midi/chp_op18.mid
Normal file
BIN
dataset/midi/chp_op18.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chp_op31.mid
Normal file
BIN
dataset/midi/chp_op31.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p1.mid
Normal file
BIN
dataset/midi/chpn-p1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p10.mid
Normal file
BIN
dataset/midi/chpn-p10.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p11.mid
Normal file
BIN
dataset/midi/chpn-p11.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p12.mid
Normal file
BIN
dataset/midi/chpn-p12.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p13.mid
Normal file
BIN
dataset/midi/chpn-p13.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p14.mid
Normal file
BIN
dataset/midi/chpn-p14.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p15.mid
Normal file
BIN
dataset/midi/chpn-p15.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p16.mid
Normal file
BIN
dataset/midi/chpn-p16.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p17.mid
Normal file
BIN
dataset/midi/chpn-p17.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p18.mid
Normal file
BIN
dataset/midi/chpn-p18.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p19.mid
Normal file
BIN
dataset/midi/chpn-p19.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p2.mid
Normal file
BIN
dataset/midi/chpn-p2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p20.mid
Normal file
BIN
dataset/midi/chpn-p20.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p21.mid
Normal file
BIN
dataset/midi/chpn-p21.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p22.mid
Normal file
BIN
dataset/midi/chpn-p22.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p23.mid
Normal file
BIN
dataset/midi/chpn-p23.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p24.mid
Normal file
BIN
dataset/midi/chpn-p24.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p3.mid
Normal file
BIN
dataset/midi/chpn-p3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p4.mid
Normal file
BIN
dataset/midi/chpn-p4.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p5.mid
Normal file
BIN
dataset/midi/chpn-p5.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p6.mid
Normal file
BIN
dataset/midi/chpn-p6.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p7.mid
Normal file
BIN
dataset/midi/chpn-p7.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p8.mid
Normal file
BIN
dataset/midi/chpn-p8.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn-p9.mid
Normal file
BIN
dataset/midi/chpn-p9.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op10_e01.mid
Normal file
BIN
dataset/midi/chpn_op10_e01.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op10_e05.mid
Normal file
BIN
dataset/midi/chpn_op10_e05.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op10_e12.mid
Normal file
BIN
dataset/midi/chpn_op10_e12.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op23.mid
Normal file
BIN
dataset/midi/chpn_op23.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op25_e1.mid
Normal file
BIN
dataset/midi/chpn_op25_e1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op25_e11.mid
Normal file
BIN
dataset/midi/chpn_op25_e11.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op25_e12.mid
Normal file
BIN
dataset/midi/chpn_op25_e12.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op25_e2.mid
Normal file
BIN
dataset/midi/chpn_op25_e2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op25_e3.mid
Normal file
BIN
dataset/midi/chpn_op25_e3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op25_e4.mid
Normal file
BIN
dataset/midi/chpn_op25_e4.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op27_1.mid
Normal file
BIN
dataset/midi/chpn_op27_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op27_2.mid
Normal file
BIN
dataset/midi/chpn_op27_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op33_2.mid
Normal file
BIN
dataset/midi/chpn_op33_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op33_4.mid
Normal file
BIN
dataset/midi/chpn_op33_4.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op35_1.mid
Normal file
BIN
dataset/midi/chpn_op35_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op35_2.mid
Normal file
BIN
dataset/midi/chpn_op35_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op35_3.mid
Normal file
BIN
dataset/midi/chpn_op35_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op35_4.mid
Normal file
BIN
dataset/midi/chpn_op35_4.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op53.mid
Normal file
BIN
dataset/midi/chpn_op53.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op66.mid
Normal file
BIN
dataset/midi/chpn_op66.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op7_1.mid
Normal file
BIN
dataset/midi/chpn_op7_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/chpn_op7_2.mid
Normal file
BIN
dataset/midi/chpn_op7_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_311_1.mid
Normal file
BIN
dataset/midi/mz_311_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_311_2.mid
Normal file
BIN
dataset/midi/mz_311_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_311_3.mid
Normal file
BIN
dataset/midi/mz_311_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_330_1.mid
Normal file
BIN
dataset/midi/mz_330_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_330_2.mid
Normal file
BIN
dataset/midi/mz_330_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_330_3.mid
Normal file
BIN
dataset/midi/mz_330_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_331_1.mid
Normal file
BIN
dataset/midi/mz_331_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_331_2.mid
Normal file
BIN
dataset/midi/mz_331_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_331_3.mid
Normal file
BIN
dataset/midi/mz_331_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_332_1.mid
Normal file
BIN
dataset/midi/mz_332_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_332_2.mid
Normal file
BIN
dataset/midi/mz_332_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_332_3.mid
Normal file
BIN
dataset/midi/mz_332_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_333_1.mid
Normal file
BIN
dataset/midi/mz_333_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_333_2.mid
Normal file
BIN
dataset/midi/mz_333_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_333_3.mid
Normal file
BIN
dataset/midi/mz_333_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_545_1.mid
Normal file
BIN
dataset/midi/mz_545_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_545_2.mid
Normal file
BIN
dataset/midi/mz_545_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_545_3.mid
Normal file
BIN
dataset/midi/mz_545_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_570_1.mid
Normal file
BIN
dataset/midi/mz_570_1.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_570_2.mid
Normal file
BIN
dataset/midi/mz_570_2.mid
Normal file
Binary file not shown.
BIN
dataset/midi/mz_570_3.mid
Normal file
BIN
dataset/midi/mz_570_3.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_april.mid
Normal file
BIN
dataset/midi/ty_april.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_august.mid
Normal file
BIN
dataset/midi/ty_august.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_dezember.mid
Normal file
BIN
dataset/midi/ty_dezember.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_februar.mid
Normal file
BIN
dataset/midi/ty_februar.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_januar.mid
Normal file
BIN
dataset/midi/ty_januar.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_juli.mid
Normal file
BIN
dataset/midi/ty_juli.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_juni.mid
Normal file
BIN
dataset/midi/ty_juni.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_maerz.mid
Normal file
BIN
dataset/midi/ty_maerz.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_mai.mid
Normal file
BIN
dataset/midi/ty_mai.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_november.mid
Normal file
BIN
dataset/midi/ty_november.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_oktober.mid
Normal file
BIN
dataset/midi/ty_oktober.mid
Normal file
Binary file not shown.
BIN
dataset/midi/ty_september.mid
Normal file
BIN
dataset/midi/ty_september.mid
Normal file
Binary file not shown.
44
prepare_dataset.py
Normal file
44
prepare_dataset.py
Normal file
@ -0,0 +1,44 @@
|
||||
from glob import glob
|
||||
from argparse import ArgumentParser
|
||||
from os import system, path
|
||||
import csv
|
||||
|
||||
|
||||
parser = ArgumentParser(description="Prepare dataset from midi files for later use in onsets and frames.")
|
||||
parser.add_argument('--dry', '-d', dest='dry', action='store_true', help="Dry run, print commands instead of executing them")
|
||||
parser.add_argument('--no-convert', '-m', dest='no_convert', action='store_true', help="Only create manifest.")
|
||||
parser.add_argument('--soundfont', '-f', default='/usr/share/sounds/sf2/FluidR3_GM.sf2', help="Path to soundfont.")
|
||||
parser.add_argument('-n', type=int, help="Max midi files to process")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
execute = print if args.dry else system
|
||||
|
||||
processed = 0
|
||||
if not args.no_convert:
|
||||
for midi in glob("dataset/midi/*.mid"):
|
||||
wav = midi.replace('.mid', '.wav').replace('/midi/', '/wav/')
|
||||
|
||||
processed = processed + 1
|
||||
if 'n' in args and processed > args.n:
|
||||
break
|
||||
|
||||
if path.isfile(wav):
|
||||
continue
|
||||
|
||||
print(f"Converting {midi} to {wav}")
|
||||
execute(f"fluidsynth -nli -r 48000 -T wav -F {wav} {args.soundfont} {midi} > /dev/null")
|
||||
|
||||
|
||||
manifest = []
|
||||
for wav in glob("dataset/wav/*.wav"):
|
||||
midi = wav.replace('.wav', '.mid').replace('/wav/', '/midi/')
|
||||
|
||||
if path.isfile(midi):
|
||||
manifest.append((path.basename(wav), path.basename(midi), 'test'))
|
||||
|
||||
|
||||
with open('dataset/manifest.csv', 'w') as manifest_file:
|
||||
writer = csv.writer(manifest_file)
|
||||
writer.writerow(('audio_filename', 'midi_filename', 'split'))
|
||||
writer.writerows(manifest)
|
Loading…
Reference in New Issue
Block a user