
歌已生成好怎么改和声、换歌词而不推倒重来YuE2 音乐编辑四种改法、一套校验【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE你拿到了一首满意的生成结果但总觉得和声太素、歌词不够贴、段落顺序不对。推倒重新生成那等于放弃整首已经磨合好的作品。YuE2 音乐编辑的思路是白盒的生成前先写出可读可改的 ABC 乐谱乐谱本身就是编辑接口——改谱、校验、再交给同一个生成器渲染。整个流程不依赖任何智能体专用模型只用命令行和一份请求 JSON。YuE2 的生成管线分四段plan()产出含score.abc的 SymbolicPlan随后generate_semantic()→synthesize()→decode()把乐谱渲染成 48 kHz 立体声。所谓编辑就是把plan()导出的乐谱复制出来修改再以abc字段喂回同一个生成器。创建、翻唱、编辑三者的唯一区别只是乐谱分别从 YuE2 自生成、转录导出、人工修订而来。你能改什么四个编辑场景编辑前先拿到一份乐谱。如果歌是从零生成的用技能脚本导出完整计划python skills/yue2-music/scripts/run_yue2.py plan \ --request examples/song.json --output outputs/plan cp outputs/plan/score.abc edited.abc这份edited.abc就是后面所有场景的工作底稿。请求文件可参考 examples/song.json含style、lyrics、cot、seed字段原则是只动你打算改的字段。如何做 AI 音乐和声重配只换和弦符号把Vocal声部里的引号和弦从C、G、Am、F换成Cmaj7、G7、Am7、Fmaj7其余一个字符都不碰。仓库里 examples/score.abc 与 examples/score-jazz.abc 正是这样一对最小 fixture旋律、歌词顺序、节拍、速度、种子全部相同只有和弦符号不同。改完用 compare 验证它对和声有意不比较再分别渲染听感python skills/yue2-music/scripts/abc_tools.py compare \ examples/score.abc examples/score-jazz.abc python examples/generate.py --abc-file examples/score-jazz.abc \ --cot full --output outputs/harmony-aftercompare 报match: true说明音符、时值、拍号、速度都没动新和声是否被真实实现只能靠试听audio.flac判断。如何把歌词贴合旋律或换成另一种语言YuE2 的 API 接受歌词和 ABC 两样东西没有强制的音素对齐通道所以别往乐谱里塞w:字段或自造音素标注。改歌词时按旋律的分句和音节数适配文字不要逐字硬译换语言时重点处理音节数、重音、长音元音和呼吸点并用旁车 JSON 记录音节 → 音符索引的对应约定。删除、复制或重排段落时乐谱中的%结构注释和歌词段落要同步改。注意--cot提供乐谱时不能取off——off 模式没有乐谱条件通道。如何改速度不改旋律风格与速度的联动风格改动有两处必须一致请求 JSON 的style字段乐器、人声特征、目标 BPM和乐谱里的Q:1/4BPM。只改速度而保留音符与相对时值时校验加--allow-tempo-changepython skills/yue2-music/scripts/abc_tools.py compare \ outputs/plan/score.abc edited.abc --allow-tempo-change不加该参数时速度不同会直接判为不一致。改完速度别只看符号检查试听确认实际响应再检查song.truncated是否截断。如何增删与重排段落曲式调整曲式编辑的难点不在单个小节而在同步段落增删或换位后Vocal与Ins两个声部的乐谱块、% verse/% chorus等结构注释、歌词段落三处必须对齐小节分组也要跟着重排。拍号或调号变化会开启新的分组两个声部必须同时携带匹配的M:/K:字段。这类改动完成前建议用 compare 按声部--voices Vocal分别核对未动段落。 如何校验旋律没被改坏把 abc_tools.py 当作 diff 工具abc_tools.py 是纯标准库实现的有界解析器按它回答什么问题来理解三个命令最清楚inspect回答这份谱子合法吗——校验结构导出精确事件每个声部音符的onset_quarters/midi_pitch/duration_quarters精确分数、和弦 onset、逐小节拍号网格、总时长与 SHA-256。结构不合法时退出码为 2。compare回答两份谱子从哪个音符开始不一样——它就是乐谱的 git diff要求速度一致除非--allow-tempo-change、小节网格一致、[onset, midi, duration]序列逐项相等不一致时退出码为 1 并指出第一个差异位置。C32|与C16-C16|判为一致连音合并后等价C32|与C16C16|判为不一致——断奏变了。strip-chords回答去掉和弦后旋律还在不在——只移除引号和弦符号验证发声音符、onset、时值、节拍、速度全部不变并拒绝覆盖已存在的输出文件。默认保留两条旋律线--keep-voice Vocal会把未选中声部替换为同网格休止符。去和弦后配合cotmelody做翻唱详见如何只留旋律翻唱下一节会提醒一个坑。原生方言的关键边界一览以L:1/32为例维度原生方言规则时长倍数只支持1,2,3,4,6,8,12,16,24,32,4810 个单位写作C8-C2或z8z2八度c、c、C,表示 C5、C6、C3连音必须连等音高休止不可连音谱末不能留下未解决的连音整小节休止Z/Z2/Z4按小节计数不是 L 单位跨和声变化处别用压缩休止和弦词表m、dim、aug、7、maj7、m7、dim7、m7b5、sus4、sus2、6、m6、7sus4、m(maj7)C13、A7alt、Cmaj9均不原生调号语义临时记号按字母跨八度传播^F之后本小节F与f都升与部分通用实现不同它不是通用 ABC 解析器连音线之外的 tuplets、装饰音、多声部叠置、反复记号、歌词w:字段统统 fail-closed 拒绝。工具拒绝某写法只说明它超出这份有界方言不能当作音乐错误的证据。完整规则见 skills/yue2-music/references/abc-editing.md。 如何让 Agent 当编辑加载 SKILL.md 技能在支持SKILL.md包的 Agent 里加载 skills/yue2-music/SKILL.md它就覆盖了生成、转录、ABC 检查、缓存解码和试听对比的全套编排——只是在既有 API 之间调度没有额外的智能体编辑专用检查点。委托前先用完整计划渲染一版基线并冻结原目录然后明确不变量契约契约必须固定精确旋律与节奏指定声部/段落中发声音符的音高、onset、时值相同音高、修订节奏有序发声音高记录允许的节奏与断奏改动可辨识主题完整乐句序列与指定重复列出允许的装饰边界内自由改编约定的乐句、音域、轮廓、终止式或动机报告实际改动的音符给编辑 Agent 的是原始 ABC、风格、歌词加一份有边界的简报模板见 assets/edit-brief.md并硬性要求它返回四件套新 ABC 文件、修订后的请求、编辑清单源哈希、改动小节/和弦边界/音符变化、保留的不变量、简要音乐理由——而不是一句make this jazzy。契约若允许节奏或旋律变化精确 compare 失败是预期行为此时应逐条审计差异报告而不是把失败标成旋律已保留。评审者最好先看未编辑的 before/after 产物独立找问题再与编辑者的变更记录对账。⚠️ 收尾三重复核与必须知道的边界交付前做三种互不替代的检查原生方言结构inspect 通过、预期的符号不变量compare 按契约核对、实际生成的声音重点听改动小节及其前后过渡可用 listen.py 生成 HTML 对比播放器。三份结论分开陈述别用 ABC 检查代替试听。三条硬边界请写进你的操作习惯每次编辑渲染的是一首全新的完整录音YuE2 不提供波形局部 inpainting不保证编辑区域之外的演唱、音色、波形与原版本一致所以保留原始产物目录、每个版本用全新输出目录generate.py与run_yue2.py都会拒绝已存在的输出cotmelody不会自动移除和弦符号run_yue2.py 的预检会直接拒绝仍含和弦的 melody 输入——先去和弦再翻唱。跑起来的前提见 README.mdLinux、Python 3.12、支持 BF16 且显存 24 GB 的 NVIDIA GPU。abc_check.json只声明原生 ABC 结构通过音质保不准、截断与否、编辑是否落地最终都要靠完整试听确认。【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考