预处理音频信号以进行神经网络分类

信息处理 信号分析 机器学习 预处理
2022-02-07 08:52:24

我需要识别从听诊器中的麦克风记录的音频信号的某些特征。这些声音只是我找到的样本,但最终的信号可能会更嘈杂(也许不是,我还不知道)。以下是三个信号的示例。正常的一种,一种是心房空间缺损的病人,另一种是晚期主动脉瓣狭窄的人。这两个波动分别被命名为 S1 和 S2,它们是我感兴趣的主要主题。根据给定的心脏状况,S1 可能会加倍,并且在 S1 和 S2 之间可能会有一些“嘈杂”的声音(也有咔哒声)。整个周期(S1、S2)的长度可能因心率而异。

我的问题是,我应该执行什么样的处理才能确定提取和识别这些特征,即通常有两个大的波动,它们之间有轻微的延迟,如果人生病了,它可能是 S1 之前的东西,或者 S1 和 S2 之间的东西,或者 S1 可能加倍。据我所知,通常 S1 的振幅尖峰比 S2 更大。

我在这个领域的知识非常有限,并且不确定我可以使用哪些选项。FFT 幅度图显示了一些可识别的结果,但我认为那里有太多不需要的信息,而且它们并不是那么明显。

样本本身可以在这里找到:华盛顿大学:心音样本

正常心音: 正常心音 心房空间缺损心音: 心房空间缺损心音 晚期主动脉瓣狭窄: 晚期主动脉瓣狭窄

2个回答

一些可能有帮助的提示:

  1. 您的 FFT 应该比您尝试检测的特征更短。将为特定数量的样本计算 FFT。这表示一定的时间长度(1kHz 采样率下的 1024 个样本为 1024 毫秒。)如果 FFT 的时间段长于信号特征,那么它们将全部涂抹在一起 - 您将无法识别特征. 您必须在足够的频率分辨率和足够的时间分辨率之间为您的 FFT 长度找到一个折衷方案。所需的频率分辨率取决于您需要检测的特征的频率内容,时间分辨率取决于特征的长度(以及没有特征时的时间长度 - 这本身可能是您需要注意的特征的。)
  2. 根据频率范围对特征进行分类。对这些范围的 FFT 点进行平均 - 这将为您提供该功能的强度。
  3. 绘制特征强度与时间的关系。
  4. 找到每种心脏缺陷类型所特有的特征强度分组——这些是您需要能够识别的东西。例如:肺动脉狭窄同时具有低频(正常的心跳声)和高频(杂音),但在节拍之间没有杂音类型的声音 - 但它也有您需要检测的咔嗒声。
  5. 您需要通过节拍之间的停顿来检测 S1 和 S2 - 长停顿后短意味着最后一拍是 S2。
  6. 您引用的站点上的示例已被清理,但它们仍然具有可能试图作为功能潜入的东西。我听到 60Hz 的电源嗡嗡声,还有一些来自用于清理东西的过滤器的振铃。其中一些也有一些背景“白”噪声。

我会尝试将文件加载到Baudline 中,并首先查看如何通过眼睛识别特征及其组合。Baudline 可以向您展示频率内容如何随时间变化,以便您查看特征和相对时序之间的关系。在加载到 Baudline 之前,使用Audacity将 mp3 文件转换为 wav 并下采样到 1000Hz 采样率。

Baudline Color Aperture 可以方便地使图表的某些部分突出 - 这可以更容易识别特征。

Baudline 仅适用于 Unix 类型系统(Linux、BSD、Mac OSX),但我确信 Windows 也有类似的软件。Audacity 可用于 Windows 以及 Linux 和 OSX。

在我看来,您可以根据频谱内容和绝对希尔伯特包络识别三个信号之间的差异。

有缺陷的心跳中有更多的高频内容,因此您可以比较高频中的 FFT 幅度。

健康信号的包络是很好的曲线,就像余弦窗口一样,因此您可以再次测量包络与余弦窗口或健康心跳包络的差异程度。