PianoAgent:开源 AI 钢琴作曲 Agent,用自然语言谱写钢琴曲

PianoAgent :开源 AI 钢琴作曲 Agent ,用自然语言谱写钢琴曲

项目地址:https://github.com/YoyuDev/PianoAgent

一、简介

当前大模型音乐生成类项目层出不穷,但多数方案直接让大语言模型(LLM)输出 MIDI 音符,普遍存在音符错乱、乐理不符合规范、节奏混乱等缺陷。PianoAgent 采用差异化的设计思路:不交由大模型直接生成音符,将 LLM 定位为思考规划角色,把实际作曲工作交由专业音乐引擎完成。

PianoAgent 是一款开源 AI 钢琴作曲 Agent 应用。用户仅需通过自然语言描述曲子的氛围、情绪、曲风,整套 Agent 工作流水线将自动完成乐理知识检索、作曲结构规划、音符序列生成、演奏效果优化、作品质量评估,最终渲染输出可直接播放的钢琴音频。

项目实现完整端到端产品能力,包含前端交互界面、后端 Agent 调度模块、RAG 乐理知识库、音频渲染引擎。既支持本地源码一键启动,也封装为 NPM 工具包,单条命令即可完成部署运行。

二、核心特性

1.Agent Pipeline 分工架构(核心设计理念) LLM 不直接生成 MIDI 文件。大模型负责理解用户需求、乐曲构思、整体结构规划;专业音乐模块承担音符生成、乐理校验、演奏细节修饰工作,从根源降低 AI 作曲中常见的乐理错误问题。

完整业务流水线:自然语言输入 → 乐理知识 RAG 检索 → 作曲结构规划 → 音符序列生成 → 演奏力度优化 → 作品质量自评 → 音频渲染输出

2.Web 可视化交互界面 基于 Vue3 构建前端页面,支持钢琴曲实时预览、创作草稿持久保存、播放时行高亮,同时支持自定义图片、视频背景,提供完整流畅的使用体验。

3.开箱即用 CLI 命令行工具 项目封装完整命令行入口,提供两种使用模式:

  • 源码模式:适合开发者本地调试运行
  • NPM 全局安装模式:终端执行命令即可拉起服务,无需复杂部署流程

4.RAG 乐理知识库 内置乐理知识库,创作过程检索和弦、调式、曲式等乐理参考资料,辅助 Agent 产出专业性更强的钢琴作品。

5.SSE 流式响应能力 作曲全流程采用流式输出,页面实时展示 Agent 每一步思考与执行过程,无需等待全部任务完成后再返回结果。

6.草稿持久化能力 自动保存创作草稿,支持继续编辑历史项目,回放过往创作记录。

三、技术栈

  • 后端:Node.js + Express,实现 SSE 流式响应、Agent 状态调度
  • AI 层:大语言模型、Prompt 工程、RAG 知识检索、LLM wiki
  • 前端:Vue3,浏览器端音频播放
  • 存储:轻量本地数据库
  • 工程化:NPM 完整发布配置,CLI 脚本,区分源码开发环境与 NPM 安装运行环境

四、快速上手

环境要求 Node.js >=18

方式 1 NPM 一键运行

全局安装工具包

npm install -g piano-agent-ai

新建独立文件夹,创建.env配置文件填入大模型 API 密钥,在该目录执行命令:

piano-agent

浏览器访问:http://localhost:3456

也支持 npx 免安装直接运行:

npx piano-agent-ai

方式 2 :源码运行(面向开发者)

git clone https://github.com/YoyuDev/PianoAgent.git

cd PianoAgent

npm install

node bin/cli.js

复制.env.example并重命名为.env,填写大模型接口密钥,访问浏览器服务地址即可开展创作。

五、项目工程设计亮点

  1. CLI 脚本区分开发环境与 NPM 运行环境 本地源码环境检测前端未编译时,自动执行构建;NPM 安装运行环境禁止在 node_modules 目录内执行 npm 操作,避免污染宿主项目依赖。
  2. Git + NPM 标准化工程规范 通过.npmignore过滤媒体资源、缓存、开发类文件;利用prepublishOnly钩子在发布 NPM 包前自动构建前端资源;使用npm pack校验打包输出产物,保障发布质量。
  3. 配置解耦设计 优先读取用户当前工作目录下的.env配置文件,不修改 node_modules 内部文件,实现用户业务配置与工具包本体完全解耦。

六、设计思考:为什么不让 LLM 直接输出 MIDI

不少 AI 音乐项目直接通过 Prompt 指令让大模型输出 MIDI 序列。大模型擅长语言理解、创意构思与逻辑推理,但不擅长输出高精度乐理数值。直接生成音符会频繁出现和弦错误、节拍错乱、音域越界、旋律断裂等问题。

PianoAgent 对任务进行职责拆分:

  • LLM:理解用户创作需求,规划乐曲结构、情绪走向、和弦编排,输出结构化 JSON 指令。
  • 音乐引擎模块:接收结构化指令,严格遵循乐理规则生成合法音符,完成演奏力度、演奏速度的修饰处理。

LLM 充当 "作曲家" 负责构思,程序引擎充当 "演奏家" 负责落地执行,各司其职。

七、适合人群

  1. AI Agent 技术学习爱好者,可参考完整 Agent 流水线工程实现;
  2. AI 音乐方向开发者,学习大模型与垂直领域专业引擎结合的开发思路;
  3. 普通使用者,体验通过自然语言生成钢琴曲。

八、后续规划

  • 拓展乐器种类,支持多乐器生成
  • 迭代优化 RAG 乐理知识库,扩充乐理素材库
  • 提升生成速度,开放更多可自定义参数
  • 支持 MIDI、音频文件导出下载

九、参与贡献

欢迎 Star、提交 Issue 与 Pull Request 参与项目共建。 项目仓库:https://github.com/YoyuDev/PianoAgent

相关推荐
weixin_446260851 小时前
资源授权:面向部署式AI智能体的参与式治理机制设计模型
人工智能
康谋自动驾驶1 小时前
高保真+强可控:自动驾驶仿真的混合渲染方案
人工智能·机器学习·自动驾驶
JJJennie7771 小时前
ChatGPT 更新 GPT-5.6 Sol,免费用户将可无限文本聊天
人工智能·gpt·chatgpt
OceanBase数据库官方博客1 小时前
让 DRP全域数据智能流转OceanBase AI 数据库支撑央国企落地穿透式监
数据库·人工智能·oceanbase
tedcloud1232 小时前
Impeccable 部署指南:开源前端设计工具 Linux 环境搭建实践
linux·运维·服务器·前端·人工智能·开源
今天AI了吗2 小时前
Python 基础语法从入门到使用详解
开发语言·人工智能·python
陈天伟教授2 小时前
TraeWork初体验-生成研究报告
大数据·数据库·人工智能
苏灿烤鱼2 小时前
从微信公众号内容到视频号视频:自动化视频生成的技术实现
人工智能·python·ffmpeg
lucas_AI2 小时前
ConfBench:大模型的「我很有把握」,到底能不能信?
人工智能·算法