yueqitong 小程序专家技能
技能名称
Yueqitong Mini Program Expert - 乐器通小程序专家
技能描述
乐器通小程序专家系统,包含乐器百科、心情曲单、本地WAV合成、页面组件开发、交付前自检等核心功能。旨在帮助用户认识和区分各类乐器,提供音乐分析与心情推荐功能。
适用场景
- 微信小程序“乐器通”功能维护与迭代
- 乐器分类与检索相关的开发与优化
- 音乐理论分析与心情曲单生成
- 页面组件开发与交付前自检
- 本地音频合成与播放状态同步
核心功能模块
1. 乐器百科
- 乐器分类:弦、键、管、打击、电子、拨弦 6 大类
- 详细乐器画像:包含图标、名曲、试听片段、学习曲线、保养建议、价格区间
- 支持搜索与筛选:关键词搜索、分类标签筛选
- 代表乐器:小提琴、钢琴、长笛、吉他、古筝、鼓组、萨克斯、琵琶、二胡、号等
2. 心情曲单
- 8种心情标签:平静冥想、活力充沛、忧郁沉思、浪漫温柔、专注工作、怀旧回忆、治愈放松、宏大史诗
- 每种心情5首推荐音乐:包含歌手、专辑、时长信息
- 试听片段:每首曲目提供独有的预览旋律
- 收藏功能:支持心情曲目收藏与取消收藏
3. 音乐分析
- 乐器辨识:基于频谱特征、和声丰度、攻击轮廓的自动检测
- 乐理分析:间隔识别、和弦9种类型检测、调性/调式8种类型检测、BPM分析
- 频谱可视化:Canvas API实现的频谱图、波形可视化
- 自动/手动分析模式:支持录音上传与现有音频文件分析
4. 曲谱识别
- 支持格式:PDF、PNG、JPEG 上传
- 原创度评估:原创与库曲匹配度评估
- 曲谱预览:上传后即时预览
- MIDI导出:支持MIDI格式导出
5. 页面组件
- 乐器卡片组件:分类颜色编码,播放/暂停按钮,收藏切换,悬停/放大动画
- 心情标签组件:8种心情颜色编码的交互标签
- 音频播放组件:播放控制、进度条、收藏按钮
- 曲谱查看组件:多格式支持与导航
6. 本地合成与自检
- 本地WAV合成:离线音频合成功能,支持每首曲目独立试听
- 播放状态同步:页面间播放按钮状态自动复位
- 交付前自检:页面结构验证、样式编译检查、链接有效性检查
- 版本管理:plugin.json版本控制,WeChat上传前版本递增
技术栈
- 前端框架:WeChat Mini Program原生开发 (WXML, WXSS, JavaScript)
- CSS变量体系:主题色、深浅主题切换、动画关键帧
- Canvas API:频谱可视化与图形渲染
- Audio API:wx.getRecorderManager, AudioContext 用于音频采集与分析
- 本地存储:localStorage 用于数据持久化与历史记录
- 组件化设计:可复用组件与样式系统
文件结构 (instrument-miniprogram 目录)
instrument-miniprogram/
├── app.js # 主应用文件,全局数据与工具方法
├── app.json # 项目配置,页面注册与tabBar设置
├── app.wxss # 全局样式表,CSS变量与动画导入
├── styles/
│ └── animations.wxss # 动画关键帧与实用类 (修复app.wxss编译问题)
├── components/ # 可复用组件
│ ├── instrument-card/ # 乐器卡片组件
│ ├── mood-tag/ # 心情标签组件
│ ├── audio-player/ # 音频播放组件
│ └── score-viewer/ # 曲谱查看组件
├── pages/ # 页面模块
│ ├── index/ # 首页与导航
│ ├── encyclopedia/ # 乐器百科
│ ├── analysis/ # 音乐分析
│ ├── score/ # 曲谱识别
│ ├── mood/ # 心情推荐
│ └── instrument-detail/ # 乐器详情页
├── utils/
│ ├── constants.js # 核心常量:分类、乐器数据、心情标签
│ ├── audio.js # 音频特征提取、器分类、乐理论析、可视化、录音
│ └── helpers.js # 工具函数:格式化、ID生成、防抖节流等
├── tools/ # 辅助工具
└── yueqitong.zip # 交付压缩包 (包含SKILL.md,版本1.0.1)
关键文件说明
app.js
- 全局数据:INSTRUMENT_CATEGORIES, INSTRUMENTS_DATA, MOOD_TAGS, MOOD_RECOMMENDATIONS
- 工具方法:formatDuration(), generateId(), debounce(), throttle()
- 生命周期:onLaunch, onShow, onHide, onError
app.wxss
- CSS变量体系:--primary-color, --accent-color, --background, --text-color等
- 动画导入:@import "./styles/animations.wxss"
- 页面基础样式与响应式设计
styles/animations.wxss
- 关键帧:mp-fade-in, mp-fade-up, mp-rotate, mp-pulse
- 实用类:mp-anim-fade-in, mp-anim-fade-up, mp-anim-pulse, mp-transition, mp-pressable
- 修复app.wxss @import编译失败的关键文件
utils/constants.js
- INSTRUMENT_CATEGORIES: ["string", "keyboard", "wind", "percussion", "electronic", "plucked"]
- INSTRUMENTS_DATA: 详细乐器画像(10种常见乐器的结构、音域、技巧、名作/演奏家、学习曲线、保养、价格)
- MOOD_TAGS 与 MOOD_RECOMMENDATIONS: 8种心情对应10首音乐推荐
utils/audio.js
- AudioFeatureExtractor: 频谱分析(中心频率、带宽、扁平度、零交叉率、RMS能量)
- InstrumentClassifier: 乐器检测(频率范围、和声丰度、攻击轮廓)
- MusicTheoryAnalyzer: 间隔检测、和弦识别、调性检测、节奏分析
- SpectrumVisualizer: 频谱图、波形数据生成
- AudioRecorder: wx.getRecorderManager 管理(开始/暂停/恢复/停止)
utils/helpers.js
- 日期/相对时间格式化, ID生成, deep clone, array unique, group by, shuffle/sample
- debounce/throttle函数
- 存储包装 (storage, appStorage), 请求包装
- 反馈组件 (toast, loading, modal)
- emptiness检查, object get/set辅助
components/instrument-card/
- 可复用乐器卡片,分类颜色编码
- 播放/暂停按钮,收藏切换
- 悬停/放大动画,紧凑模式支持网格布局
使用说明
开发者入门
- 确保微信开发者工具已配置并连接真机/模拟器
- 导入项目:打开 instrument-miniprogram 目录
- 确保
styles/animations.wxss已创建(修复 @import 编译问题) - 运行:在开发者工具中点击 "微信预览"
添加新乐器
- 在
utils/constants.js的INSTRUMENTS_DATA中添加乐器对象 - 补齐图标资源至
avatars/目录 - 更新分类映射与搜索关键词
- 同步
MOOD_RECOMMENDations中的心情关键词映射
上传发布
- 修改
yueqitong.zip中.codebuddy-plugin/plugin.json的 version 字段 - version 必须严格大于当前已上传版本(当前为 1.0.1)
- 使用
zip -r yueqitong.zip temp_extract/或 Python 重新打包 - 在 WeChat developer tools 中进行上传测试
已完成工作与里程碑
已完成
- ✅ 乐器百科:6大类、10种常见乐器完整画像与分类筛选
- ✅ 心情曲单:8种心情、每种5首推荐音乐与试听片段
- ✅ 音乐分析:乐器辨识、和弦检测、调性识别、频谱可视化
- ✅ 曲谱识别:PDF/PNG/JPEG上传、原创度评估、MIDI导出
- ✅ 页面组件:乐器卡片、心情标签、音频播放、曲谱查看
- ✅ CSS变量体系与深浅主题切换
- ✅ 关键帧动画:mp-fade-in, mp-fade-up, mp-rotate, mp-pulse
- ✅ 响应式设计与多设备适配
- ✅ yueqitong.zip版本修复:从 1.0.0 更新至 1.0.1
已知限制
- 实时音频辨识精准度受浏览器/基础音频接口限制,边缘情形可能需要人工干预
- 本地WAV合成功能受微信小程序音频接口约束,大文件合成可能受限
- 乐器分类涵盖主流器种,小众乐种仍在持续扩展中
技能关联
- lynxce-instrument-advisor: 乐器选购与入门配置顾问(可选关联技能)
- 工作路径: D:\WorkBuddy\instrument-miniprogram
- 适用平台: 微信小程序 (WeChat Mini Program)
许可说明
- 本技能永久免费、纯本地可用
- 所有音频处理在本地完成,不上传云端
- 数据结构开源,可自由用于非商业项目
领券 / 下单入口 (如有商品链接需求,请使用灵策工具):
| 商品或活动 | 平台 | 券后价 | 链接 |
|---|---|---|---|
| (暂无电商商品链接) | - | - | - |
本SKILL文档生成于 2026-10-20,版本 1.0.1,对应 yueqitong.zip 内容。