.wav 信号的音频分离

Posted

技术标签:

【中文标题】.wav 信号的音频分离【英文标题】:Audio Separation of .wav signal 【发布时间】:2013-09-13 20:38:20 【问题描述】:

我已阅读以下问题:Here

我正在尝试做的是获取一个信号(.wav 音频文件),其中包含来自不同蝙蝠物种的呼叫。这是信号的图形表示:

到目前为止我所做的是:

1) 强调信号

2) 压缩信号

这是我绘制的输出:

我需要删除不值得考虑的信号。目前,信号是一维表示,在分离完成后,信号将是一个仅包含调用的 2D 表示,因此我可以对每个调用进行分析。

这是我建议的方法:

1) 将信号拆分为:256x100 的块(因此它们重叠)

2) 计算每个块的 RMS(均方根)

3) 将 (2) 与阈值进行比较,如果该块值得考虑,则可以将其归类为调用。

但问题是这样的:

1) 将信号分成 256x100 的块是否会覆盖调用,从而在计算 RMS 时导致一些调用丢失?

2) 我如何选择合适的阈值?找到信号中的峰值会是一个准确的假设吗?

我希望有人可以帮助我:)

【问题讨论】:

这个问题似乎离题了,因为它是关于信号处理的(可能更适合dsp.stackexchange.com)。 @OliCharlesworth 我也在那里问过 :) DSP 不会经常更新,并且有一些 S/O 具有 DSP 知识的人可能不会访问该站点。 请不要交叉发布到两个列表。 @BjornRoche 我的错。我只是想解决我面临的问题 谁能帮帮我? 【参考方案1】:

如果您使用 matlab,我建议您使用中值滤波器 - medfilt1()。这将允许您删除异常值,这是您在此处尝试执行的操作。您可以设置所需的窗口大小,并将值设置为每个窗口的中值,如果没有异常值,该值应该接近实际值。

如果数据过于复杂,您可能需要考虑 6 sigma 方法,该方法不是计算 RMS,而是计算方差并删除超出 +-3 标准偏差的数据点。

【讨论】:

以上是关于.wav 信号的音频分离的主要内容,如果未能解决你的问题,请参考以下文章

音频信号处理

怎么用MATLAB进行两个语音信号.wav文件的卷积混合?

数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )

数字信号处理傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )

Matlab 音频信号处理

请解释为啥我们在音频信号中使用 32768