【问题标题】:"Innerjoin" two audio files with python to get the overlapping audio用python“Innerjoin”两个音频文件以获得重叠的音频
【发布时间】:2020-01-31 21:43:31
【问题描述】:

我有两个音频文件,想在 python3 中相互比较文件。

以下是两个音频文件的示例,x 轴为频率:

Audio A

Audio B

您知道创建仅包含重叠频率的新音频文件的好方法吗? (可与 MySQL 中的“innerjoin”相比)

过滤和编辑我一直在使用 ThinkDSP 的音频文件 (https://github.com/AllenDowney/ThinkDSP)

【问题讨论】:

  • 这是用样本 B 去噪样本 A(反之亦然)吗?还是在另一种声音中检测一种声音?
  • 目标是比较大量样本以了解平均样本的外观。之后,您可以将平均样本与新闻记录的样本进行比较。所以实际上你可以两者兼得

标签: python-3.x audio audio-processing frequency-analysis


【解决方案1】:

步骤 1 现在暂时忽略频率重叠...并使用 FFT 转换音频(时域),这将为您提供数据(频率域)在这里您有一个频率箱数组,每个箱都有一个幅度和相移...然后将此数据输入逆 FFT 以再次将您的数据作为音频(时域)...确认您的代码正常工作的好方法是您的音频输出将匹配您的音频输入

在上面的代码工作正常之后的第 2 步,然后增强上面的代码,使值 0 成为没有重叠的每个频率 bin(频率域)的幅度(幅度)......就这么简单

在第 2 步中,您的数据位于频域(在将音频发送到 FFT 调用之后),这通常是复数数组...here is some pseudocode to parse this array

您将面临一个挑战,即希望使用尽可能少的音频样本来获得尽可能多的时间特异性(如果您使用太多的音频样本,您的音频听起来会像糊状)......但是,如果您使用的音频样本太少,则频率箱的粒度会很低,这意味着您的频率域中的每个频率之间的增量会更大

【讨论】:

  • 感谢您的建议。我要试一试,但我不确定如何使用 python 实现第 2 步。您是否使用某个 python 库丢弃不自动匹配的频域?
猜你喜欢
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 2018-07-18
  • 2011-03-11
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
相关资源
最近更新 更多