contour_utils.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:SourceFilterContoursMelody 作者: juanjobosch 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号