如何使用 org.openimaj.ml.gmm 构建扬声器模型。
Posted
技术标签:
【中文标题】如何使用 org.openimaj.ml.gmm 构建扬声器模型。【英文标题】:How to use org.openimaj.ml.gmm to construct speaker models. 【发布时间】:2015-06-02 15:49:17 【问题描述】:我想知道如何使用 OpenIMaj 库获得 GMM 扬声器模型。 org.openimaj.ml.gmm.GaussianMixtureModelEM。我试过关注
GaussianMixtureModelEM gmm = new GaussianMixtureModelEM
(DEFAULT_NUMBER_COMPONENTS,GaussianMixtureModelEM.CovarianceType.Diagonal);
MixtureOfGaussians mixture = gmm.estimate(data);
boolean convergerd = gmm.hasConverged();
我得到 true GaussianMixtureModelEM 已经收敛,我不知道该去哪里。任何帮助指导将不胜感激。
【问题讨论】:
您能解释一下您希望实现的目标吗?执行 GMMEM 后,通常会使用生成的 MixtureOfGaussian 模型来计算概率或抽取样本。 我有 935 个点,每个点的维度为 20,我使用了 256 个组件。 gmm.estimate(data) 返回我 256 个高斯和 256 个权重向量,其中每个高斯具有均值和方差(均为 20 维),接下来正如您提到的,我可以计算概率或者我可以从高斯分布中抽取样本。如何获得单个 logLikelyhood 值?我应该计算空间中给定点相对于由高斯混合表示的 PDF 的概率并将它们相加吗? 【参考方案1】:鉴于您的评论,mixture.estimateLogProbability(point)
应该做您想做的事(请参阅http://www.openimaj.org/apidocs/org/openimaj/math/statistics/distribution/MixtureOfGaussians.html#estimateLogProbability(double[]))。
【讨论】:
谢谢乔恩,我想通了。乔恩,如果我没记错的话,你是 Openimaj 的作者之一。我一直在寻找 GMM 和其他相关的来源,如果你能在我无法获得来源的地方指导我。 您好,将 double log[] prob = mix.estimateLogProbability(point) 转换为通过 logProb 的指数得到实际概率是否安全。 代码在这里:github.com/openimaj/openimaj/blob/master/machine-learning/… 是的,要估计实际概率,使用指数是安全的。 到目前为止一切顺利。经典的高斯混合效果很好。关于如何将 GMM-EM 扩展到 GMM-EM MAP 培训的任何建议?这样它也可以用于通用背景建模?以上是关于如何使用 org.openimaj.ml.gmm 构建扬声器模型。的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]