从音频分离到MIDI编配:《Sunset of Seven Suns》扒谱实战
2026/9/3 2:40:02 网站建设 项目流程

这次的目标很明确:把 Deltarune 相关素材里的《Sunset of Seven Suns》扒成 MIDI 和五线谱,而不是只停留在“听个大概”的阶段。扒谱本身不是单步操作,我把它拆成四段:音频分离、AI 音符转录、手动听辨、MIDI 编配。整套流程在普通 PC 上就能跑,AI 部分有 NVIDIA GPU 会明显更快,没有 GPU 用 CPU 也能出结果,代价是等待时间变长。如果你以前只会用耳朵硬扒,这篇会把能交给工具的部分都交出去,同时保留人工复核的关键环节。

先说结论:不存在“一键扒谱”的黑盒。Demucs、Basic Pitch 这些工具能快速给出候选信息,但最终准确率取决于两步——分离出来的音轨干不干净,以及你愿不愿意花时间对着频谱和节拍器做修正。下面按完整流程走一遍:环境准备、音频分离、自动转录、听辨校音、MIDI 重建、乐谱导出,最后是常见问题排查和一批实战建议。照着流程跑完,你应该能拿到一份可播放、可编辑的《Sunset of Seven Suns》扒谱产物。

1. 扒谱工作流核心能力速览

先给一张速览表,方便你判断这套流程适不适合现在的需求。

维度说明
扒谱对象Deltarune 相关音乐素材《Sunset of Seven Suns》
输出产物MIDI 文件、五线谱 PDF、DAW 编配工程
核心工具链ffmpeg、Audacity、Demucs、Basic Pitch、DAW、MuseScore
硬件下限普通 PC 可跑,建议内存 16GB 左右
AI 加速条件NVIDIA GPU + CUDA 可加速 Demucs 与 Basic Pitch
是否需要音乐基础需要基础音高和节奏概念,工具能降低门槛但无法完全替代判断
是否支持批量处理支持,通过脚本循环处理多个音频片段
主要风险AI 转录会出大量候选音符,错音、碎音必须人工清理

这套流程的定位是“半自动扒谱”:工具负责降低体力劳动,耳朵负责最终验收。越到后面的步骤,人工听辨的比重越高,这也是扒谱质量提升最明显的环节。

2. 适用场景与版权边界

这套流程适合的典型场景包括:

  • 想学编曲的人:通过扒谱分析 Deltarune 风格的旋律走向、和声进行和编配层次。
  • 游戏音乐分析者:需要把音频转成可观察的 MIDI,做动机对比和结构分析。
  • MIDI 制作者:需要一份能二次编辑的 MIDI 文件,用于换音色、重编曲或做钢琴改编。
  • 视频与教学内容创作者:想把原曲片段做成可视化谱例,或做逐句讲解。

不适合的场景很简单:如果你想要“点一下自动输出完美谱面”的工具,这套流程做不到,目前市面上也很难有可靠的纯自动方案。AI 转录工具会给你大量音符,但里面通常混着和声泛音、混响尾音和识别错误,必须用耳朵筛一遍。

版权边界这里必须说清楚。Deltarune 及其音乐素材的版权归于原作者和相应权利方。《Sunset of Seven Suns》的扒谱结果,本质上是对原曲的转录演绎。个人学习、编曲分析、内部研究通常可以接受;如果要公开发布乐谱、MIDI、翻奏视频,或者把扒谱结果用于商业项目,请先确认原曲方的授权要求。二次创作视频里建议标注原曲名称、作者和版权归属,不要把自己的扒谱结果包装成官方谱。涉及音频素材的下载和使用,也请确保来源合法。

3. 环境准备与前置条件

在开始扒谱之前,先把基础环境准备好。操作系统用 Windows、macOS、Linux 都可以,以下命令在 Windows PowerShell 和 macOS/Linux 终端里略有差异,需要注意区分。

首先检查基础命令是否可用:

ffmpeg -version python --version pip --version nvidia-smi

ffmpeg 负责音频格式转换和剪辑;Python 环境用于运行 Demucs 和 Basic Pitch。如果你用的是 NVIDIA 显卡,nvidia-smi能看到驱动版本和显存信息,方便后面判断 GPU 是否可用。

接下来创建独立虚拟环境,避免依赖冲突:

python -m venv venv # Windows venv\Scripts\activate # macOS / Linux source venv/bin/activate

然后安装两个核心 Python 工具:

pip install demucs basic-pitch

如果安装速度慢,可以先把 pip 源切到国内镜像,再执行安装。安装完成后确认版本:

demucs --help basic-pitch --help

两者能正常打印帮助信息,说明环境基本就绪。

音频素材准备也在这步做。如果你手里是视频文件,先用 ffmpeg 提成双声道 WAV:

