我正在使用Web Audio API來獲取來自麥克風的聲音的頻率。爲此我在這個github倉庫中找到了一些有用的代碼:https://gist.github.com/giraj/250decbbc50ce091f79e。Web Audio API - 獲取正確的頻率
現在我的問題是,我得到了很多不同的頻率,只有一個小小的聲音。這聲音可能來自我的聲音或來自樂器。
這些頻率像90到4000Hz之間。但是據我所知,一個人的聲音或者一個樂器的音符只能以Hz爲單位有一個單一的頻率。我很確定,我只是在演奏一種單調。
那麼我怎麼能知道,每個音的3或4個頻率中的哪個頻率是我正在搜索的頻率。我需要這個值,從他們的頻率中識別C,D,E等音符。我希望這個問題不是脫離主題,因爲我真的很努力地找到一個解決方案,我不知道這是API本身的一個可解決的問題,還是我不得不消除一些頻率。我將不勝感激任何形式的幫助。
編輯:我想補充說,我從來沒有達到這個頻率列表中列出的相同的音符值:http://www.phy.mtu.edu/~suits/notefreqs.html。我正在使用鋼琴應用程序,該應用程序始終在Play商店的頻率應用程序上提供正確的頻率。所以我甚至懷疑我收到的結果。
聲音幾乎從不是單一頻率 - 唯一(很少)是人爲的。我們認爲音調的東西實際上是由一個頻率爲f的內容組成的(這就是所謂的基礎,就是你所想的)和一系列「諧波」,它們的內容都是f '('2f,3f,4f,5f等)。要確定正在播放的音符,您必須考慮到這一點。一種方法是查找譜圖中諧波之間的距離('f')。 – Linuxios
感謝這個建議,以前不知道。我會考慮這個問題。 – Kuhfleisched