SuperAPI AI 工具集

scienceclaw-benchmark-for36

智能体与模型

查看项目

更新于 11-02 04:42

技能介绍

用途

该技能面向音乐源分离任务:将立体声混合信号(k, n, 2)分离为四个音轨,轴 1 顺序固定为(人声、鼓、贝斯、其他)。输入为线性 PCM,采样率由任务给定;可选提供带音轨的训练混合信号(m, 4, n, 2)。交付物为浮点估计(k, 4, n, 2),采样率与长度与输入一致,幅度尺度与混合信号一致,且要求有限,并且在整个 1 秒窗口内不能有估计目标恰好为零(评估指标会跳过此类窗口)。

主要能力

技能提供两条分离路线:

  1. 冻结神经分离器:通过 scilib.audiosep_pretrained.separate_pretrained(mixtures, model, sample_rate) 调用 htdemucs、htdemucs_ft 或 mdx_extra(资源 demucs);通过 scilib.scnet_pretrained.separate_pretrained(mixtures, model="mimo_scnet_small") 调用(资源 scnet_mimo_small)。对应操作符为 music_source_separation_htdemucs、music_source_separation_htdemucs_ft、music_source_separation_scnet。使用前应检查 audiosep_pretrained.available(model)、scnet_pretrained.available() 以及 scienceclaw_tools(operation=weights)。

  2. 训练 CPU 基线:audiosep.separate(train_mixtures, train_stems, mixtures) 使用提升树生成 STFT 比率掩码,对应操作符 music_source_separation_softmask,要求至少 2 个训练片段。audiosep.cross_validate(..., groups=track_ids) 提供分组 k 折 SDR。评分使用 audiosep.sdr_scores,对应操作符 music_separation_sdr。

使用方式

质量指标为:对四个目标取平均,对项目取中位数,对 1 秒窗口取中位数,计算 SDR = 10 log10(sum ref^2 / sum (est - ref)^2),单位为 dB,越高越好(scilib.audiosep.sdr_scores)。

包装器已返回输入长度和顺序(人声、鼓、贝斯、其他),不要再次置换。静音参考音轨会产生 NaN 窗口,中位数会忽略这些窗口。

适用场景

适用于需要将立体声音乐混合信号分离为四个音轨并交付估计结果的任务,可选使用训练混合信号与音轨进行 CPU 基线训练,或使用预训练神经分离器。

限制与注意事项

SDR 不具备尺度不变性:几乎为零的估计得分约为 0 dB,而将混合信号复制到每个音轨会得到强负分,因此仅改变电平就会影响得分。audiosep.gain_only 和 cross_validate 会在分离器旁报告 mixture_sdr、null_sdr 和 gain_only_sdr;应将电平效应与分离效果区分开,切勿提交接近静音的音轨。

预训练重叠:htdemucs 在 MUSDB18-HQ 及更多歌曲上训练;假设其他 Demucs 组合同样存在重叠。MUSDB18 训练曲目(包括可见的训练或验证片段)在训练中已见过,得分高于未见歌曲;应披露这一点,并在称其他检查点(如 SCNet)为干净之前检查其训练数据。

禁止使用待分离项目的参考音轨或 oracle 掩码来构建交付物;将同一曲目的所有片段保留在同一折中。