如何从通过Android MIC录制的心声中计算每分钟的节拍?

时间:2019-09-10 10:59:26

标签: python audio

我有很多.wav文件,它们通过将手机直接放在人的胸口上通过MIC录制了心音。我想根据这些声音来计算BPM。您能为此提供帮助吗?有图书馆,算法或教程吗?

2 个答案:

答案 0 :(得分:3)

您可以(允许)在某个地方放置一些样品吗?

我玩过一些心电图(最多12个电极)和神经信号(尖峰看上去与R-S过渡非常相似)。这些尖峰是如此之大,只需从scipy.signal中找到一个简单的find_peaks即可检测到它们。在此之前,我使用了Butterworth过滤器。您可能也需要这样做,通常会滤除50 / 60Hz主电源,音频中也可能有类似的噪声。

找到峰值之后,每分钟的心跳数就是一个除法(可能是一些平均值)。

答案 1 :(得分:0)

实际上,您想要做的是为给定的声音文件计算傅立叶域,然后确定最强的峰值。这很可能就是您的主导信号的频率(在这种情况下,应该是心率)。

非常感谢,其他人拥有already asked / answered this on stackoverflow

此方法的唯一警告是,如果还有其他重复信号主导心跳,在这种情况下,您可能需要先清除数据。