# Demucs 吉他钢琴分离：用六轨结果检查串音和漏音

已实际在CPU运行htdemucs_6s并保存真实输出与逐文件检查；输入包含原创程序音乐或系统朗读，结果只代表当前12秒练习。

## 输入来源

{
  "speech": "macOS Tingting system TTS reading the original text; not a human singer or cloned voice",
  "music": "Original deterministic synthesized drums, bass, guitar-like pluck and piano-like harmonics; not recorded instruments or model outputs",
  "seed": 50015,
  "durationSeconds": 12,
  "sampleRate": 48000
}


## 操作

### 1. 先区分源参考与估计轨

输入中的guitar.wav是程序拨弦音色，piano.wav是谐波衰减音色，不是真实录音，也不是Demucs输出。已知音符起点用于查串音，不能借源轨制造完美分离。

```sh
python3 verify.py
```

### 2. 选择六轨模型而非默认四轨

固定htdemucs_6s，官方明确增加guitar与piano，同时提醒钢琴轨常有串音与伪影。默认htdemucs没有这两份独立输出，改文件名不能变成六轨结果。

### 3. 按短样命令实际运行

使用CPU、shifts=0、segment=3，运行后保存原始日志和模型名。模型或依赖不可用时记录失败，不替换为手工分轨。

```sh
python -m demucs.separate -n htdemucs_6s -d cpu --shifts 0 --segment 3 --overlap 0.25 -o separated original-mix.wav
```

### 4. 回读六个真实WAV

确认vocals、drums、bass、other、guitar、piano均存在且可解码。零能量或只含混音的文件不算该乐器已经正确提取。

### 5. 按起点检查相互泄漏

拨弦从0.25秒开始，钢琴从0.05秒开始；在同一时间窗回听两条估计轨，记录互相出现的音符、消失的起音和持续噪声。先做采样率/时间对齐再画差异。

### 6. 保留不理想的真实结果

即使文件校验通过，也要公开同段试听与失败点；不把钢琴轨弱或混入吉他的问题藏掉。分离音频不是自动乐谱，不能用它直接证明AI扒谱准确。

```sh
python3 verify.py --file separated/htdemucs_6s/original-mix/piano.wav
```

### 7. 记录模型适用边界

保存原混音、真值源、六轨、参数和试听区间。需要对四轨中的贝斯做重混时走相邻教程，不再把轨道数量重复写成一次入门。

## 文件验证

```sh
python3 verify.py
python3 verify.py --self-test
```

验证PCM16音频的格式、帧和输入hash，不证明模型质量。原始合成源轨不是分离结果。

官方来源：https://github.com/facebookresearch/demucs
