如果我知道 MIDI 到音轨使用的 SoundFont,理论上我可以将音频反转回它的(最有可能的)MIDI 组件吗?如果是这样,这样做的最佳方法之一是什么?
最终目标是尝试将音频(甚至语音样本)编码为 MIDI,这样我就可以比 BearFileConverter 更好地再现 MIDI 格式的原始音频。希望能获得比带通滤波器或 FFT 更好的结果。
不,这不是为了任何有损音频压缩或工作表转录,这主要是为了我的好奇心。
如果我知道 MIDI 到音轨使用的 SoundFont,理论上我可以将音频反转回它的(最有可能的)MIDI 组件吗?如果是这样,这样做的最佳方法之一是什么?
最终目标是尝试将音频(甚至语音样本)编码为 MIDI,这样我就可以比 BearFileConverter 更好地再现 MIDI 格式的原始音频。希望能获得比带通滤波器或 FFT 更好的结果。
不,这不是为了任何有损音频压缩或工作表转录,这主要是为了我的好奇心。
仅适用于单声道音乐,没有背景声音,并且如果您的 SoundFont 合成引擎和您的录音采样率完全匹配(同步到 1ppm 或更好,没有额外效果,也都使用已知的 A440 参考频率、已知语调等)。 ),然后您可以尝试使用您录制的音频的一组互相关与来自您的先验已知字体的每个 MIDI 音高的一组合成波形样本来创建每个 MIDI 音符的统计可能性时间线。在您的音高范围、阈值和峰值拾取中找到局部最大值,以找到最可能的 MIDI 音符开始时间。
另一种可能性是滑动声音指纹,但计算成本更高。
由于不完全匹配的采样率加上额外的噪声、扬声器和房间声学效果、多路径混响等,这在现实生活中会失败。对于与它们自己的泛音非常相似的音符波形,您可能还会得到误报。语音样本与任何模板的差异更大。
忘记带通滤波器或寻找 FFT 幅度峰值,因为这仅适用于接近纯正弦波的可靠方法,很少有乐器或有趣的字体听起来像(或一样无聊)。