Timbre_Analysis.py 文件源码

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

项目:msd-genrecl 作者: Phonicavi 项目源码 文件源码
def Inner_GMM(SingleGenreSongs,numOfClusters):
    means = [item.mean_timbreVec for item in SingleGenreSongs]
    means_array = np.array(means)
    model = mixture.GMM(n_components = numOfClusters,covariance_type = 'full',n_init = 10)
    model.fit(means)

    lbls = model.predict(means)

    clusters_mean = [[] for i in range(numOfClusters)];
    clusters_cov = [[] for i in range(numOfClusters)];
    clusters_cnt = [0 for i in range(numOfClusters)];
    ret_clusters_mean = [[] for i in range(numOfClusters)];
    ret_clusters_cov = [[] for i in range(numOfClusters)];

    assert(len(lbls) == len(SingleGenreSongs))

    for i in range(len(lbls)):
        lb = lbls[i]
        clusters_mean[lb].append(np.array(SingleGenreSongs[i].mean_timbreVec))
        clusters_cov[lb].append(np.array(SingleGenreSongs[i].cov_timbreVec))
        clusters_cnt[lb] += 1


    for i in range(numOfClusters):
        # print type(clusters_mean[i][0])
        ret_clusters_mean[i] = sum(clusters_mean[i])
        ret_clusters_cov[i] = sum(clusters_cov[i])
        # print type(ret_clusters_mean[i][0])
        ret_clusters_mean[i] = [(item)/clusters_cnt[i] for item in ret_clusters_mean[i]]
        ret_clusters_cov[i] = [(item)/clusters_cnt[i] for item in ret_clusters_cov[i]]
    return ret_clusters_mean,ret_clusters_cov

    # return model.means_,model.covars_
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号