File size: 1,328 Bytes
607ecc1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
from pathlib import Path

import click
import gin

from neural_waveshaping_synthesis.data.utils.create_dataset import create_dataset
from neural_waveshaping_synthesis.utils import seed_all

INSTRUMENTS = (
    "vn",
    "vc",
    "fl",
    "cl",
    "tpt",
    "sax",
    "tbn",
    "ob",
    "va",
    "bn",
    "hn",
    "db",
)


def get_instrument_file_list(instrument_string, directory):
    return [
        str(f)
        for f in Path(directory).glob(
            "**/*_%s_*/AuSep*_%s_*.wav" % (instrument_string, instrument_string)
        )
    ]


@click.command()
@click.option("--gin-file", prompt="Gin config file")
@click.option("--data-directory", prompt="Data directory")
@click.option("--output-directory", prompt="Output directory")
@click.option("--seed", default=0)
@click.option("--device", default="cpu")
def main(gin_file, data_directory, output_directory, seed=0, device="cpu"):
    gin.constant("device", device)
    gin.parse_config_file(gin_file)

    seed_all(seed)

    file_lists = {
        instrument: get_instrument_file_list(instrument, data_directory)
        for instrument in INSTRUMENTS
    }
    for instrument in file_lists:
        create_dataset(
            file_lists[instrument], os.path.join(output_directory, instrument)
        )


if __name__ == "__main__":
    main()