【问题标题】:How do I extract 'features' from the FFT data [closed]如何从 FFT 数据中提取“特征”[关闭]
【发布时间】:2013-05-04 21:16:40
【问题描述】:

我有一个音频可视化器,目前通过 Arduino 代表 3RGB LED。我为每个光通道发送一个值,目前效果很好。

我根据音频的低音程度更改每个通道的强度,并在 Hue 中从 1 到 360 循环,并将 HSV 转换为 RGB,然后发送到 Arduino。

有什么更好的方式来表示更“动态”的音频,而不是仅仅在 1 到 360 度之间循环

【问题讨论】:

    标签: c# fft bass audio


    【解决方案1】:

    你有很多方法来表示音频特征,这完全取决于你想要什么。

    你也有其他算法来检测曲调和其他东西,但我认为它不适合这里。

    您还可以调整强度值,使其不是线性的。 尝试对这些值进行对数标度,它会产生更好的结果(如果我可以说,人耳具有“对数感知”)

    【讨论】:

    • 节拍检测看起来非常复杂:(
    • 这并不复杂,您只需要检测光谱分析中随时间的巨大变化,我相信您可以快速找到一个简单的实现(假设您知道如何进行光谱分析)
    • 目前我只是在我的 FFT 数组中得到 0 到 15 的平均值,该数组总是在更新并使用 HueToHSV 函数,其中平均值是饱和度,它给了我需要的值。那会是光谱分析吗?
    • 实际上您的 FFT 数组包含光谱分析的结果。正如您所说,它会定期更新,因此您需要发现该数组的值与您获得的最后一个值相比有很大的变化,这并不是真正的检测,但它是一个开始。
    • 所以我可以在每次重建平均值时检查以前的值,看看是否有很大的变化,然后从那里我得到最大的变化,然后除以 10 左右得到 RGB 颜色然后再乘以一般平均值以获得某种饱和度?
    猜你喜欢
    • 2018-02-02
    • 2013-12-28
    • 2021-09-21
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2019-03-24
    • 2019-07-09
    • 2013-09-01
    相关资源
    最近更新 更多