「MIR-CC」2026年用Claude Code就可以无痛入门音乐科技
自从2025年末Claude Opus 4.5模型发布后,博主就再也没写过代码了,每天都在和agents对话,只需要开发不同的plugins和bots做自动化。现沉迷在前不久发布的4.6中,让这个公众号时隔3年发篇新的科普文章!
-
迁移到uv包管理器,告别繁琐的conda/pip环境配置 -
修复过时的指引,确保在Python 3.12下运行 -
新增marimo交互式notebook,模拟与CC结对编程学习MIR的体验
-
将notebook导出为静态HTML并部署到GitHub Pages,读者无需本地安装即可在线浏览:https://beiciliang.github.io/intro2musictech/
『环境配置现代化』
过去,读者需要先安装Anaconda,再创建conda虚拟环境,再用pip安装依赖。步骤多、容易出错,尤其对零编程基础的读者来说是一道不小的门槛。现在项目全面迁移到uv包管理器:
-
新建pyproject.toml统一管理项目元数据和依赖版本(numpy>=1.22、librosa>=0.10 等),并补充了之前缺失的依赖
-
删除了旧的requirements.txt,生成uv.lock锁定文件,确保所有读者安装到完全一致的版本,彻底告别「我这里跑不通」的问题
-
设置Python最低版本为3.10,支持最新的Python 3.12
-
只需uv sync一条命令,uv会自动下载合适的Python版本并安装全部依赖
另外,修复了所有notebook使其不再调用过时的API,还美化了README页面。
以上所有更新修复,在CC理解了该项目后(首次接触可使用 /init 指令生成CLAUDE.md文件),大概不到10分钟就能完成 ✅
我另外调用了自己平时发起Pull Request的指令,自动创建PR#10, #11, #12。
☞ https://github.com/beiciliang/intro2musictech/pulls?q=is%3Aclosed+author%3Abeiciliang
『交互式 Notebook』
这是本次更新的重点,一个全新的交互式教程 MIR-CC.py,基于marimo框架构建。与传统Jupyter Notebook不同,marimo notebook的每个单元格都是响应式的:修改一个参数,所有依赖它的图表会自动重新计算和刷新,无需手动重跑。
整个教程以「和 Claude Code 结对编程」为主线,模拟读者向 AI 提问、AI 给出代码并实时运行的学习场景,分为六个部分:
Part 0 — 开场白: 介绍Claude Code是什么、为什么它能帮助零基础读者学习音乐科技,集中导入所有依赖库。
Part 1 — 加载与聆听: 加载音频文件,展示采样率、时长等元数据,支持直接在页面内播放音频,并绘制波形图。这是MIR的第一步:「先听到、再看到」。
Part 2 — 交互式STFT频谱图: 这是交互性最强的部分。读者可以通过下拉菜单从 5 个音频样本中选择,然后拖动两个滑块实时调节:
-
n_fft(FFT 窗口大小,256 ~ 4096) 控制频率分辨率
-
hop_length(跳跃步长,64 ~ 2048)控制时间分辨率
频谱图会随滑块变化即时刷新,让读者直观感受「时频分辨率的取舍」这一核心概念,而不只是看公式。
Part 3 — 梅尔频谱图: 将线性频谱与梅尔频谱并排对比展示,并提供可调节的n_mels参数。梅尔刻度模拟人耳对频率的非线性感知,是语音识别和音乐分析中最常用的特征表示之一。
Part 4 — 实用MIR任务: 展示三个经典的音乐信息检索应用:
-
节拍检测(Onset Detection) 自动标记音频中的节拍位置,叠加在波形图上
-
色度图对比(Chromagram)同时展示STFT、CQT、CENS三种算法生成的色度图,色度图将音高映射到 12 个半音(C, C#, D, ...),是和弦识别和调性分析的基础
-
频谱质心(Spectral Centroid)叠加在频谱图上,直观展示声音「亮度」随时间的变化
Part 5 — 音频特征仪表盘: 将六种核心特征可视化整合到一个标签页界面中:波形、频谱图、梅尔频谱图、色度图、MFCC(梅尔频率倒谱系数)、频谱质心 + 过零率。读者可以切换标签页,一站式总览同一段音频的多维度特征。
Part 6 — 总结与展望: 回顾所学内容,提供进一步学习的资源链接。
本地运行指令:
uv syncuv run marimo edit MIR-CC.py
☞ 顺便展示一下做这个更新时CC自动发起的PR#13
『在线预览』
并非所有读者都希望在本地搭建环境才能看到上面的教程内容。PR#14将 MIR-CC notebook 通过marimo export html导出为一个完整的静态HTML文件(docs/index.html),并配置GitHub Pages从main分支的/docs目录部署。
读者只需打开这个链接即可在浏览器中看到教程内容和所有预渲染的图表:
☞ https://beiciliang.github.io/intro2musictech/
需要注意的是,静态版本中的交互组件(滑块、下拉框、标签页切换)仅作为视觉展示,无法实际拖动操作。如果想要完整的交互体验,仍然需要在本地通过 uv run marimo edit MIR-CC.py 运行。
以下为截图:
现在回看3年前的「INFO」分享我的MIR研发技术栈自己都觉得过时,2026年的编程体验一定还会有更加翻天覆地的变化,希望我还能想起更新这个公众号,感谢大家一直以来的关注!
点击下方阅读原文可直达intro2musictech代码仓库
☞ https://github.com/beiciliang/intro2musictech