簡體   English   中英

檢查特定聲音(輸入:麥克風)

[英]Check for a specific sound (input: microphone)

我的問題:我目前有一個包含我錄制的特定聲音的聲音文件。 我希望能夠識別出該聲音何時再次播放超過 2 秒。 音量對我來說無關緊要,我希望能夠識別何時播放該特定音符。 例如,該文件包含音符 A (la) 的錄音,如果我在麥克風旁邊的鋼琴上彈奏音符 A,樹莓派將打印“正確”或其他內容。 我無法識別音符,之前的研究建議找到頻率/使用 FFT 函數,但我一直無法弄清楚。 您是否推薦我應該使用的任何庫來實現這一點?

理想情況下,我將能夠識別外部聲音的音高。 一旦我有了音高,我就可以在一系列頻率之間檢查它。

您確實想使用numpyscipy都提供的 FFT 之類的東西。 這個想法是,您收集麥克風輸入的緩沖區,對其應用 FFT,然后您會嘗試找出最強大的頻率是否是您正在尋找的音符的頻率。 有一些表格可以告訴你每個音符的頻率是多少。

您實際上是在制作頻譜圖

如果你想要一個操作順序:

  1. 建築頻率標度:
    1. 使用np.fft.fftfreq確定頻率標np.fft.fftfreq (N 與緩沖區的長度相同)
  2. 建立筆記表
    1. 建立什么頻率屬於什么音符(使用參考)
    2. 確定誤差幅度
  3. 識別筆記(這部分在循環中)

    1. 在選定大小的緩沖區中收集信號

    2. 應用 FFT

    3. 查找頻域中的最高值

    4. 在查找表中查找錯誤范圍內的相應注釋

有用的功能:

Numpy FFT

Numpy FFTFREQ

Numpy ARGMAX

其他有用的問題:

在 Python 中維護流麥克風輸入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM