def load_and_proc_feats_segm(feats_dir, files, frame_step, min_len, max_len, floatX='float32'): feats_o = [] for f in files: n_avl_samp = pytel.htk.readhtk_header(feats_dir + '/' + f + '.fea')[0] n_sel_samp = np.random.randint(min_len, max_len) if (n_avl_samp <= n_sel_samp): feats_o.append(readhtk(feats_dir + '/' + f + '.fea')) else: # Randomly select the starting point start = np.random.randint(0, n_avl_samp - n_sel_samp) end = start + n_sel_samp feats_o.append( readhtk_segment(feats_dir + '/' + f + '.fea', start, end)) idx = np.cumsum( np.vstack([len(feats_o[i]) for i in range(0, len(feats_o))])) idx = np.insert(idx, 0, 0) # Need these as arrays feats_o = np.vstack(feats_o[i] for i in range(0, len(feats_o))) return [feats_o, idx.astype(floatX)]
def load_jhu_feat_segm(feats_dir, files, min_len, max_len, floatX='float32', rng=np.random, start_from_zero=False): feats = [] for f in files: n_avl_samp = pytel.htk.readhtk_header(feats_dir + '/' + f + '.fea')[0] n_sel_samp = rng.randint(min_len, max_len) # +1) if (n_avl_samp <= n_sel_samp): feats.append(readhtk(feats_dir + '/' + f + '.fea')) else: if start_from_zero: start = 0 else: start = rng.randint(0, n_avl_samp - n_sel_samp + 1) end = start + n_sel_samp feats.append( readhtk_segment(feats_dir + '/' + f + '.fea', start, end)) idx = np.cumsum(np.vstack([len(feats[i]) for i in range(0, len(feats))])) idx = np.insert(idx, 0, 0) return np.vstack(feats)[np.newaxis, :, :], idx
def load_jhu_feat_and_vad(feats_dir, vad_dir, files, floatX='float32'): feats = np.vstack([readhtk(feats_dir + '/' + f + '.fea') for f in files]) vad = [np.genfromtxt(vad_dir + '/' + f + '.vad', dtype=int) for f in files] idx = np.cumsum(np.vstack([len(vad[i]) for i in range(0, len(vad))])) idx = np.insert(idx, 0, 0) return feats, idx, vad
def load_jhu_feat_lab_vad(feats_dir, lab_dir, vad_dir, files, max_frame=-1, feat_is_segm=False, floatX='float32'): if (max_frame == -1): feats = [readhtk(feats_dir + '/' + f + '.fea') for f in files] else: n_avl_samp = [ pytel.htk.readhtk_header(feats_dir + '/' + f + '.fea')[0] for f in files ] feats = [ readhtk_segment(feats_dir + '/' + f + '.fea', start=0, end=np.min((max_frame, n_avl_samp[i]))) for i, f in enumerate(files) ] new_files = [fix_names_2(f) for f in files] lab = [] for i, nf in enumerate(new_files): if feat_is_segm: f, start, end = grep_times(nf) else: f = nf start = 0 end = feats[i].shape[0] l = np.genfromtxt(lab_dir + f + ".hp") if (vad_dir != None): v = pytel.htk.read_lab_to_bool_vec(vad_dir + '/' + f + '.vad', length=len(l), true_label='speech') l = l[v] l = l[start:end] if (len(l) != feats[i].shape[0]): log.warning( "WARNING: The length of lab is %d but lenght of features is %d. Is VAD missing on lab? " % (len(l), feats[i].shape[0])) lab.append(l[:, np.newaxis]) idx = np.cumsum( np.vstack([len(feats[i]) for i in range(0, len(feats))])) idx = np.insert(idx, 0, 0) #print feats print(lab[2].shape) return np.vstack(feats)[np.newaxis, :, :], idx, np.vstack(lab)[ np.newaxis, :, :]
def load_and_proc_feats_expand(vad_dir, feats_dir, files, frame_step=1, floatX='float32', max_length=None): feats_o = [ readhtk(feats_dir + '/' + f + '.fea')[::frame_step, :] for f in files ] feats = [ nn_def_anya.preprocess_nn_input_MFCC( readhtk(feats_dir + '/' + f + '.fea')[0:max_length:frame_step, :]) for f in files ] vad = [ pytel.htk.read_lab_to_bool_vec(vad_dir + '/' + files[i] + '.lab.gz', true_label='sp', length=-len(feats_o[i]))[15:-15] for i in range(0, len(feats)) ] #vad = [pytel.htk.read_lab_to_bool_vec(vad_dir + '/' + files[i]+'.lab.gz', true_label='sp' )[15:-15] # for i in range(0, len(feats)) ] for i in range(0, len(feats)): assert (len(vad) == feats[i].shape[0]) # Now apply the VAD feats_o = np.vstack(feats_o[i][15:-15][vad[i]] for i in range(0, len(feats))) feats = np.vstack(feats[i][vad[i]] for i in range(0, len(feats))) idx = np.cumsum(np.vstack([np.sum(vad[i]) for i in range(0, len(vad))])) idx = np.insert(idx, 0, 0) return [feats, feats_o, idx.astype(floatX)]
def load_feats_segm_vad_time_comb(vad_dir, feats_dir, files, frame_step, min_len, max_len, floatX='float32'): feats_o = [] vad = [] for f in files: n_avl_samp_tot = pytel.htk.readhtk_header(feats_dir + '/' + f + '.fea')[0] vad_tmp = pytel.htk.read_lab_to_bool_vec(vad_dir + '/' + f + '.lab.gz', true_label='sp', length=-n_avl_samp_tot) assert (len(vad_tmp) == n_avl_samp_tot) n_avl_samp = np.sum(vad_tmp) # The speech time n_sel_samp = np.random.randint(min_len, max_len) if (n_avl_samp <= n_sel_samp): feats_o.append(readhtk(feats_dir + '/' + f + '.fea')) vad.append(vad_tmp) else: # Randomly select the starting point start = np.random.randint(0, n_avl_samp - n_sel_samp) end = start + n_sel_samp # Need to find the start and end index idx = np.cumsum(vad_tmp) start = int(np.where(np.cumsum(vad_tmp) == start)[0]) end = int(np.where(np.cumsum(vad_tmp) == end)[0]) feats_o.append( readhtk_segment(feats_dir + '/' + f + '.fea', start, end)) vad.append(vad_tmp[start:end]) idx = np.cumsum(np.vstack([len(feats_o[i]) for i in range(0, len(vad))])) idx = np.insert(idx, 0, 0) # Need these as arrays feats_o = np.vstack(feats_o[i] for i in range(0, len(feats_o))) vad = np.hstack(vad[i] for i in range(0, len(vad))) return [ np.hstack((feats_o, vad[:, np.newaxis].astype(floatX))), idx.astype(floatX) ]
def load_jhu_feat(feats_dir, files, floatX='float32', max_frame=-1): if (max_frame == -1): feats = [readhtk(feats_dir + '/' + f + '.fea') for f in files] else: n_avl_samp = [ pytel.htk.readhtk_header(feats_dir + '/' + f + '.fea')[0] for f in files ] feats = [ readhtk_segment(feats_dir + '/' + f + '.fea', start=0, end=np.min((max_frame, n_avl_samp[i]))) for i, f in enumerate(files) ] idx = np.cumsum(np.vstack([len(feats[i]) for i in range(0, len(feats))])) idx = np.insert(idx, 0, 0) return np.vstack(feats)[np.newaxis, :, :], idx
def load_and_proc_feats(feats_dir, files, frame_step=1, floatX='float32', max_length=None): feats = [] idx = [0] for f in files: f_path = feats_dir + '/' + f + '.fea' if (os.path.isfile(f_path)): tmp_feats = readhtk(feats_dir + '/' + f + '.fea')[0:max_length:frame_step, :] idx.append(tmp_feats.shape[0]) feats.append(tmp_feats) else: idx.append(0) idx = np.cumsum(np.vstack(idx)) feats = np.concatenate(feats) return [feats.astype(floatX), idx.astype(floatX)]
def load_feats_comb(vad_dir, feats_dir, files, frame_step=1, floatX='float32'): feats_o = [ readhtk(feats_dir + '/' + f + '.fea')[::frame_step, :] for f in files ] vad = [ pytel.htk.read_lab_to_bool_vec(vad_dir + '/' + files[i] + '.lab.gz', true_label='sp', length=-len(feats_o[i])) for i in range(0, len(feats_o)) ] idx = np.cumsum(np.vstack([len(feats_o[i]) for i in range(0, len(vad))])) idx = np.insert(idx, 0, 0) # Need these as arrays feats_o = np.vstack(feats_o[i] for i in range(0, len(feats_o))) vad = np.hstack(vad[i] for i in range(0, len(vad))) #return [ np.hstack( ( feats_o, vad[:,np.newaxis].astype(T.config.floatX) ) ), idx.astype('float32') return [ np.hstack((feats_o, vad[:, np.newaxis].astype(floatX))), idx.astype(floatX) ]
def load_feats(vad_dir, feats_dir, files, frame_step=1, floatX='float32'): feats_o = [ readhtk(feats_dir + '/' + f + '.fea')[::frame_step, :] for f in files ] #feats = [ nn_def_anya.preprocess_nn_input_MFCC( readhtk(feats_dir + '/'+ f + '.fea')[::frame_step,:] ) for f in files] vad = [ pytel.htk.read_lab_to_bool_vec(vad_dir + '/' + files[i] + '.lab.gz', true_label='sp', length=-len(feats_o[i])) for i in range(0, len(feats_o)) ] for i in range(0, len(feats_o)): assert (len(vad) == feats_o[i].shape[0]) idx = np.cumsum(np.vstack([len(feats_o[i]) for i in range(0, len(vad))])) idx = np.insert(idx, 0, 0) # Need these as arrays feats_o = np.vstack(feats_o[i] for i in range(0, len(feats_o))) vad = np.hstack(vad[i] for i in range(0, len(vad))) return [feats_o, vad, idx.astype(floatX)]
def load_feats(feat_dir, files, max_length, frame_step): d = [readhtk(feat_dir + '/'+ f + '.fea')[::frame_step,:] for f in files] return [pad_sequences(d, max_length, dtype=float)]