def __init__(self, opt):
        """Initialize this dataset class.

        Parameters:
        opt (Option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions
        """
        # save the option and dataset root
        BaseDataset.__init__(self, opt)
        # get the audio path
        # TODO: search genre and maintain a list

        FMA

        # self.A_dir = os.path.isdir(os.path.join(self.root, opt.A_subdir))
        # self.B_dir = os.path.isdir(os.path.join(self.root, opt.B_subdir))

        self.A_paths = sorted(make_dataset(self.A_dir, opt.max_dataset_size))
        self.B_paths = sorted(make_dataset(self.B_dir, opt.max_dataset_size))

        self.A_size = len(self.A_paths)
        self.B_size = len(self.B_paths)

        self.sample_rate = opt.sample_rate
        self.nfft = opt.nfft
        self.mel = opt.mel
Esempio n. 2
0
    def initialize(self, opt):
        self.opt = opt
        self.DirClean = opt.PathClean
        self.DirNoise = opt.PathNoise
        self.snr = opt.snr

        self.Clean = make_dataset(self.DirClean, opt)
        self.Noise = make_dataset(self.DirNoise, opt)

        self.SR = opt.SR
        self.hop = opt.hop
        self.nfft = self.opt.nfft
Esempio n. 3
0
 def initialize(self, opt):
     self.opt = opt
     self.Dir = opt.Path
     self.Data, self.Labels, self.Fnames = make_dataset(opt)
     self.pinkNoise = getMel(
         '/home/diggerdu/dataset/tfsrc/train/_background_noise_/pink_noise.wav',
         opt)
     self.oriLen = len(self.Data)
     self.SR = opt.SR
     self.hop = opt.hop
     self.nfft = self.opt.nfft
     self.table = [
         'yes', 'no', 'up', 'down', 'left', 'right', 'on', 'off', 'stop',
         'go', 'silence', 'unknown'
     ]
     if opt.isTrain:
         self.augFuncList = [lambda x: x, freqFilter()]
     else:
         self.augFuncList = [lambda x: x]
    def __init__(self, opt):
        """Initialize this dataset class.

        Parameters:
        opt (Option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions

        A few things can be done here.
        - save the options (have been done in BaseDataset)
        - get image paths and meta information of the dataset.
        - define the image transformation.
        """
        # save the option and dataset root
        BaseDataset.__init__(self, opt)
        # get the audio path
        self.dirpath = os.path.isdir('{}/{}', self.root, opt.subdir)

        # TODO: Use cache if it exists
        # self.cachedir = os.path.join(self.dirpath, '__cache')
        # mkdir(self.cachedir)
        # metadata_file = os.path.join(self.cachedir, 'metadata.csv')
        # if os.path.exist(metadata_file):
        #     with open(metadata_file, 'r') as f:
        #         metadata = json.load(f)
        # else:
        #     metadata = dict()

        self.audio_paths = sorted(
            make_dataset(self.dirpath, opt.max_dataset_size))
        self.frame_paths = list()
        self.sample_rate = opt.sample_rate
        self.length = opt.length
        self.stride = opt.stride
        self.nfft = opt.nfft
        self.subdir = opt.subdir
        self.mel = opt.mel

        for p in self.audio_paths:
            # Load audio
            filename = os.path.splitext(os.path.basename(p))[0]
            y, sr = sf.read(p, dtype='float32')
            t = librosa.get_duration(y=y, sr=sr)
            # Resample Audio
            if sr != self.sample_rate:
                y = librosa.resample(y, sr, self.sample_rate)
            # Pad the audio
            l = t % opt.stride
            if l != 0:
                t = t + 15 - l
                y = librosa.util.fix_length(y, t * self.sample_rate)
            # Length Check
            if t < self.length:
                print('Skipping {} due to short content length'.format(p))
                continue
            # Compute frames and store
            frames = self.frame(y, sr, length=self.length, stride=self.stride)
            # cannot store all the frames; store it into files
            for i in len(frames):
                fp = os.path.join(cachedir, '{}.{}.npy'.format(filename, i))
                np.save(fp, frames[:, i])
                self.frame_paths.append({
                    'file': filename,
                    'frame': i,
                    'path': fp
                })