def load_contour_data(fpath, normalize=True):
""" Load contour data from vamp output csv file.
Initializes DataFrame to have all future columns.
Parameters
----------
fpath : str
Path to vamp output csv file.
Returns
-------
contour_data : DataFrame
Pandas data frame with all contour data.
"""
try:
contour_data = pd.read_csv(fpath, header=None, index_col=None,
delimiter=',').astype(float)
del contour_data[0] # all zeros
del contour_data[1] # just an unnecessary index
headers = contour_data.columns.values.astype('str')
headers[0:12] = ['onset', 'offset', 'duration', 'pitch mean', 'pitch std',
'salience mean', 'salience std', 'salience tot',
'vibrato', 'vib rate', 'vib extent', 'vib coverage']
contour_data.columns = headers
except:
contour_data = loadpickle(fpath)
# trying to load with pickle
# Check if there is any column with all nans... it should not be considered
df = contour_data.isnull().all()
if np.where(df)[0]:
contour_data = contour_data.drop(contour_data.columns[np.where(df)[0][0]], axis=1)
# To ensure the contour has a duration > 0
contour_data['duration'] = np.fmax(contour_data['duration'].values,0.001)
contour_data.num_end_cols = 0
contour_data['overlap'] = -1 # overlaps are unset
contour_data['labels'] = -1 # all labels are unset
contour_data['melodiness'] = ""
contour_data['mel prob'] = -1
contour_data.num_end_cols = 4
if normalize:
contour_data = normalize_features(contour_data)
return contour_data
contour_utils.py 文件源码
python
阅读 27
收藏 0
点赞 0
评论 0
评论列表
文章目录