🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

音色翻唱 lol9706262-source/dsh-cover

DeepSeek 客户端
lol9706262-source3 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

用你的音色一句话翻唱任意歌曲并导出音频

30.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/lol9706262-source/dsh-cover.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/06·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 3 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令
查看扫描证据(共 3 处,展示前 3 条)
  • 执行外部命令来自配置/变量
    index.js:76
    const child = spawn(py, [file, ...args], {
  • 执行外部命令来自配置/变量
    index.js:683
    const c = spawn(cfg.python, ["-c",
  • 执行外部命令来自配置/变量
    index.js:701
    const c = spawn(cfg.python, ["-c",
扫描于 2026/11/6(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:用你的音色一句话翻唱一首歌

README

由 DeepSeek 最新模型翻译生成
dsh-cover 用你的音色一句话翻唱一首歌。纯 Host 插件,零 npm 运行时依赖;所有 DSP 走 runtime/.py,由 Applio 的 Python 解释器执行。 你要说的话 用我的音色翻唱一首「山水之间」 或者给链接、给本地文件: 用 myvoice 翻唱 https://www.bilibili.com/video/BV1Vb421B7XQ 用 myvoice 翻唱 D:\音乐\山水之间.mp3 智能体会调 cover_make,跑完九个阶段,把 WAV 和 320k MP3 发给你。 取源怎么走的 source 三种形态,优先级从高到低: 1. 本地文件存在 → 直接采纳,不复制、不转码 2. http(s) 链接 → yt-dlp 下载;域名含 bilibili.com 记作 bilibili 3. 歌名关键词 → 按 fetchOrder(默认 inmp3,bilibili,youtube)依次试: - inmp3(IN音乐网):站内搜索 https://inmp3.com/so/<关键词>/1/ 拿 data-rid,打开歌曲页取 let code = "base64" 解出酷我直链,直接下 mp3/aac 再用 ffmpeg 转 WAV。
展开完整文档(README 剩余 1 节)
dsh-cover

用你的音色一句话翻唱一首歌。纯 Host 插件,零 npm 运行时依赖;所有 DSP 走 runtime/.py,由 Applio 的 Python 解释器执行。

你要说的话

用我的音色翻唱一首「山水之间」

或者给链接、给本地文件:

用 myvoice 翻唱 https://www.bilibili.com/video/BV1Vb421B7XQ 用 myvoice 翻唱 D:\音乐\山水之间.mp3

智能体会调 cover_make,跑完九个阶段,把 WAV 和 320k MP3 发给你。

取源怎么走的

source 三种形态,优先级从高到低:

1. 本地文件存在 → 直接采纳,不复制、不转码
2. http(s) 链接 → yt-dlp 下载;域名含 bilibili.com 记作 bilibili
3. 歌名关键词 → 按 fetchOrder(默认 inmp3,bilibili,youtube)依次试:
- inmp3(IN音乐网):站内搜索 https://inmp3.com/so/<关键词>/1/ 拿 data-rid,打开歌曲页取 let code = "base64" 解出酷我直链,直接下 mp3/aac 再用 ffmpeg 转 WAV。
不需要 yt-dlp、不需要 cookie,命中率最高,但源多数是 128k / 96~98k AAC。
- bilibili:网页搜索 API 拿 bvid → yt-dlp -f bestaudio[ext=m4a], 30280 音轨通常 184~263k,音质最好。
- youtube:ytsearch1: 兜底,常被 bot 校验挡住。

码率自动择优:inmp3 拿到的源码率低于 fetchMinKbps(默认 160)时,会自动再试一次 B 站;只有当 B 站那份比它高 8 kbps 以上才替换,否则删掉临时文件保留 inmp3。整个过程记在输出的 fallback_log 里。

实测(2026-11-04):

| 歌 | inmp3 | B 站 | 最终 |
| 晴天 周杰伦 | 128k mp3 | 184k m4a | bilibili 184k |
| 起风了 | 98k aac | 263k m4a | bilibili 263k |
| 山水之间 许嵩 | 128k mp3 | — | inmp3 128k |

YouTube 的搜索接口现在会被 bot 校验挡住(Sign in to confirm you're not a bot),直链能下、搜索不能。真要搜 YouTube,加配置 cookiesFromBrowser: "chrome",或者直接贴 YouTube 链接。

关键词取源时,目录名用关键词本身(如 晴天 周杰伦),不用 B 站标题——B 站标题常带「【Hi-Res无损】|《…》」这类装饰,会把目录名弄得没法看。
真正的命中标题记在 run.json 的 fetch.picked.title 里。

三个工具

| 工具 | 作用 |
| cover_doctor | 环境自检:Python/core.py/分离器/ffmpeg/yt-dlp/音色表/显卡/磁盘。不改文件。 |
| cover_make | 全流程出成品:取源 → 分轨 → 定调 → 移调 → 换声 → 对齐 → 混音 → 验收 → 导出 |
| cover_status | 读 run.json,看进度、参数、闸门结果、成品路径 |

九阶段与产物

<coversRoot>\<歌名>\
run.json 每阶段状态与耗时,断了可以 resume src\ 取源(URL → WAV) sep\wav\ UVR-MDX 分出来的 Vocals / Instrumental sep\instrumental_shiftN.wav 降调后的伴奏(|pitch|≥1.5 且非 0 才生成) conv\vocal_<voiceId>.wav 换声结果(44.1 kHz 单声道) mix\report.json 三档变体的参数与 QC 实测值 mix\gates.json 闸门逐项判定 out\_标准版.wav 成品 WAV(三档 + 干声) out\*.mp3 320k MP3 out\provenance.json 模型 hash / 定调依据 / 对齐结果 / 闸门结论

音频只写 out/,mix/ 只留两个 JSON——同一份 69 MB 的 WAV 不会存两遍。

定调怎么定的

不用先跑一遍推理猜。拿你音色的训练数据 f0 分布当中位基准(_voices/<voiceId>.json 里的 f0_median_hz),和原唱人声的 f0 中位比:

半音数 = 12 × log2(音色中位 / 原唱中位)

高位超出音色上限 3.5 半音以上 → 降调;低位不够 → 升调;否则保持 0。--pitch 可以硬覆盖。

拿到半音数后按你文档第 3 节的判据分档:

| |pitch| | 模式 | 做法 |
| < 1.5 | none | 取 0,不动 |
| ≥ 1.5 | both | 人声 --pitch + 伴奏 asetrate/atempo 一起移 |

没有「只动人声」这档了:人声一旦移调、伴奏留在原调,整首歌必然跑调。早期版本留了个 vocal-only 档,实测就是错的,已删除。

实测:short.wav 强行 pitch:-5 → 模式 both,伴奏生成 instrumental_shift-5.wav(44.1 kHz 双声道 60.0021s),换声后中位 166.02 Hz(E3)。

长歌怎么办(4 GB 显卡的硬约束)

convert.py 默认按 --chunk-seconds 120 切块,切点吸附到 ±8 秒窗口里能量最低的帧(换气/间奏),块间 0.3 秒重叠做等功率交叉淡化;单块失败自动对半再切,下限 20 秒。

为什么必须切:整首 4 分半的人声一次喂进 RVC,cuDNN 会抛 RuntimeError: GET was unable to find an engine to execute this computation ——那是 CUDA 侧 ALLOC_FAILED,被 torch 翻译成了这个说法。实测 4m12s 能过、4m30s 必崩,就是显存峰值贴着 4 GB 上限。

采样率必须显式重采样(这是个真 bug,修过一次):Applio 输出的是音色模型自己的采样率(取决于音色模型,常见 40000 或 48000 Hz),不是输入文件的采样率。早期版本把 40000 Hz 的样本当 44100 Hz 用,等于每块都被压快 0.907 倍再补零,拼起来整首歌是碎的——表现出来就是「对齐偏差 1800ms、相关 0.36」。现在读回来先 librosa.resample 到 sr 再拼。

续跑怎么判断能不能沿用

run.json 每个阶段都带 inputs 指纹(文件大小 + mtime,换声那步还带 pitch/音色/分块参数)。指纹对不上就重算,不会拿旧结论套新产物。老 run.json 没有 inputs 字段的一律视为过期。

混音参数

三档默认值,实测能复现(峰值 −0.58 / RMS −13.1 / crest 12.5):

| 变体 | 人声增益 | 伴奏增益 | 混响 wet |
| standard 标准版 | +4.0 dB | −2.0 dB | 0.11 |
| forward 人声靠前版 | +6.5 dB | −3.0 dB | 0.09 |
| blend 融合版 | +3.0 dB | −1.5 dB | 0.15 |

母带顺序固定:先提增益到 −13 dBFS RMS,再 tanh 软限幅(ceiling 0.94 / knee 0.65)。反了会把动态压平。

闸门

| 项 | 限 |
| peak | ≤ −0.3 dBFS |
| rms | −16.0 ~ −10.0 dBFS |
| crest | ≥ 10.0 dB |
| clipped | = 0 |
| stereo 相关 | 0.10 ~ 0.995(≥0.99 视为近单声道,放行) |

4.5–9.5 kHz 的窄带哨音指标不参与判定:实测你自己的成品在它下面 96% 的帧都触发,那个指标只在纯人声轨上有点意义,现在只作为参考值输出。

闸门不过默认不导出(force: true 可强制)。干声轨不参与成品闸门。

装/卸

dsh plugin --profile desktop add github:lol9706262-source/dsh-cover

或从本地目录装:

dsh plugin --profile desktop add file:C:/path/to/dsh-cover

装完重启一次 DSH(主进程,不是开新会话)——Host 插件在进程启动时加载。

卸载:dsh plugin --profile desktop remove dsh-cover。

音色表

<voicesDir>\<voiceId>.json,一个音色一个文件,key 就是音色 id:

{
"myvoice": {
"pth": "<applioRoot>\\logs\\myvoice\\myvoice_300e_27900s.pth",
"index": "<applioRoot>\\logs\\myvoice\\myvoice.index",
"sample_rate": 40000,
"f0_median_hz": 172.89,
"f0_p95_hz": 258.75,
"f0_min_hz": 53.63,
"f0_max_hz": 319.34,
"defaults": { "index_rate": 0.75, "protect": 0.33, "volume_envelope": 1.0, "f0_method": "rmvpe" }
}
}

sample_rate 必须是 RVC 模型自己的采样率(看训练配置),不是输入音频的采样率。
f0_median_hz 用来定调:拿训练集 f0 中位当「你能舒服唱到哪」的基准。

加音色就往这个目录塞新的 json,cover_doctor 会认出来。

参数速查(cover_make)

| 参数 | 默认 | 说明 |
| source | 必填 | URL / 本地路径 / 歌名关键词(走 ytsearch) |
| voice | _voices/ 里第一个音色 | 音色 id |
| pitch | 自动 | 强制移调半音数 |
| variants | 三档全出 | standard / forward / blend |
| preset | default | default / slow_ballad / fast_pop |
| target_rms | −13.0 | 母带目标 |
| index_rate | 0.75 | 发飘往上调,贴原唱往下调 |
| protect | 0.33 | 齿音糊往上调到 0.45 |
| resume | true | 沿用已有阶段(产物指纹没变才沿用) |
| chunk_seconds | 120 | 换声分块秒数,4 GB 显卡别超过 150 |
| force | false | 闸门不过也导出 |

依赖边界

- 只要求 Applio env 里已有的 numpy / soundfile / librosa / scipy
- 不引入 pyloudnorm / pedalboard / pyrubberband
- ffmpeg 用 <applioRoot>\ffmpeg.exe(那个版本的 amix 没有 normalize,所以混音一律走 Python 逐样本,不用 amix)
- 移调用 asetrate + aresample + atempo,时长不变(实测 180.5013 → 180.4821)

已知边界

- 只有 2-stem UVR 分离,做不了主唱/和声分离
- 1050 Ti 4 GB 实测:4m36s 的歌分轨 62 秒、换声 223 秒;4m30s 的歌换声分 3 块共 267 秒,全程 299 秒
- 5m03s(平凡之路)分轨 62 秒、换声 4m56s,全程 483 秒
- 分离阶段没有分块机制,长歌的分轨显存峰值取决于 audio-separator 自身
- yt-dlp 走 YouTube,国内网络需要自己解决

实测台账

| 歌 | 时长 | 定调 | 全过程 | 结果 |
| 山水之间 许嵩 | 276.06 s(本地 48k 单声道) | 220.33 Hz → keep 0 | 374 s | 三档全过 |
| 夜空中最亮的星 逃跑计划 | 252.25 s(inmp3 128k) | 185.27 Hz → pitch −5 / both | 397 s | 三档全过 |
| 晴天 周杰伦 | 269.50 s(B 站 184k) | 238.89 Hz → keep 0 | 299 s | 三档全过 |
| 平凡之路 朴树 | 303.25 s(B 站 211k) | 142.04 Hz → keep 0 | 483 s | 三档全过 |

实测台账(1050 Ti 4 GB / 山水之间 276.06s / 48 kHz 单声道源)

| 阶段 | 耗时 |
| 取源 | 0.2 s |
| 分轨 | 62 s |
| 定调(pyin hop=1024) | 36 s |
| 换声 | 223 s |
| 对齐 | 5.6 s |
| 混音(3 档 + 干声) | 36 s |
| 验收 | 0.1 s |
| 导出 3 个 MP3 | 12 s |
| 合计 | 374 s |

成品 QC:标准版 peak −0.609 / RMS −13.032 / crest 12.42 / 削波 0;人声靠前版 −0.613 / −13.034 / 12.42;融合版 −0.609 / −13.030 / 12.42。三档全过闸门。

定调结论:原唱人声中位 220.33 Hz(A3),音色中位 172.89 Hz,semitone_median −4.2,但 high_overshoot 仅 1.57 半音(这首歌最高只摸到 G♯4),判 keep → pitch 0。
预览分享卡片长什么样 ↓lol9706262-source/dsh-cover
分享 · DeepSeek Harness Hub
lol9706262-source/dsh-cover

用你的音色一句话翻唱任意歌曲并导出音频

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部