Matthew Bird 开源了一个音频分解项目,目标是将音乐转换为乐谱。该项目不依赖外部乐器分离库,核心原理是利用傅里叶变换和包络分析来识别乐器和音符。傅里叶变换部分通过每0.1秒对音乐文件进行傅里叶变换,并与存储的各种乐器傅里叶变换进行匹配,重构音乐片段。包络分析部分则通过分析波形的包络,区分音符的起音、持续和释放阶段,并根据衰减特性判断乐器类型。最终,程序使用matplotlib的散点图以类似乐谱的形式展示结果。