def interpolate_f0(self, f0_file): io_funcs = BinaryIOCollection() data = io_funcs.load_float_file(f0_file) ip_data = data frame_number = len(data) last_value = 0.0 for i in xrange(frame_number): if data[i] <= 0.0: j = i + 1 for j in range(i + 1, frame_number): if data[j] > 0.0: break if j < frame_number - 1: if last_value > 0.0: step = (data[j] - data[i - 1]) / float(j - i) for k in range(i, j): ip_data[k] = data[i - 1] + step * (k - i + 1) else: for k in range(i, j): ip_data[k] = data[j] else: for k in range(i, frame_number): ip_data[k] = last_value else: ip_data[i] = data[i] last_value = data[i] return ip_data
os.makedirs(out_f0_dir) ### Single file processing ### SFP = False if SFP: # filename = 'TheHareandtheTortoise_097_24-23-1-2-1-0' filename = 'GoldilocksandtheThreeBears_000_24-0-24-3-0-2' print 'processing...' + filename f0_file = os.path.join(f0_dir, filename + '.f0') lab_file = os.path.join(lab_dir, filename + '.lab') out_file = os.path.join(out_dir, filename + '.cmp') ### processing f0 file ### ori_f0_data = io_funcs.load_float_file( f0_file) # # to process float f0 file # ori_lf0_data, frame_number = io_funcs.load_binary_file_frame(lf0_file, 1) # ori_lf0_data = np.exp(ori_f0_data) # interp_f0_arr = f0_processing.process(ori_f0_data) interp_f0_arr = prosody_funcs.interpolate_f0(f0_file) ### read label file ### [phone, ph_arr, mean_f0_arr] = prosody_funcs.read_state_align_label_file(lab_file) ### decomposition of f0 file ### [dct_features, stat_features ] = prosody_funcs.DCT_decomposition(phone, ph_arr, mean_f0_arr, interp_f0_arr, decomposition_unit, coef_size) prosody_feats = np.concatenate((dct_features, stat_features), axis=0)
org_dur_features.append(st_arr[j][k] / (np.power(10, 4) * 5)) org_dur_features = np.array(org_dur_features).reshape( num_of_phones, 5) org_dur_all_files = np.concatenate( (org_dur_all_files, np.sum(np.array(org_dur_features), axis=1)), axis=0) #print np.sum(np.array(org_dur_features), axis=1) ### load generated output ### # gen_data = io_funcs.load_binary_file(gen_file, 1) gen_file = os.path.join(gen_dir, filename + '.cmp') gen_data = io_funcs.load_float_file(gen_file) ##### denormalization of data ##### print 'denormalizing the data....' if (normalization == "MVN"): denorm_data = data_normalization.MVN_denormalize( gen_data, out_dim, stats_file) #gen_data = io_funcs.load_float_file(gen_file) #bkp_denorm_data = data_normalization.MVN_denormalize(gen_data, out_dim, stats_file) else: denorm_data = gen_data denorm_data = np.array(denorm_data) #bkp_denorm_data = np.array(bkp_denorm_data) ### post-processing of state-duration modification ###
ph_all_files.append(phone[j]) for k in range(5): org_dur_features.append(st_arr[j][k]/(np.power(10,4)*5)) org_dur_features = np.array(org_dur_features).reshape(num_of_phones, 5) org_dur_all_files = np.concatenate((org_dur_all_files, np.sum(np.array(org_dur_features), axis=1)), axis=0) #print np.sum(np.array(org_dur_features), axis=1) ### load generated output ### # gen_data = io_funcs.load_binary_file(gen_file, 1) gen_file = os.path.join(gen_dir, filename + '.cmp') gen_data = io_funcs.load_float_file(gen_file) ##### denormalization of data ##### print 'denormalizing the data....' if(normalization == "MVN"): denorm_data = data_normalization.MVN_denormalize(gen_data, out_dim, stats_file) #gen_data = io_funcs.load_float_file(gen_file) #bkp_denorm_data = data_normalization.MVN_denormalize(gen_data, out_dim, stats_file) else: denorm_data = gen_data denorm_data = np.array(denorm_data) #bkp_denorm_data = np.array(bkp_denorm_data) ### post-processing of state-duration modification ### if out_dim==8:
os.makedirs(out_f0_dir) ### Single file processing ### SFP = False; if SFP: # filename = 'TheHareandtheTortoise_097_24-23-1-2-1-0' filename = 'GoldilocksandtheThreeBears_000_24-0-24-3-0-2' print 'processing...'+filename f0_file = os.path.join(f0_dir, filename + '.f0') lab_file = os.path.join(lab_dir, filename + '.lab') out_file = os.path.join(out_dir, filename + '.cmp') ### processing f0 file ### ori_f0_data = io_funcs.load_float_file(f0_file) # # to process float f0 file # ori_lf0_data, frame_number = io_funcs.load_binary_file_frame(lf0_file, 1) # ori_lf0_data = np.exp(ori_f0_data) # interp_f0_arr = f0_processing.process(ori_f0_data) interp_f0_arr = prosody_funcs.interpolate_f0(f0_file) ### read label file ### [phone, ph_arr, mean_f0_arr] = prosody_funcs.read_state_align_label_file(lab_file) ### decomposition of f0 file ### [dct_features, stat_features] = prosody_funcs.DCT_decomposition(phone, ph_arr, mean_f0_arr, interp_f0_arr, decomposition_unit, coef_size) prosody_feats = np.concatenate((dct_features, stat_features), axis=0) # io_funcs.array_to_binary_file(dct_features, out_file) nrows = len(dct_features)/coef_size X1 = np.array(dct_features).reshape(nrows, coef_size)
feat_dir_path + '/') if not os.path.exists(out_dir): os.makedirs(out_dir) ### Single file processing ### SFP = 1 if SFP: # filename = 'TheHareandtheTortoise_097_24-23-1-2-1-0' filename = 'GoldilocksandtheThreeBears_000_24-0-24-3-0-2' f0_file = os.path.join(f0_dir, filename + '.f0') lab_file = os.path.join(lab_dir, filename + '.lab') out_file = os.path.join(out_dir, filename + '.cmp') ### processing f0 file ### ori_f0_data = io_funcs.load_float_file( f0_file) # # to process float f0 file # ori_lf0_data, frame_number = io_funcs.load_binary_file_frame(lf0_file, 1) # ori_lf0_data = np.exp(ori_f0_data) # interp_f0_arr = f0_processing.process(ori_f0_data) interp_f0_arr = prosody_funcs.interpolate_f0(f0_file) ### read label file ### [phone, ph_arr, mean_f0_arr] = prosody_funcs.read_state_align_label_file(lab_file) ### decomposition of f0 file ### [dct_features, stat_features ] = prosody_funcs.DCT_decomposition(phone, ph_arr, mean_f0_arr, interp_f0_arr, decomposition_unit, coef_size) prosody_feats = np.concatenate((dct_features, stat_features), axis=0)