检查特定声音(输入:麦克风)

2024-05-17 13:08:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题:我当前有一个声音文件,其中包含我录制的特定声音。我想能够识别声音何时再次播放超过2秒。音量对我来说并不重要,我希望能够识别何时播放特定的音符。例如,该文件包含音符a(la)的录音,如果我在麦克风旁边的钢琴上弹奏音符a,覆盆子圆周率将打印“正确”或其他内容。我无法识别音符,之前的研究建议使用FFT函数查找频率/频率,但我一直无法找到它。您是否建议我使用任何库来实现此功能

理想情况下,我能够识别外部声音的音调。一旦我有了音高,我就可以在一个频率范围内检查它


Tags: 文件fft声音内容覆盆子建议la频率
1条回答
网友
1楼 · 发布于 2024-05-17 13:08:48

您确实希望使用类似FFT的东西,它同时提供numpyscipy功能。这个想法是,你收集一个麦克风输入的缓冲区,对其应用FFT,然后你会尝试找出最强大的频率是否是你正在寻找的音符的频率。有tables可以告诉你每个音符的频率

你实际上是在做一个spectrogram

如果需要操作顺序:

  1. 建筑频率等级:
    1. 使用np.fft.fftfreq确定频率标度(N相同 长度(作为缓冲区)
  2. 创建注释表
    1. 确定频率属于哪个音符(使用参考)
    2. 确定误差幅度
  3. 识别注释(该部分在循环中)

    1. 在选定大小的缓冲器中采集信号

    2. 应用FFT

    3. 在频域中查找最高值

    4. 在查找表中的错误范围内查找相应注释

有用功能:

Numpy FFT

Numpy FFTFREQ

Numpy ARGMAX

其他有用的问题:

Maintain a streaming microphone input in Python

相关问题 更多 >