计算音频样本的平均基频

时间:2018-03-08 17:33:05

标签: python audio signal-processing frequency frequency-analysis

我正在开展一个项目,通过从用户那里获取实时音频输入来预测用户的性别。在研究这个项目时,我遇到了kaggle https://www.kaggle.com/primaryobjects/voicegender的数据集,提出了一个CART逻辑

if meanfun<0.14:
        if IQR>=0.07:
              return male

        else 
              return female
else 
        return female

我试图搜索平均基频但找不到任何有用的资源。 请解释这个概念,平均频率和平均基频之间有什么区别?以及如何计算它的价值。

1 个答案:

答案 0 :(得分:2)

我会尝试解释这个概念......

通常可以通过作为正弦波的总和来定义信号。正如您可能知道或不知道的那样,可以用方程Asin(ωt+φ)在数学上定义正弦波,其中A是幅度,ω是角频率,t是时间,φ是相移。 ω可以进一步替换为2πf,其中f是以Hz为单位的频率(您链接的文档中使用的单位)。当它们在此上下文中引用频率时,您可以将其视为原始/原始信号的正弦波分量。

维基百科页面中描述了正弦波的定义,以及许多其他资源here

您正在查看的音频信号是复杂信号,可能涉及许多正弦波。基本频率指的是检测到的最低频率(wiki here)。我想平均基频是信号中检测到的所有频率的平均值。

找到频率的最常用方法是使用快速傅里叶变换(FFT) - 这会将信号从时域变为频域,并且您基本上可以得到所有正弦波分量的分解构成原始信号。或者,你可以弄清楚峰值检测 - 频率基本上是在某段时间内发生某事的次数,所以你可以计算出1分钟内出现的峰数(例如)您的频率值以Hz为单位。我绝对不推荐它用于语音音频信号。

为了让您了解频率值如何放置在音频频谱中,让我们将音符中间C与其上方的A进行比较。中间C为261.626 Hz,A为440.000 Hz(source)。如您所见,高音符的频率更高。

这个项目的逻辑是,女性的声音由比男性声音更高的频率组成(有些不足为奇)。它还说,较低频率的女性声音在其他频率成分的范围内比仅仅基于IQR的男性声音(?)更紧密地约束。 0.07 - 这很有趣。

希望这有帮助。