ffmpeg -i source_video.mp4 -ac 2 -ar 44100 input.wav

如果你打算只扒分段,可以先把长音频裁成若干小段再进入后续流程。

4. 音频分离:Demucs 部署与分轨验证

扒谱第一道工序是“拆轨”。完整混音里乐器叠在一起,AI 直接识别容易把钢琴音、贝斯音、打击乐音混成一片。先用音乐源分离模型把频段和声源拆开,后面转录会干净很多。

Demucs 的默认模型是 htdemucs,支持鼓、贝斯、人声、其他四轨分离。直接运行:

demucs input.wav -o separated

运行完成后,输出目录结构通常是:

separated/htdemucs/input/ ├── bass.wav ├── drums.wav ├── other.wav └── vocals.wav

如果原曲没有人声,vocals.wav可能是空泛音或者很薄,这是正常现象。重点看bass.wav(低音声部)和other.wav(键盘、弦乐、合成器之类的中高频声部)。对于《Sunset of Seven Suns》这类以氛围和旋律见长的素材,other.wav通常是最值得听的一轨。

分离完成后,不要急着转录。先用播放器或 Audacity 听一遍分离结果:

  • bass.wav里是否还有明显鼓声?有的话说明分离不彻底。
  • other.wav是否有严重的金属感或频段缺失?说明模型对某些音色处理不佳。
  • 整体是否音量过小?可以用 ffmpeg 做增益或直接在 DAW 里调。

如果分离质量不够好,可以换参数重新跑。例如只拆成人声和伴奏两轨:

demucs --two-stems=vocals input.wav -o separated

这种模式对纯 BGM 素材不一定更优,但值得试。分离质量的判断标准就一条:能不能在某一轨里清楚听到你这次要扒的声部。

需要提示的是,Demucs 是个计算密集型模型。GPU 存在时它会默认尝试用 CUDA,没有 GPU 就自动落到 CPU,速度慢很多。长音频尤其明显,可以先裁剪成 30 到 60 秒的片段再逐个分离,避免单次任务排队太久。

5. AI 音符转录:Basic Pitch 使用与批量脚本

分轨完成后,进入自动转录环节。这里用 Spotify 开源的 Basic Pitch,它对单音乐器轨的转录效果比直接转完整混音好很多。

Basic Pitch 支持命令行和 Python API 两种方式。先用命令行跑一次,确认输出效果。

basic-pitch /path/to/bass.wav /path/to/output_dir

不同版本的具体参数略有区别,先运行basic-pitch --help查看当前版本支持的选项。运行完会得到多个文件,主要包括:

  • MIDI 文件:核心结果,音符事件序列。
  • CSV 文件:每个音符的时间、音高、力度。
  • 模型输出文件:可选,用于调试。

不要在完整混音文件上直接跑。我的建议是分别对bass.wavother.wav各跑一次,再分别人工检查。要扒完整首曲子,建议把音频切成 16 到 32 秒的乐句。这样既方便听辨,也能避免长时间音频带来的显存和内存压力。

手动一段段跑会累。下面给一个批量处理的 Python 脚本,用 subprocess 调用 Demucs 和 Basic Pitch:

import subprocess from pathlib import Path chunk_dir = Path("./chunks") # 放切好的音频片段 separated_dir = Path("./separated") # Demucs 输出目录 transcribe_dir = Path("./transcribed") # Basic Pitch 输出目录 transcribe_dir.mkdir(exist_ok=True) for wav in sorted(chunk_dir.glob("*.wav")): print(f"process: {wav.name}") # 1. Demucs 分离 subprocess.run( ["demucs", str(wav), "-o", str(separated_dir)], check=True, ) # 2. 对贝斯轨转录 bass_path = separated_dir / "htdemucs" / wav.stem / "bass.wav" if bass_path.exists(): target = transcribe_dir / f"{wav.stem}_bass" subprocess.run( ["basic-pitch", str(bass_path), str(target)], check=True, )

这个脚本没有处理失败重试,真正批量跑的时候建议每段都输出日志,失败后单独记录。使用类似结构时,把路径和命令参数替换成你自己环境里的实际配置即可。

转录之后不要去直接使用 MIDI。Basic Pitch 输出的音符往往很碎,会出现:

  • 同一个音被切成多个短音符;
  • 泛音被识别成高八度或额外音符;
  • 混响尾音被当成延长音。

所以在进入 DAW 前,先用脚本或编辑器做一次基础清洗,删掉低力度短时值音符,再人工打开 MIDI 检查。

6. 手动听辨与和声分析

自动转录只是初稿,决定扒谱上限的是人工听辨。第 6 章解决三个核心问题:曲速、旋律音高、和声性质。

