gpt4 book ai didi

用神经网络分离音频信号源

转载 作者:行者123 更新时间:2023-11-30 08:23:34 24 4
gpt4 key购买 nike

我想要做的是分离音频源并从原始信号中提取其音高。
我自己模拟了这个过程,如下所示:
model to decomposite the raw signal
每个源在 normal modes 中振荡, 常使其分量峰的频率整数相乘。它被称为 Harmonic .然后 resonanced ,最后线性组合。

如上所示,我在音频信号的频率响应模式方面有很多提示,但几乎不知道如何“分离”它。我已经尝试了无数我自己的模型。这是其中之一:

  • FFT PCM
  • 获取峰值频率区间和幅度。
  • 计算音调候选频率仓。
  • 对于每个音调候选,使用循环神经网络分析所有峰值并找到合适的峰值组合。
  • 单独分析的候选音调。

  • 不幸的是,到目前为止,我还没有成功地分离信号。
    我想要任何解决此类问题的建议。
    特别是在像我上面那样的源分离建模中。

    最佳答案

    因为没有人真正尝试过回答这个问题,而且你已经用 neural-network 标记了它。标签,我将解决神经网络对此类问题的适用性。由于问题有点非技术性,因此这个答案也将是“高水平”的。

    神经网络需要某种样本集来学习。为了“教”一个神经网络来解决这个问题,你基本上需要有一组已知的解决方案来工作。你有这个吗?如果是这样,请继续阅读。如果没有,神经可能不是你想要的。你说你有“很多提示”,但没有真正的解决方案。这让我相信你可能没有样本集。如果你能得到它们,太好了,否则你可能会倒霉。

    假设现在您有一个样本集 Raw Signal sample 和相应的 Source 1Source 2输出...好吧,现在您将需要一种方法来决定拓扑。假设您不太了解神经网络的工作原理(并且不想),并且假设您也不知道问题的确切复杂程度,我可能会推荐 open source NEAT package让你开始。我与这个项目没有任何关系,但我已经使用过它,它允许你(相对)智能地演化神经网络拓扑以适应问题。

    现在,就神经网络如何解决这个特定问题而言。首先想到的是所有音频信号本质上都是时间序列。也就是说,它们传达的信息在某种程度上依赖于并与先前时间步长的数据相关(例如,无法从单个时间点检测某些波形;它也需要有关先前时间步长的信息)。同样,有上百万种方法可以解决这个问题,但因为我已经推荐 NEAT我可能会建议您查看 C++ NEAT Time Series模式

    如果您沿着这条路线走下去,您可能希望使用某种滑动窗口来提供有关每个时间步的最近过去的信息。有关滑动窗口的快速而肮脏的介绍,请查看此问题:

    Time Series Prediction via Neural Networks

    滑动窗口的大小可能很重要,特别是如果您是 不是 使用循环神经网络。循环网络允许神经网络记住之前的时间步长(以性能为代价 - NEAT 已经是循环的,因此这里为您做出选择)。您可能希望滑动窗口长度(即过去在每个时间步提供的时间步数)大致等于您对获得足够信息以拆分波形所需的最大先前时间步数的保守猜测。

    我想说这可能足以让您入门。

    在决定如何向神经网络提供数据时,您首先要对输入信号进行归一化(考虑 sigmoid function)并试验不同的传递函数(sigmoid 可能是一个很好的起点)。

    我想你会想要有 2 个输出神经元,提供归一化幅度(你可以通过 sigmoid 函数的反函数对其进行非归一化)作为表示 Source 1 的输出。和 Source 2分别。对于适应度值(您判断每个测试网络解决问题的能力的方式)将是输出信号相对于实际已知信号的 RMS 误差的负值(即针对样本 I 测试)之前指的是您需要采购)。

    可以说,这不是一个微不足道的操作,但如果您有足够的样本来训练网络,它就可以工作。什么是好的样本数?根据经验,它大致是一个足够大的数字,使得一个简单的多项式函数的阶 N (其中 N 是解决问题所需的神经网络中的神经元数量)不能 准确地拟合所有样本。这基本上是为了确保您不仅仅是 overfitting the problem ,这是神经网络的一个严重问题。

    我希望这是有帮助的!祝你好运。

    附加说明 : 如果你走这条路,你迄今为止的工作不会白费。神经网络可能会从 FFT 和其他信号建模“输入”形式的额外“帮助”中受益,因此您可能需要考虑将您已经完成的信号处理,组织成模拟的、连续的表示并提供给它作为输入信号旁边的输入。

    关于用神经网络分离音频信号源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21508109/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com