# SAM Audio 声音提取教程：从原创合成混音中单独提取铃音，核对目标轨与残余轨

已合成三次金属衰减铃音、系统旁白与环境底声并混合，提供已知分轨。没有真实自行车铃录音，也未运行SAM Audio；已知分轨不是模型分离结果。

## 环境与许可

Python≥3.11，官方推荐CUDA；sam-audio-small/base/large需申请Hugging Face权重访问并认证，采用自定义SAM License。重排/跨度预测会增加时间和内存。

## 逐步操作

### 1. 先试听混音与已知目标

input.wav混合了程序合成的金属衰减音、系统旁白和低幅底声；events.csv给出三次目标事件。known-bell.wav是合成时保留的原分轨，不是真实自行车铃或模型提取轨。

### 2. 申请并下载正确模型

按官方README申请checkpoint访问，认证后加载准确SAM Audio模型ID。尚未获得访问时先保留本页素材，不能把空target.wav或返回任务名当分离完成。

### 3. 用短语只描述一个声音

先使用prompt.txt中的lowercase noun phrase，如bell ringing；不要写整段解释或混入man speaking。此题提取铃音，目标不是去掉所有噪声后保留人声。

### 4. 先用最小分离配置

在已安装官方SAM Audio且获得权重访问的环境运行run-sam.py；它按官方processor输入audios和descriptions，首轮predict_spans=False、reranking_candidates=1。先跑短素材，再决定是否增加候选数。

### 5. 同时保存target与residual

将result.target和result.residual按processor.audio_sampling_rate分别导出。它们各自职责不同；只下载目标轨、不听残余轨，会漏掉铃声仍大部分留在残余中的失败。

### 6. 逐次铃响核对漏提和串音

按events.csv三处时间回听target.wav是否完整、是否夹人声；再听residual.wav是否仍有明显铃响。波形看起来干净不代表分离正确，必须实际试听。

### 7. 固定描述后再测试真实素材

通过已知合成事件后，换成自己的真实拍摄声音并重建事件表。不同素材的目标短语与模型配置需重新记录，不能将练习成绩外推任意环境声。

## 下载内容与身份

Original program-authored geometric artwork, not photography, app UI or model output.

Program-synthesized decaying metal tones, seeded synthetic background noise, macOS Samantha system narration; not a recording of a bicycle bell.

parameters.json 为教学记录而非软件原生导入预设；checks.csv/results.csv 等待实际模型输出填写。

## 文件检查

安装 Python Pillow 后运行 `python3 verify.py`；真实结果可用 `python3 verify.py --result 路径` 回读规格。这个检查不判断模型语义、声音自然度或效果。

## 真实模型运行入口

run-sam.py 按官方示例准备，需先安装该工具并获得必要权重访问。本站只检查脚本语法，没有执行它或下载模型；运行后输出到 model-output/，不要覆盖输入。

## 来源

- https://github.com/facebookresearch/sam-audio
- https://github.com/facebookresearch/sam-audio/blob/main/LICENSE

不包含模型权重、账号、真实Key、第三方付费额度或捏造模型输出。