先定速。把分离出来的other.wav或原曲拖进 DAW,在时间轴开头设置拍号,然后播放录音,用节拍器慢慢对齐。不要凭感觉猜 BPM,最好手动点几段,确认速度是否稳定。如果原曲有变速,还需要用 DAW 的节拍映射(tempo map)功能逐段标记。

定调。听完整段主旋律,留意最后落点落音。把旋律里出现频率最高的音和结束音对照,多数情况下结束音就是主音。比如旋律明显落在 C,并且全曲音阶素材基本来自 C 大调,那可以初步判断是 C 大调;如果再发现很多黑键和半音进行,就考虑关系小调或转调、离调。

旋律扒写。在 DAW 里加载主旋律轨,开启慢放功能,把速度调到 50% 甚至更低,同时保持音高不变。大多数 DAW 都有这个选项,名字可能是 Repitch、Elastic、Flex Time。逐句听,逐音在钢琴卷帘里点出来。如果某个音不确定,使用频谱工具看基频,比如 A2 是 110Hz,A3 是 220Hz,A4 是 440Hz,基频位置可以直接告诉你音名。

低音扒写。低音是判断和弦的基础。用分离好的bass.wav,把 EQ 调到 60Hz 到 300Hz 增强,听根音走向。不要一次性听整段,按小节记。贝斯音通常每小节一两个音,先把根音记准,后面和弦性质才好判断。

和弦分析。拿到旋律和低音后,开始标和弦。常见步骤:

  1. 先根据贝斯根音锁定每个和弦的根音;
  2. 再根据旋律里的强拍音判断这个和弦是包含该音的大调、小调还是七和弦;
  3. 最后用“听感是否符合小节情绪”来复核。

举个例子,如果某小节贝斯根音是 C,旋律强拍音是 E,那么这个位置大概率是 C 大调主和弦;如果旋律强拍音是 Eb,则可能变成 C 小调。这只是示例,具体要对到原曲实际听感。

这个阶段可以借助 DAW 里的调性检测插件,但插件结果仅供参考。和声判断最终要回到“低音 + 旋律 + 听感”三者一致。

7. MIDI 重建、编配与乐谱导出

人工听辨完成之后,把初稿 MIDI 重新整理成更接近原曲的成品。这部分在 DAW 里完成,推荐流程如下。

首先建立声部轨道:

  • 主旋律轨:通常用 Lead 音色或钢琴音色。
  • 副旋律轨:如果有对位旋律,单独一轨。
  • 低音轨:贝斯根音。
  • 和声轨:pad 或弦乐长音。
  • 打击乐轨:如果有鼓,尽量还原节奏型和镲片。

然后从钢琴卷帘里修音符。第一步做量化,参考你之前确认的最小音符时值,通常是八分或十六分音符。量化不要拉满,保留一点点人性化偏移,否则听起来会很呆。第二步调力度,把每段旋律的起伏做出来,强拍音力度大一些,过渡音弱一些。第三步检查音符重叠,避免同一个 MIDI 音符叠了两个同音高的短音。

编配阶段可以不用追求“一个音不差”。扒谱的目的是理解原曲,只要旋律、低音、和弦和整体节奏型准确,剩余细节可以按需保留。

MIDI 整理完成后,生成五线谱。推荐用 MuseScore 这类免费制谱软件:

  • 导入 MIDI:MuseScore 支持直接打开 MIDI 文件。
  • 整理谱面:检查调号、拍号、声部分配、连音线、踏板标记。
  • 导出 PDF:在 GUI 里通过文件导出即可;部分版本也支持命令行转换,具体以你安装的版本帮助信息为准。
# 命令行导出示例,不同版本参数可能不同,请以本机帮助为准 musescore4 midi_output.mid -o score.pdf

导出后检查谱面。如果五线谱上出现大量不合理的增时线、休止符移位、空拍错位,多半是 MIDI 量化残留问题,回到 DAW 再修一遍,不要直接拿这个谱面发布。

成品验证用一个 A/B 对比方法:在 DAW 里把原曲放在 A 轨,MIDI 编配放在 B 轨,同步播放,逐段切换静音,对比旋律轮廓、低音进行、和弦色彩是否一致。不一致的地方在钢琴卷帘里直接改,改完再听,直到每个乐句闭合。

8. 资源占用与性能观察

这套流程里最吃资源的是 Demucs 和 Basic Pitch,DAW 和 MuseScore 反而压力不大。如果你准备批量扒长曲,资源占用要提前心里有数。

先看 GPU。安装好显卡驱动后,在另一个终端窗口运行:

nvidia-smi -l 1

每秒刷新一次显存和 GPU 利用率。Demucs 跑长音频时显存占用会明显上升,具体数值和音频时长、模型尺寸、批处理大小直接相关,不能一概而论。CPU 跑则看任务管理器或top的 CPU 占用,通常会把多核打满。

