in scripts/make_dataset.py [0:0]
def fetch_signals(self, number_of_speakers):
# read random spealers
self.num_of_speakers = number_of_speakers
# (num_speakers,singlas)
signals = np.zeros((self.num_of_speakers, self.size_of_signals))
sig_indx = np.random.randint(
low=0, high=self.len, size=self.num_of_speakers)
names = list()
for i in range(self.num_of_speakers):
speaker = self.speakers[sig_indx[i]]
cand_names = glob.glob(os.path.join(speaker + "/**","*.wav"))
select_name_indx = np.random.randint(
low=0, high=len(cand_names), size=1)
name = cand_names[select_name_indx[0]]
names.append(os.path.basename(name)[:-14])
s, fs = sf.read(name)
if len(s.shape) > 1:
s = s[:, 0]
s = quantize(s)
l = len(s)
if l > self.size_of_signals:
noise_scale = np.std(s[0:self.size_of_signals]) / 80
temp_noise = np.random.randn(self.size_of_signals,) * noise_scale
signals[i] = temp_noise
signals[i, :] = signals[i, 0:l] + s[0:self.size_of_signals]
else:
noise_scale = np.std(s) / 80
temp_noise = np.random.randn(self.size_of_signals,) * noise_scale
signals[i] = temp_noise
signals[i, 0:l] = signals[i, 0:l] + s
return signals, names