[英]How get sound input from microphone in python, and process it on the fly?
[英]Check for a specific sound (input: microphone)
我的問題:我目前有一個包含我錄制的特定聲音的聲音文件。 我希望能夠識別出該聲音何時再次播放超過 2 秒。 音量對我來說無關緊要,我希望能夠識別何時播放該特定音符。 例如,該文件包含音符 A (la) 的錄音,如果我在麥克風旁邊的鋼琴上彈奏音符 A,樹莓派將打印“正確”或其他內容。 我無法識別音符,之前的研究建議找到頻率/使用 FFT 函數,但我一直無法弄清楚。 您是否推薦我應該使用的任何庫來實現這一點?
理想情況下,我將能夠識別外部聲音的音高。 一旦我有了音高,我就可以在一系列頻率之間檢查它。
您確實想使用numpy
和scipy
都提供的 FFT 之類的東西。 這個想法是,您收集麥克風輸入的緩沖區,對其應用 FFT,然后您會嘗試找出最強大的頻率是否是您正在尋找的音符的頻率。 有一些表格可以告訴你每個音符的頻率是多少。
您實際上是在制作頻譜圖。
如果你想要一個操作順序:
np.fft.fftfreq
確定頻率標np.fft.fftfreq
(N 與緩沖區的長度相同)識別筆記(這部分在循環中)
在選定大小的緩沖區中收集信號
應用 FFT
查找頻域中的最高值
在查找表中查找錯誤范圍內的相應注釋
有用的功能:
其他有用的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.