降低负载的方法:

  • 把音频切成 30 到 60 秒片段,逐段处理;
  • 分离和转录分开跑,不要同时开多个任务;
  • 不需要转鼓的话,先用--two-stems=vocals或只分离需要的声部;
  • 转录时只投喂单乐器轨,不要投喂完整混音;
  • 批量脚本里加sleep间隔,避免短时间连续启动多个任务导致资源耗尽。

显存不足时优先缩短音频长度,而不是降采样率。44.1kHz 的音频信息密度已经足够,降采样到 22050Hz 虽然能省内存,但会损失高频泛音,影响音高判断。

端口和服务问题在扒谱场景不常见,但如果你把转录封装成 Web 服务或 API 给团队用,就要注意并发任务和日志记录,避免长时间任务把线程池占死。

9. 常见问题与排查方法

扒谱过程会遇到的问题集中在依赖、分离质量、转录碎音和听辨偏差上。下面列成表格,方便对照排查。

问题现象可能原因排查方式解决思路
Demucs 安装失败或下载模型慢PyPI 源慢、依赖冲突查看 pip 安装日志切换国内 pip 镜像源,手动放置模型缓存
Demucs 输出杂音明显输入音频本身带压缩噪底听原始 WAV,确认素材质量先做降噪或 EQ 处理,再重新分离
分离结果里人声混入伴奏轨模型分离能力有上限用频谱查看对应频段换成两轨分离,或者按频段手动补切
Basic Pitch 输出音符太碎混响、延音、泛音干扰打开 MIDI 钢琴卷帘查看只对分离后的单乐器轨转录,调高音符置信度阈值
BPM 对不上原曲变速或无鼓点手动点拍,逐段标记在 DAW 中建立速度映射,不依赖自动测速
低音听不清监听耳机低频不足使用频谱工具看基频用 EQ 提升 60Hz 到 300Hz,单独听 bass 轨
和弦判断反复出错只靠旋律音判断,忽略低音先写贝斯根音,再配和弦性质根音 + 三音 + 强拍旋律音三者对齐后再定
MIDI 导入 MuseScore 谱面混乱量化不严、声部未分轨检查 MIDI 事件时值和力度回到 DAW 修正量化,按声部分开 MIDI 通道
CUDA 相关报错驱动、PyTorch 版本不匹配运行 nvidia-smi 查看 CUDA 版本按项目要求的 CUDA 版本重装 PyTorch,或暂时用 CPU 推理
批量任务中途卡死内存不足、显存不足查看系统日志和资源监控缩短音频片段,增加批处理失败重试逻辑
最终 MIDI 与原曲听感差异大音色、力度、混音差异A/B 对比播放优先确认旋律和低音,再补力度和表情细节

一个容易忽略的点是:如果分离出来的某一轨明显失真或缺失频段,不要硬用,回去调整分离参数。自动转录工具对输入质量非常敏感,输入轨不干净,输出必然乱。

10. 扒谱最佳实践与后续扩展

最后这部分是给实际操作时用的建议。第一次不建议直接扒全曲,先挑 16 到 32 秒的完整乐句,走完“分离、转录、人工修、导出”的闭环。跑通以后,再扩展到整首。

工程目录建议这样规划:

project/ ├── source/ # 原始音频素材 ├── chunks/ # 切分后的音频片段 ├── separated/ # Demucs 分轨结果 ├── transcribed/ # Basic Pitch 转录结果 ├── midi/ # 人工整理后的 MIDI ├── score/ # 导出的 PDF 乐谱 └── logs/ # 批量任务日志

分目录管理的好处是:中途某一步的生成结果可以被反复对比,不用从零重跑。批量任务一定要加日志和失败重试,长时间任务如果中途断了,至少能定位到哪一段出问题,而不是全部重来。

音乐素材的授权问题要始终保持敏感。扒谱结果可以用于个人学习和分析,公开传播前务必确认原曲版权许可。如果要把 MIDI 或乐谱发布到社区,最好附上原曲信息、扒谱者信息和“仅限学习交流”的说明。

后续可以继续扩展的方向有几条:

  • 把 MIDI 导入不同音源,做钢琴改编版或电子重编曲;
  • 导出 MusicXML,配合教学工具做逐句讲解;
  • 把分离和转录封装成 Python 服务,接入自己的批处理流程;
  • 对比不同 AI 转录模型的效果,找一个最适合 Deltarune 风格音频的组合。

扒谱这件事,工具能帮你省掉大量重复劳动,但决定准确度上限的仍然是监听和判断。先跑通这篇的完整流程,再针对曲目特点调整参数,你会慢慢找到属于自己的扒谱节奏。整个过程最值得花时间的不是安装和命令,而是第 6 章那部分静下来听音的环节。建议先收藏这份流程,等真正动手扒《Sunset of Seven Suns》时再对照着一步一步来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询