2

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 是封闭源代码)。你能帮我解决这个问题吗?

4

1 回答 1

3

请注意,本网站上的答案来自志愿者。要获得图书馆的官方支持,您需要直接联系出版商。

b1 … b12不是音频分析的结果,它只是描述分析的作用。它们是固定常数,如图所示:

在此处输入图像描述

标量向量 c1 … c12 是分析仪产生的。当然,仅用 12 个数字无法完美地描述声音。将标量乘以函数不会再现原始音乐,因为那里没有足够的数据;这只是一个近似值。不过,您可能会从每个片段中获得相似的“情绪”,因此尝试聆听可能会很有趣。

于 2015-08-30T03:42:08.003 回答