爱意满满的作品展示区。
limerain

用 ONNX Runtime Web 把 AI 和弦识别放到了浏览器本地运行,做了个 Chord Finder

  •  
  •   limerain · 2 days ago · 667 views

    最近做了一个音乐相关的 Web 工具,ChordFold 。

    地址: https://chordfold.com/

    主要功能是:用户选择一段 MP3 或 WAV 音频,AI 自动识别里面的和弦,以及和弦随时间的变化。

    和一些需要上传音频到服务器的识别服务不同,我选择了浏览器本地推理的方案。

    目前的技术方案:

    使用 BTC 系列和弦识别模型

    模型转换为 ONNX 格式

    通过 ONNX Runtime Web 在浏览器里执行 WASM 推理

    对音频进行解码和 CQT 特征提取

    模型预测后对结果进行平滑,生成和弦时间轴

    用户侧的操作流程也比较简单:

    选择本地音频文件

    首次使用时下载识别模型

    在浏览器本地分析音频

    得到按时间排列的和弦结果

    点击时间轴上的和弦,可以跳到对应位置回听

    可以切换查看支持的吉他和弦指法图、钢琴音符参考

    目前限制音频最大 14MB 、最长 10 分钟。

    选择本地推理主要有几个考虑:

    第一,音频不需要上传服务器,相对更有隐私优势。

    第二,不需要为每个用户的识别请求支付云端 GPU 推理费用。

    第三,工具本身不需要用户注册账号。

    但缺点也很明显。

    首先,模型首次下载需要时间。

    其次,不同设备上的 WASM 推理性能差异比较大。

    还有就是和弦识别的准确率问题。对于干净的钢琴、吉他音频,相对容易分析;复杂编曲、失真、转位和弦以及快速切换的片段,模型仍然可能出现错误。

    目前不打算宣传什么 99% 准确率,实际上还没有可靠的统一准确率测试数据。

    接下来主要想继续优化识别效果、模型加载和结果交互。

    想请教一下 V 友:

    有没有做过音乐信息检索( MIR )或者音频模型部署的?

    对于浏览器本地音频推理,ONNX Runtime Web + WASM 还有哪些值得优化的方向?

    有更适合浏览器端运行、准确率又比较好的和弦识别模型推荐吗?

    如果你会弹吉他或者钢琴,也欢迎拿一段音频测试一下,看看识别效果怎么样。

    技术交流和产品体验方面的建议都欢迎。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1855 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:01 · PVG 08:01 · LAX 17:01 · JFK 20:01
    ♥ Do have faith in what you're doing.