簡體   English   中英

我想知道如何使用用戶選擇的音樂文件,然后檢測何時有特定的聲音頻率。 安卓

[英]I want to know how to use a music file chosen by the user, then detect when a certain sound frequency. ANDROID

因此,基本上,我希望此范圍為60-150 Hz,這是一首歌曲中低音的一般區域。 每當它在此范圍內時,我都希望它執行一個功能,而僅在該范圍內,我的問題是,如果有人可以在這里顯示我或某篇好文章,或者沒有運氣,我會嘗試查找所需的功能,但是沒有運氣對此的解釋會很棒! 感謝所有幫助,我將繼續獨自尋找。 如果需要更多說明,我可以提供所需的任何信息!

奧斯丁。

更新:我在這里簡化了算法:

  1. 用戶選擇他們想要的歌曲
  2. 歌曲載入播放器
  3. Function掃描歌曲並找到整個歌曲中的較低頻率,並且輸出是一個模式。

第1步)進行快速傅立葉變換: http : //en.wikipedia.org/wiki/Fast_Fourier_transform

FFT會獲取一段聲音並將其轉換到頻域/時域中,例如,正在播放的頻率以及聲音的強度以及聲音的哪個部分。 這是一種有用的數學運算,它依賴於以下性質:所有聲音(無論多么復雜)都可以從一個或多個不同頻率和振幅的正弦波中基本構造出來。

如果您曾經看過一個頻譜圖,例如在foobar2000中,它是使用FFT實現的:

使用快速傅立葉變換的foobar2000頻譜圖

我建議您不要嘗試自己實現FFT,而是找到經過良好測試和快速測試的庫,例如用C語言編寫的http://en.wikipedia.org/wiki/FFTW

第2步)現在,您已經對用戶正在聽的聲音進行了FFT處理,您只需檢查頻點並做您想做的任何事情! 盡管檢測低音踢不像“此頻率倉是否高值?”那樣簡單。 因為那樣您可能會將貝斯線誤認為是低音踢。 您可能需要做進一步的測試和研究才能使其正常工作。

編輯:Delyan建議http://www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html ,它看起來還不錯。

暫無
暫無

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

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