【发布时间】:2021-12-12 02:44:35
【问题描述】:
我有一个数字听诊器,我可以用安卓手机轻松录制人的心音,而且很清晰,我可以从录制的文件中清晰地听到 lub-dub(s1-S2)。
我想计算录制音频的心率,有什么方法可以从音频文件中计算 BPM?
我已经在 Kotlin 和 java 中编写了一些 Android 应用程序。
提前致谢
【问题讨论】:
-
对库的请求与主题无关。但我推荐 Noise 使用 FFT。您必须阅读 FFT 的数学知识,才能知道您在寻找什么来找到热节拍。
-
除非心脏在振荡(在这种情况下与您的患者交谈)我不确定傅立叶变换会告诉您很多信息。对于 bpm,您需要检测峰值并找到它们之间的距离。使用 wav,您将知道采样率,因此可以推断峰值之间的持续时间。您可能希望有一个读数的移动平均窗口以保持一定的稳定性。如果这是出于医疗目的,请咨询大学,而不是互联网。无论如何,遗憾的是,这不是一个适合 SO 的问题。
-
所有声音都在振荡。 FFT 可用于滤除您不关心的声音频率和一般噪声,因此您可以对峰值进行更清晰的信号采样。当然,这可能没有必要。我从未使用过心跳音频。
-
你能上传一个或几个音频文件吗?
-
@JonNordby 我无法与您共享该文件
标签: java android kotlin audio audio-processing