EchoNest Analyzer 文档说明了以下有关音色的内容:
音色是区分不同类型乐器或声音的音符或声音的质量。它是一个复杂的概念,也称为声音颜色、纹理或音质,它源自片段的频谱时间表面的形状,与音高和响度无关。Echo Nest Analyzer 的音色特征是一个包含 12 个大致以 0 为中心的无界值的向量。这些值是频谱表面的高级抽象,按重要性排序。然而,为了完整起见,第一个维度表示片段的平均响度;第二强调亮度;第三个与声音的平坦度更密切相关;第四是具有更强攻击力的声音;等等。见下图代表 12 个基函数(即模板段)。片段的实际音色最好描述为由系数值加权的这 12 个基函数的线性组合:音色 = c1 x b1 + c2 x b2 + ... + c12 x b12,其中 c1 到 c12 代表 12 个系数和 b1 到 b12 的 12 个基函数,如下所示。音色向量最好用于相互比较。
我的理解是b
向量 ( {b1...b12}
) 是您的 APIgetTimbre
方法返回的内容。但是,{c1...c12}
系数从何而来?我不明白如何从矢量音色中获取标量音色(主要是因为您的分析 API 是封闭源代码)。你能帮我解决这个问题吗?