2013-03-13 28 views
3

人類會唱出一種音調,並且想要轉換成演奏相同樂器的樂器。在使用aubio.org處理錄製的人聲的.wav文件時,我能夠以不同的時間間隔獲得音高/頻率。但是如何從這些數據中獲得樂器的音符或是否有一些調諧器可以幫助我做到這一點?需要將人的聲音轉換爲音符

+0

我有相同的要求,你可以幫我解決你找到的。 – Ranjithkumar 2014-02-18 10:14:54

回答

2

對於音高,使用的公式,MIDI 69 = 440Hz的,所以(蟒蛇/僞代碼)

midiNote = round(12 * (log(freq/440.0), 2))) + 69 

但你會發現,事情可能會比這更復雜的節奏,因爲。我會用一個已經制作好的有節奏的「量化」包(這是你想要的谷歌搜索詞),因爲確定速度和是否有1.125次跳動應該被轉錄爲四分音符或四分音符第32條說明在很大程度上取決於上下文,這是一項很大的編程工作。有幾個預先存在的工具包可以幫你實現。我自己的Python框架music21有一個audioSearch模塊,它應該能夠完成簡單的工作 - 至少你可以把代碼放到你自己的軟件包中,因爲它是非常標準的FFT樣例轉換技術。

+1

謝謝邁克爾。您對節奏量化的需求是正確的,因爲只是在特定的時間間隔播放從公式計算出來的midiNote會播放一些奇怪的曲調。其實我不得不從Python轉移到Android(Java,c或C++)。我準備好了錄音機和音符的生成,但是我沒有辦法爲它添加節奏量化。真的很感激任何進一步的建議。 – 2013-03-19 09:42:19

相關問題