如果我知道MIDI到音頻軌道使用的SoundFont,理論上可以將音頻轉換回它的(最有可能的)MIDI組件嗎?如果是這樣,那麼做什麼是最好的方法之一?鑑於使用的SoundFont,是否可以儘可能準確地將音頻分解爲MIDI?
最終目標是嘗試將音頻(甚至是聲音樣本)編碼到MIDI中,這樣我就可以比使用BearFileConverter更好地再現MIDI格式的原始音頻。希望有更好的結果,而不僅僅是帶通濾波器或FFT。
不,這不適用於任何有損音頻壓縮或表單轉錄,這主要是爲了我的好奇心。
如果我知道MIDI到音頻軌道使用的SoundFont,理論上可以將音頻轉換回它的(最有可能的)MIDI組件嗎?如果是這樣,那麼做什麼是最好的方法之一?鑑於使用的SoundFont,是否可以儘可能準確地將音頻分解爲MIDI?
最終目標是嘗試將音頻(甚至是聲音樣本)編碼到MIDI中,這樣我就可以比使用BearFileConverter更好地再現MIDI格式的原始音頻。希望有更好的結果,而不僅僅是帶通濾波器或FFT。
不,這不適用於任何有損音頻壓縮或表單轉錄,這主要是爲了我的好奇心。
僅適用於單聲道音樂,沒有背景聲音,並且如果SoundFont合成引擎和您的記錄採樣率完全匹配(同步到1ppm或更高,沒有附加效果,並且都使用已知A440參考頻率,已知語調等),那麼您可以嘗試使用您的錄音音頻的一組交叉相關性與您的先驗已知字體的每個MIDI音高的一組合成波形樣本進行比較,以創建每個MIDI音符的統計可能性的時間線。查找跨越音高範圍,閾值和峯值拾取的局部最大值,以查找最可能的MIDI音符起始時間。
另一種可能性是滑動聲音指紋,但以更高的計算成本。
由於不完美匹配的採樣率加上增加的噪音,揚聲器和房間聲學效果,多路徑混響等,這在現實生活中會失敗。您可能還會得到與自己的泛音非常相似的音符波形誤報。語音樣本與任何模板的差異更大。
忘記帶通濾波器或尋找FFT幅度峯值,因爲這隻適用於接近純正弦波,這很少有樂器或有趣的字體聽起來像(或無聊)。
(1)這可能是在dsp.stackexchange.com站點更好的問題。 (2)這是一個部分未解決的研究課題。對於大量的研究論文,請參閱:http://www.music-ir.org/mirex/wiki/MIREX_HOME – hotpaw2