Skip to content

Releases: SDIJF1521/xb-svcb

XB-SVCB v0.0.32

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 02 Oct 19:50

XB-SVCB v0.0.32

本版提供 64 位 Python 3.12 的五套硬件专用安装包,并更新 ROCm 10、DirectML 和 CUDA 推理兼容性。

选择安装包

硬件 安装器 BIN 分卷数
CPU XB-SVCB-Setup-CPU.exe 4
AMD ROCm 10 XB-SVCB-Setup-ROCm10.exe 6
AMD DirectML XB-SVCB-Setup-DirectML.exe 4
NVIDIA RTX 40 系及以下 XB-SVCB-Setup-CUDA126.exe 8
NVIDIA RTX 50 系 XB-SVCB-Setup-CUDA128.exe 9

下载所选版本的 EXE 以及全部同名前缀 .bin 文件,放在同一目录后运行 EXE。无需下载其他硬件版本。
SHA256SUMS-v0.0.32.txt 列出全部安装器文件的 SHA-256,供下载后校验。

本版修复

  • CUDA126/CUDA128 离线 PyTorch 轮包使用真实的 Python 3.12 ABI;安装器构建时检查包内 ABI,避免错误轮包导致 Torch 导入失败。
  • CUDA 共享运行时安装后完整写入 UVR、SeedVC、DDSP、So-VITS-SVC、RVC 和 Vocal 的解释器路由,避免安装成功后仍显示缺少旧 .venv-* 环境。
  • 补齐 core-cu128 兼容材料及固定配方,扩展 ROCm 10、DirectML、模型推理、API 与界面兼容修复。

从 v0.0.31 升级时,旧 Python 环境需要按新包重建。若已有安装仍显示旧运行时路径,请从开始菜单运行“搭建/修复运行环境”,并重启应用。PyMSS 模型不随安装器预下载,可在“模型管理”中选择。

五套安装器均已完成构建和分卷检查;CUDA126 在 RTX 4060 上通过 Torch 导入及 GPU 运算检查。ROCm 10、DirectML 和 CUDA128 的真实模型音频推理仍需在对应设备上验收。

完整更新说明

v0.0.31

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 06 Sep 22:16
2e8cb92

v0.0.31 · 共享运行时、首次引导与高音/美声稳定性

v0.0.31 收拢了从 540ca2e38fafb1599ef773748a4970e00523f7ad 起到当前 HEAD 的全部变动:CUDA 发布栈改为硬件专用包与两层共享运行时,同时继续修复高音保护误触发、So-VITS-SVC 推理异常、RVC DirectML F0 推理、模型输出高频噪声和 AI 歌声增强过度处理的问题。

📦 安装器与运行时布局

  • 发布包拆分为 CPU、DirectML、CUDA126、CUDA128 四套硬件专用安装包;每套只携带目标硬件栈需要的离线 wheels。
  • NVIDIA 最低 CUDA wheel 栈统一为 cu126,不再新建或分发 cu121 CUDA 环境;RTX 50 系 Blackwell 使用 cu128,40 系及以下使用 cu126。
  • CUDA126/CUDA128 默认采用两层共享布局:UVR、SeedVC、DDSP-SVC 使用 runtimes/core-*,So-VITS-SVC、RVC、Vocal/DeepFilterNet3 使用 runtimes/svc-*。
  • CPU 与 DirectML 继续使用 .venv-* 隔离兼容布局;CPU 的 SVC/RVC 环境也统一为 CPython 3.10,不再要求额外准备 Python 3.9。
  • 安装器新增 Python 3.10 python.exe 手动选择页,只接受可运行的 64 位 CPython 3.10.x,并会跳过 WindowsApps 的 Microsoft Store 占位程序。
  • installer_env.cmd 会记录 XB_RUNTIME_LAYOUT、XB_GPU_STACK 和锁定的 Python 路径;后续运行 setup_env.bat 修复 CUDA 包时会继续走共享入口。
  • 安装完成校验改为按 runtime.json 解析真实解释器路由,再验证 Python、Torch、CUDA/DirectML 和关键 worker;环境全部通过后自动清理安装目录中的 assets/wheels。

🧱 Wheelhouse、底模与构建

  • 新增 install/install_shared.py、runtime_manifest.py、audit_runtime.py、core_recipe.py、validate_core_install.py 等运行时脚本,明确共享环境的安装、探测、校验和原子激活边界。
  • 新增 installer/stage_wheelhouse.py 与 installer/build-all-packages.ps1,支持顺序构建四套安装包,并拒绝使用陈旧的 py39 CPU wheelhouse 生成新包。
  • 构建流程会复用固定工具链,检测并重建陈旧 wheelhouse 环境,避免历史约束文件或单栈选择被错误复用。
  • 新增 assets/models/model-manifest.json 与 install/model_manifest.py,记录随包底模、UVR、SeedVC、DDSP-SVC 和 DeepFilterNet 权重的来源、运行时位置、大小与 SHA-256 校验。
  • 底模部署优先使用硬链接,跨盘或失败时回退复制;已有同尺寸权重只有哈希一致才复用,避免损坏文件被误判可用。

🎼 高音保护与推理质量

  • 高音保护收敛为用户可理解的开关:关闭后不会再执行自动高音重试、F0 上限扩展或自动阈值修正。
  • 新增“全参数手动调整”开关。关闭时只发送常用推理参数,目标说话人、F0 过滤阈值、手动高音起点等高级字段恢复安全默认值。
  • 高音阈值优先读取当前模型的 inference_profile、f0_max、f0_max_hz 或 max_f0,不同模型不再共用一个固定高音边界。
  • 高音保护从“检测到高 F0 就整体重推”改为先跑基线推理,再只对确认坍塌或错误音高的高音区域执行受限降调重试,并把通过质量门的区域合回基线渲染。
  • 重试次数可通过 high_pitch_guard_rounds 控制,取值范围为 0 到 8;失败候选会因新增窄带高频啸叫、音高仍坍塌或未改善原问题而被拒绝。
  • 修复高频修复算法泄漏和高音保护误爆高音区的问题,降低普通清辅音、气声、短暂噪声被误当作高音处理的概率。
  • So-VITS-SVC、RVC、实时翻唱和编辑器局部重推理复用同一套高音掉音检测、分区重试和候选质量判断,减少不同入口效果不一致。
  • RVC DirectML 会先在 CPU 反序列化 torchcrepe checkpoint,再交回 DirectML 执行,避免 AMD 显卡路径在 F0 推理前因 privateuseone 设备映射失败。

🎧 AI 歌声增强与高频噪声

  • AI 歌声增强各阶段新增质量门,会拒绝空文件、静音段抬噪、响度塌陷、削波、过度高频或不自然的候选结果,失败时回退上一阶段输出而不中断任务。
  • 新增模型高频残留识别,对短促尖刺和持续噪声型空气频段分别处理,避免 DeepFilter、参考频谱匹配或细节回填把模型自带哨声放大。
  • 参考人声现在只作为频谱、包络和高音主体的引导,不再把未对齐的高频波形直接混入模型输出,降低相位打架、电音感和啸叫。
  • 高音保护已触发时,美声链路自动采用更保守的高频染色、压缩和激励强度,并补偿高音主体能量。
  • Praat PSOLA 自然修音增加结果验收,检测到疑似风扇声、空渲染、采样率变化或能量异常时自动丢弃候选。
  • 翻唱增强可先对原始参考歌曲分离/去混响,再用于自然修音、节奏对齐和音色参考,减少伴奏串音参与增强判断。

🧭 前端工作流

  • 新增首次使用交互引导,覆盖首页、翻唱工作台、前期处理、多模型时间轴、AI 歌声增强、实时翻唱、资源获取、模型站、作品库、播放器、编辑器、API 和插件入口。
  • 首页和创建页支持拖拽音频。桌面端可把文件导入临时区并带到翻唱工作台,浏览器开发模式保留文件选择回退;单个拖入文件限制为 50MB。
  • 创建页新增手动参数开关、高音保护轮次、F0 过滤阈值和模型说话人字段,并保证预设只恢复数值,不会偷偷开启高级参数。
  • 多模型模式下每个模型都可独立保存高音保护、轮次、F0、说话人、共振峰、RVC、SeedVC 和 DDSP-SVC 参数。
  • 生成完成后的内置播放器增加进度显示和拖动定位,方便直接检查副歌、高音段和修复结果。
  • 模型管理页支持直接重命名模型显示名称,不修改模型 ID、权重、配置或来源记录。

🔌 API 与桌面桥接

  • FastAPI 推理参数新增 high_pitch_guard_rounds、f0_filter_threshold 和 manual_params_enabled;多模型请求会把顶层高音保护配置正确传播到未单独覆盖的模型项。
  • 新增 PATCH /api/v1/models/{model_id},用于修改模型显示名称。
  • 桌面 Bridge 新增 rename_model 和 import_audio_data,前者服务于模型重命名,后者用于保存拖入/浏览器读取的音频数据。
  • API 文档同步补充 PyMSS、人声处理、局部重推理高音保护、模型重命名和编辑器时间拉伸说明。

📝 文档与测试覆盖

  • 新增 共享运行时与兼容布局,集中说明 CUDA 两层共享环境、CPU/DirectML 兼容布局、runtime.json 路由和修复边界。
  • 新增 测试分组与验收边界,区分 runtime、installer、packaging、packaging_integration 和真实模型推理验收。
  • README.md、源码安装文档、开发发布文档、架构说明、安装器说明和模型资产说明已同步到 0.0.31 的运行时和发布方式。
  • 新增或更新安装器、wheelhouse、runtime manifest、模型资产、AI 增强、高音保护、实时翻唱、HTTP API 和 PyMSS 状态相关回归测试。

⚠️ 升级说明

  • 用户的模型、作品、编辑工程、主题媒体、API 设置和插件数据继续保留,升级不会清空用户数据。
  • NVIDIA 用户请按硬件重新选择 CUDA126 或 CUDA128 安装包;旧 cu121 CUDA 安装需要通过新安装器或 setup_env.bat 迁移到当前共享布局。
  • 若升级后环境状态异常,请从安装目录运行 setup_env.bat;CUDA 包会根据 installer_env.cmd 继续修复共享运行时,CPU/DirectML 包继续修复隔离环境。
  • 从旧 py39 CPU wheelhouse 或本地构建缓存升级发布包时,请重新生成 wheelhouse,避免把缺少 cp310 wheels 的缓存带入 0.0.31 安装器。

XB-SVCB v0.0.30

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 28 Aug 14:39

v0.0.30 · PyMSS、人声高音保护与环境检测稳定性

v0.0.30 将 PyMSS 新引擎、本轮环境检测修复与高音保护升级统一纳入同一版本,重点解决“安装器显示存在、软件实际降级”和高音素材翻唱不稳定的问题。

🎚️ 新增 PyMSS 人声分离与和声去除

  • 创建页新增 UVR / PyMSS 前期人声分离引擎切换;关闭分离时仍可直接进入后续翻唱流程。
  • PyMSS 使用独立的 .venv-pymss 运行环境和隔离 wheelhouse,避免与 SVC、RVC、UVR 等组件的 Torch 依赖互相覆盖。
  • 模型管理页只展示两类 PyMSS 模型:人声分离(vocal/vocal_extraction)与和声去除(legacy_vr/vr_backing_vocal)。下载后的模型会回到翻唱页供选择。
  • 翻唱创建页增加“分离后去除和声 / 伴唱”可选环节。和声模型输出的伴唱轨会从分离人声中相减,保留主唱后再进入 SVC/RVC/SeedVC/DDSP-SVC 推理。
  • 未下载的模型不会出现在翻唱页可选列表;模型站下载接口也会拒绝不属于这两类用途的 PyMSS 模型。
  • PyMSS 环境或模型缺失时只禁用 PyMSS 选项,UVR 或其他可用引擎仍可继续工作,不阻塞整个应用启动。
  • 音频编辑器“人声编辑”面板同步支持 UVR / PyMSS 选择;PyMSS 可在人声分离后继续执行 BVE 和声去除,编辑器从翻唱作品打开时会继承原任务的前期处理配置。

🎛️ 音频编辑器性能与时间拉伸

  • Element Plus 选择器、操作菜单、开关和原生下拉框统一读取主题语义变量;关闭态控件背景、弹层背景、边框、文字、悬停/选中态会随赛博、二次元和自定义主题同步,不再出现白底选择框或灰色默认开关。
  • 波形加载改为优先加载当前片段、最多三个并发请求;缩放或编辑后会丢弃队列中已失效的旧请求。后端一次读取目标区间并使用 NumPy 向量化提取峰值,避免每个采样点启动一次转换。
  • 波形转码按源文件大小和修改时间缓存,片段偏移、时长、缩放倍率或源文件变化时自动失效,不会复用旧波形。
  • 编辑器片段试听和实时混音预览改用缓存 MP3 传输,减少长音频经 pywebview Base64 桥接时的编码、内存和首播等待;工程导出与复制仍按用户选择保留 WAV/FLAC。
  • 片段检查器新增 25% - 400% 时间拉伸。倍率同时作用于波形、片段预览、插件监听、实时混音和最终导出;旧工程缺少字段时按 100% 兼容。
  • FFmpeg atempo 会自动拆分到 0.5 - 2.0 的安全范围,拉伸不会改变片段在时间轴上的起止位置,也不会截断相邻内容。

🚀 PyMSS GPU 与重推理

  • PyMSS 使用独立的 Torch 2.7.1 环境:Blackwell 使用 cu128,50 系以下 NVIDIA 改用 cu126,项目其余引擎仍保留原有 cu121 栈,不再把普通 NVIDIA 卡错误安装成 CPU Torch。
  • 重要:这次 cu126 只作用于 PyMSS 专属栈,不会把 SVC / RVC / SeedVC / DDSP-SVC 的主安装栈全局改掉。
  • wheelhouse 将 PyMSS 依赖放入 assets/wheels/pymss/py310/<stack>,约束文件按运行时批次隔离;--clean 会清理旧约束,防止历史 Torch 2.5.x 约束触发 ResolutionImpossible。
  • PyMSS auto 在子进程内重新探测实际 Torch 后端,按 CUDA、ROCm、DirectML、MPS 顺序选择;只有显式选择 cpu 才强制 CPU,Apple mlx 继续使用 PyMSS 原生后端。DirectML 只有在隔离环境实际安装了兼容的 torch-directml 时才会启用。
  • 当前官方 torch-directml 固定 Torch 2.4.1,而 PyMSS 2.0.x 要求 Torch 2.7.1;因此 DirectML 安装栈暂为 PyMSS 准备 CPU Torch,避免伪装成 GPU 就绪或破坏 UVR/SVC 环境。待上游发布匹配版本后可独立替换该批次。
  • 编辑器局部重推理支持高音保护。检测到峰值 F0 超过阈值时仅对高音区域降调后推理,再恢复原调;若同时开启 AI 美声,会自动降低高频染色、压缩和激励强度,保留修音与节奏对齐,减少 AI 味。
  • 多模型整轨翻唱会汇总各模型的高音保护状态,再对最终美声层使用同一套保守参数。

🛠️ 应用环境检测

  • 应用端统一验证隔离环境中的真实 Python、Torch 和 worker,不再只根据路径存在判断环境就绪。
  • SVC、RVC、SeedVC、DDSP-SVC、UVR、PyMSS、插件和模型站 Python 环境会忽略失效环境变量,并回退到实际存在的安装路径。
  • 设备探测结果按 Python 环境签名缓存;环境文件发生变化时自动重新探测,失败结果不再长时间阻塞修复后的状态恢复。
  • 首页 PyMSS 状态按模型目录中任一已下载模型判断,不再只检查固定默认模型;创建页提交任务时仍严格校验当前选中的模型。
  • 状态页区分基础能力、转换引擎和可选增强组件。FFmpeg 与至少一个转换引擎可运行时显示环境就绪;PyMSS、UVR、AI 歌声增强等可选组件缺失不会误报整个软件降级。

📦 安装器与构建

  • Python 检测器会清理旧的 XB_PYTHON_EXE / XB_PYTHON_DIR,逐个执行 3.10+ 版本校验后才导出路径。
  • 跳过 WindowsApps 的 Python 执行别名,避免 Microsoft Store 占位程序被显示为已安装。
  • 安装器前置页和安装完成校验均执行真实 Python 可运行性检查;各 AI 隔离环境进一步验证 Torch 导入和所选 GPU 栈。
  • 构建脚本在生成 wheelhouse 前验证构建机 Python 版本,应用、前端、锁文件、EXE 资源和 Inno Setup 版本统一为 0.0.30。

🎼 高音保护

  • 自动高音保护对超出模型可靠音域的区域执行受限降调翻唱,完成后仅恢复对应区域的原始音高,并补偿高音响度。
  • 高音域素材会自动选择更适合的 F0 跟踪路径,降低过度平滑;So-VITS-SVC 和 DDSP-SVC 可使用 FCPE 扩展高音分析范围,最高支持 1800 Hz。
  • FCPE 或高音探测失败时回退到兼容的 F0 算法,不阻塞普通翻唱任务;日志会记录选择的路径和回退原因。
  • 分离人声与模型输出继续执行高频辅音、高音泛音保护,避免高音区域被过度修复或削弱。

⚠️ 注意

  • $\color{red}本次更新将cuda由121改为了cuda126用于pymss的兼容$

🔄 升级说明

  • 用户的模型、作品、编辑工程、主题媒体、API 设置和插件数据继续保留,升级不会清空用户数据。
  • 若升级后仍显示环境异常,请从安装目录运行 setup_env.bat,再重新启动软件;状态页会重新探测隔离环境。

✅ 验证

  • Python 完整测试:266 passed。
  • 前端 TypeScript 类型检查通过。
  • 前端单元测试:6 passed。
  • Python 探测器、安装器状态聚合、PyMSS 模型用途白名单、和声去除参数及高音保护回归测试通过。

XB-SVCB v0.0.29

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 23 Aug 08:02

v0.0.29 · 实时翻唱、系统音频变声与 AI 增强工作流

v0.0.29 把实时翻唱从单纯的文件转换扩展为可用于播放器场景的系统音频变声器:输入 QQ 音乐等播放器输出的混合音频,只转换人声并保持伴奏与原始时钟对齐。同时补齐 AI 歌声增强独立工程、编辑器片段增强、临时文件回收和 VB-CABLE 安装引导。

🎙️ 实时翻唱与系统音频变声

  • 新增“实时翻唱”工程页,支持歌曲文件实时播放和系统音频变声两种输入模式。
  • 系统音频模式支持 WASAPI 回环、VB-CABLE、Voicemeeter 等混合输入设备;自动排除麦克风,输出设备必须与输入设备分离,避免回授和重复采集。
  • 系统混音输入保留原始伴奏,只将 UVR 提取的人声送入单个 RVC 或 SeedVC 模型转换,再与对应时间块的伴奏重新混合输出;系统音频模式明确限制为单模型,不支持多模型分段或合唱。
  • UVR 与 RVC/SeedVC 使用常驻推理会话和采集、分离、转换、播放流水线,音频块带固定缓冲,减少每个块重复加载模型造成的卡顿。
  • 相邻音频块增加约 40 ms 重叠上下文,并在最终混音输出处使用等功率交叉淡化;不缩短时间轴,避免硬拼接产生的咔哒声、断点和衔接不自然。
  • 静音、暂停和恢复场景保持系统音频时钟连续;录音设备出现 data discontinuity 时不再把警告直接刷到用户界面。
  • RVC 参数支持 F0 算法、推理设备、模型版本、Index、RMS、保护和滤波半径;SeedVC 支持参考音频、扩散比例和推理设备。块时长、预缓冲、输入/伴奏增益也可调整。
  • 实时会话完成后自动登记到“我的作品”;文件模式支持分块播放和导出,系统音频模式支持直接监听输出。

🎧 AI 歌声增强与编辑器集成

  • 新增独立 AI 增强工程页面,原始歌曲可以来自本地导入,也可以使用在线曲库下载的原始音频。
  • 增强任务保留原始歌曲依赖关系,并将处理结果保存到“我的作品”;增强后的作品可继续进入音频编辑器。
  • 音频编辑器支持对选中片段调用 AI 增强,使用对应原始音频作为参考;增强失败不会破坏原片段,可通过撤销恢复。
  • 编辑器片段增强与整曲增强共用增强参数和作品持久化逻辑,降低重复配置和文件残留风险。

🧹 文件生命周期与关闭清理

  • 软件退出时先停止实时翻唱、UVR、RVC/SeedVC 和 HTTP 后台服务,再清空当前用户数据目录下 temp 的全部文件和子目录,保留 temp 目录本身。
  • 临时目录清理增加路径边界校验、Windows 文件占用重试和符号链接安全处理,避免误删数据目录外内容。
  • 实时会话、编辑工程和作品删除流程继续清理关联生成文件、编辑缓存和临时中间文件,减少 temp、editor 目录残留。

🛠️ 安装器与界面修复

  • 安装器前置依赖页新增 VB-CABLE 检测;缺失时提供用户手动安装入口,不会静默安装虚拟声卡驱动,安装完成后可重新检测。
  • 实时翻唱设备错误统一通过 Element Plus 消息组件提示,输入输出设备相同、未发现系统混合输入等问题会显示明确原因。
  • 修复 Element Plus ElMessage 按需样式缺失导致错误消息显示为未样式化黑色横条的问题。

📦 升级与兼容

  • 应用本体、Python 项目、前端包、两份锁文件、Windows EXE 版本资源、Inno Setup 和安装器文档统一为 0.0.29。
  • 升级不会迁移或删除用户的模型、作品、编辑工程、主题媒体、API 设置和插件数据;关闭时只清理数据目录下的临时生成内容。
  • 系统音频变声需要 Windows 音频回环或虚拟音频线。安装 VB-CABLE 后,请将 QQ 音乐输出切换到对应虚拟线路,再在实时翻唱页刷新设备并选择独立的播放输出设备。

✅ 验证

  • Python 完整测试:242 passed。
  • 实时音频交叉淡化、静音块旁路和系统音频输出测试通过。
  • 在 web/ 执行 npm run build:TypeScript 类型检查和 Vite 生产构建通过。

XB-SVCB v0.0.28

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 17 Aug 01:56

v0.0.28 · 插件平台、宿主扩展与安装器修复

本次更新把完整插件平台、TypeScript/Python SDK、自定义页面宿主能力、GitHub 插件市场、安装器环境修复和 FFmpeg 回退统一归入 v0.0.28。重点是让插件能够以可审计的清单、独立开关和受控宿主 API 扩展 XB-SVCB,同时提高全新安装、环境修复与覆盖升级的稳定性。

Important

Python 和混合插件会以当前用户权限执行真实代码,独立 Worker 只提供崩溃与超时隔离,不是权限沙箱。请只安装可信来源的 .xbplugin;前端自定义页面继续运行在 sandbox="allow-scripts" iframe 中。

🧩 插件中心与 GitHub 市场

  • 新增完整插件中心,提供插件总开关、单插件独立开关、已安装数量、权限与运行类型展示、打开页面、卸载和安全提示;新安装插件默认关闭,不会在用户确认前接入工作流。
  • “安装本地插件包”会调用文件选择器读取 .xbplugin 或 .zip,校验清单、包大小、解压边界、入口路径和权限后安装到用户数据目录中的独立插件目录。
  • 插件市场兼容 NoneBot2 风格 plugins.json5 索引,可配置 GitHub HTTPS raw/API 地址,展示作者、版本、标签、主页和运行类型,并从受信任的 GitHub 地址下载安装包。
  • 插件市场、启用、安装、卸载和动作结果统一使用符合当前主题的 Element Plus 通知,不再在页面底部显示临时文本提示。

🐍 前端、Python 与混合运行时

  • 插件清单支持 frontend、python 和 hybrid 三种运行类型,以及页面、字段、动作、权限、前端入口、Python 入口和 before_create 工作流补丁。
  • Python/混合插件通过独立 Worker 导入入口,支持动作、before_create 钩子和 on_enable / on_disable 生命周期;插件 ID、入口目录和动作注册会在执行前校验,单次调用超过 30 秒会终止。
  • 插件代码与数据分离保存到 plugins/<plugin-id> 和 plugin-data/<plugin-id>;替换安装同 ID 插件时保留数据目录,卸载时按安全边界清理插件内容。
  • 打包版本包含零依赖 Python SDK、插件 Worker 和可用的插件 Python 解释器回退策略,源码与安装版都能运行可信的 Python 插件。

🖥️ 自定义页面与宿主 Client

  • 自定义 HTML/Vue 页面通过 srcdoc 沙箱加载,支持读取上下文、运行插件动作、创建翻唱任务、读取包内资源和显示宿主通知;消息使用 token、请求 ID、来源检查和结构化克隆。
  • 新增按插件 ID 隔离的页面持久化 API:getStorage()、setStorage() 和 removeStorage(),可保存 API key、来源选择和普通 JSON 偏好,不再依赖 opaque-origin iframe 的 localStorage。
  • 新增插件内容全屏、软件窗口全屏、宿主全屏状态事件和始终可见的退出按钮;Escape 可结束宿主播放器或插件全屏。
  • 新增受限的妖狐 M3U8 宿主播放器弹层。它只接受声明了 network 权限的 m3u8.yaohud.cn 地址并自动升级为 HTTPS,避免第三方播放器在插件沙箱中一直停在初始化状态。
  • 插件页面扩大可用区域并优化“返回插件中心”按钮、加载状态和主题适配,紧凑页面与全屏页面都使用稳定尺寸,避免播放器或动态内容挤压布局。

🧰 Plugin SDK 与开发文档

  • 新增 TypeScript 优先的清单构建器、xb-plugin create 脚手架、清单校验和 .xbplugin 打包 CLI,并提供无框架 Client、Vue usePluginHost() 与完整类型声明。
  • 新增零依赖 Python SDK,提供动作、钩子、生命周期、上下文、配置和数据目录 API;前端、Python 和混合三类示例均可独立构建与打包。
  • 插件文档拆分为快速开始、Vue 页面、清单与动作、Client API、Python、混合插件、测试调试、GitHub 市场发布和 API 速查,并同步记录持久化、全屏、播放器和沙箱限制。
  • .gitignore 增加插件包、示例构建产物、插件虚拟环境及用户插件目录规则,减少本地测试产物误提交。

🛠️ 安装器、Python 与 FFmpeg 修复

  • 环境搭建会优先识别并验证本机 Python 3.10 路径,统一检查各虚拟环境的解释器版本;环境缺失、不可运行或版本不匹配时会自动重建,避免 uv 缓存解释器与目标环境错配。
  • So-VITS-SVC 补齐 Matplotlib 的 contourpy、cycler、fonttools、kiwisolver、packaging、Pillow、pyparsing 和日期依赖,并在环境就绪前执行真实导入校验。
  • AI 歌声增强环境移除不需要的运行期 wheel,解决 deepfilternet 对 packaging<24 与新版 wheel 对 packaging>=24 的解析冲突。
  • 修复安装路径或命令参数包含 %、^ 等批处理特殊字符时的转义问题,并扩展安装器回归测试。
  • 修复系统未安装 FFmpeg 时安装器错误跳过随包 FFmpeg 的问题;安装前只检查系统 PATH,缺失时正常释放内置 ffmpeg / ffprobe,安装后继续配置 XB_FFMPEG_DIR、FFMPEG_HOME 和 PATH。

📦 升级与数据兼容

  • v0.0.28 继续使用分卷安装包。请把 XB-SVCB-Setup.exe 与同版本全部 XB-SVCB-Setup-*.bin 放在同一目录后运行。
  • 安装目录携带 README.md、release_notes_v028.md 与 docs/api.md;作品、模型、编辑工程、主题、API 设置和插件数据继续沿用原用户数据目录。
  • 应用本体、Python 项目、前端包、两份锁文件、Windows EXE 版本资源、Inno Setup、安装器文档和 API 文档统一同步为 v0.0.28。

✅ 验证

  • Python 插件服务、安装器运行时和 PyPI 回退相关测试:34 passed。
  • Plugin SDK 单元测试:4 passed;TypeScript 类型检查通过,SDK 发布包 dry-run 包含 Client、Vue 类型和 README。
  • Vue TypeScript 类型检查和 Vite 生产构建通过;插件自定义页面脚本、清单校验和测试插件打包通过。
  • installer/build.ps1 -ValidateOnly 通过,Inno Setup 校验编译成功并显示 Release version: 0.0.28。

XB-SVCB v0.0.27

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 05 Aug 14:21

v0.0.27 · 模型站生态、双阶段人声修复与离线安装

本次更新把阶段四模型站生态、模型上传与试听、高音域翻唱、专用人声修复模型、FCPE 适配、离线 Wheelhouse 和安装器分卷约束统一归入 v0.0.27。重点是让模型站围绕 ModelScope 公开仓库完成分享与下载,让高音翻唱和模型输出拥有更完整的音频保护,同时让用户机安装尽量不依赖现场下载与编译。

Important

v0.0.27 使用分卷安装包。请同时下载 XB-SVCB-Setup.exe 和同版本的全部 XB-SVCB-Setup-*.bin,放在同一目录后再运行安装程序;每个分卷均小于 2 GiB,缺少任意分卷都无法完整释放内置资源。

🌐 模型站详情与后台传输

  • 模型站新增完整模型详情:展示模型框架、版本、发布时间、标签、说明、依赖状态、下载统计、截图和试听素材;搜索支持关键词模糊匹配、框架筛选、分页加载和详情查看。
  • 搜索结果支持按综合排序、下载量和更新时间排列;模型清单继续执行框架与文件角色校验,避免不符合 XB-SVCB 格式的仓库被误识别为可用模型。
  • 上传模型时可以填写版本、说明和标签,并附带截图与试听音频;上传、下载和升级继续使用后台任务、进度轮询、断点续传和失败重试,不阻塞主界面。
  • 下载完成后会写入模型来源仓库、来源版本和发布时间,并立即刷新模型列表;模型站令牌只用于上传到用户自己的 ModelScope 命名空间。
  • 模型详情支持检查已安装模型的新版本并发起后台升级,升级完成后保留本地模型使用记录和来源信息。

🎧 模型试听与素材校验

  • 试听音频大小限制为 不超过 1 GiB,选择、上传前和服务端都会检查真实文件内容。
  • 扩展名伪装、无法解码、媒体类型不匹配或非音频文件会被拒绝;支持常见音频格式,最终以音频解码和媒体类型校验结果为准。
  • 试听通过模型站远端素材地址播放,避免把大型音频完整编码进前端内存,也不会把本机临时文件当成公共试听地址。
  • 模型截图和试听音频作为模型仓库素材统一管理,模型详情和搜索结果读取同一份远端资源信息。

🎙️ 双阶段专用人声修复

  • 人声分离与去混响后的处理链调整为:UVR 分离 → 去混响 → DeepFilterNet3 修复分离人声 → 高频/音域分析 → F0 提取 → 模型推理 → DeepFilterNet3 修复模型输出 → 可选 AI 歌声增强 → 混音。
  • 分离人声先使用安装包内置的专用 DeepFilterNet3 模型修复分离伪影;翻唱模型输出后再执行一次较轻的独立修复,然后进入可选美声和最终混音。
  • 修复前分析频谱质心、6 kHz 以上高频占比、有效人声活动和音高分布;高频或高音素材会降低神经修复衰减,避免清辅音、气声和高音泛音被过度抹除。
  • 神经修复后只在有效人声窗口受控恢复高频瞬态,不向静音段重新注入噪声;修复失败时保留可诊断日志,并继续使用可用的上一步音频完成后续流程。
  • 单模型、自动多模型和手动多模型流程均增加“分离人声修复”和“输出人声修复”状态,前端进度步骤与后端任务日志保持一致。

🎼 高音域自适应与 FCPE

  • 音域分析根据 F0 P95 和最高音计算推理上限,默认 F0 上限不低于 1100 Hz,极高音素材最高扩展到 1800 Hz;自适应上限会传入实际推理 worker,而不是只改变界面显示。
  • 检测到高音或高频后,会降低 F0 中值滤波半径和清辅音保护阈值,减少高音被过度平滑、降八度或错误截断。
  • So-VITS-SVC 检测到高音时优先使用随包 FCPE,缺失时回退 CREPE;DDSP-SVC 使用 FCPE;RVC 使用 CREPE,不会强行把不兼容的 FCPE 传给 RVC。
  • 修复 So-VITS-SVC 选择 FCPE 时因缺少 einops / local-attention 导致推理中止的问题;FCPE 初始化仍发生异常时会自动回退 CREPE,并保留本次任务的自适应 F0 上限。
  • FCPE 只负责音高 F0 识别,DeepFilterNet3 负责音频修复,两者职责不同;FCPE 权重随安装包分卷携带,并部署到 So-VITS-SVC 的 pretrain/fcpe.pt。
  • 创建页单模型、多模型和 Audio Editor Lite 局部重推理均可手动选择 FCPE。So-VITS-SVC 和 DDSP-SVC 显示 FCPE,RVC 不显示,SeedVC 隐藏 F0 选择;切换到不兼容框架时,失效选择自动回退为 rmvpe。
  • AMD DirectML 环境下,主翻唱模型继续使用显卡,RMVPE / FCPE 使用 CPU 稳定路径,避免不受支持算子导致任务失败。

📦 离线 Wheelhouse 与安装器分卷

  • 发布构建会预先下载或构建 uv 和各 AI 环境需要的 Windows x64 whl,并按 Python 版本、CPU、AMD DirectML、NVIDIA cu121、NVIDIA cu128 和冲突组件拆分 Wheelhouse。
  • 安装器根据用户机器的 Python 版本、GPU 栈和组件自动选择对应 Wheelhouse;用户机创建或修复环境时使用 --no-index --no-build --find-links 离线安装,不再现场下载 PyPI 包或编译源码包。
  • 发布构建生成 assets/wheels/wheelhouse.json,记录平台、依赖分组和 Wheel 数量,并拒绝空分组;发布侧会处理镜像缺包、只有源码分发以及组件间 Torch 版本冲突。
  • 针对 Python 3.9 的 So-VITS-SVC,Wheelhouse 显式携带 importlib-resources>=3.2.0,并对已验证的 matplotlib==3.7.5 使用无依赖安装,避免旧版缓存 Wheel 导致解析失败或把 NumPy 升到不兼容版本。
  • 所有 So-VITS-SVC 的 CPU、AMD DirectML、NVIDIA cu121 和 cu128 Wheelhouse 均固定携带 einops==0.8.2 与 local-attention==1.10.0;环境搭建完成前会真实导入 FCPE 模块校验,旧安装可从开始菜单运行“搭建/修复运行环境”并只修复 svc 组件。
  • fcpe.pt、DeepFilterNet3 和其他底模随安装分卷携带;关键资源缺失、体积异常或疑似 Git LFS 指针时构建直接失败。
  • Inno Setup 的 DiskSliceSize 固定为 1,900,000,000 字节,构建完成后逐个检查安装产物;任何达到 2 GiB 的分卷都会阻止发布。
  • 安装时必须把 XB-SVCB-Setup.exe 和全部 XB-SVCB-Setup-*.bin 放在同一目录;分卷发布、离线模型、内置 FFmpeg、GPU 环境策略和离线 Wheelhouse 不要求用户重新下载已有作品或模型。

🧩 创建流程、编辑器与 API

  • 创建任务页、模型站页面和编辑器局部重推理同步增加本次模型站详情、试听素材、FCPE 选择和双阶段修复状态相关的数据结构与界面状态。
  • FastAPI 和桌面桥接接口增加模型详情、远端素材、版本检查和升级任务。
  • 创建页的单模型、多模型以及编辑器局部重推理会按当前模型框架动态显示 F0 算法;提交前再次归一化参数,避免切换模型后产生无效 F0 选择。

✅ 验证与版本同步

  • Python 后端测试:199 passed。
  • 前端单元测试:6 passed;Vue TypeScript 类型检查和 Vite 生产构建通过。
  • DeepFilterNet3 真实模型修复、高频/高音域分析、FCPE 动态选项、FCPE 缺依赖回退以及真实 FCPE F0 提取测试通过。
  • installer/build.ps1 -ValidateOnly 通过,Inno Setup 编译成功并显示 Release version: 0.0.27。
  • 应用本体、Python 项目、前端包、两份锁文件、Windows EXE 版本资源、Inno Setup、安装器文档和 API 文档均同步为 v0.0.27。
  • 安装器携带 README.md、release_notes_v027.md 与 docs/api.md,作品、模型、编辑工程、主题和其他用户数据继续沿用原数据目录,覆盖升级不会清除已有内容。

XB-SVCB v0.0.26

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 30 Jul 08:36

v0.0.26 · 参考人声动态对齐与自然美声升级

本次更新把这一轮 AI 修音、参考人声动态对齐、角色音色、美声母带、界面/API 参数、文件清理和安装器适配统一归入 v0.0.26。重点是在保留目标角色音色的同时,减少机械感、电音感、细微杂音和持续元音的周期性调制,让 AI 翻唱更接近自然演唱。

Important

v0.0.26 继续使用分卷安装包。请同时下载 XB-SVCB-Setup.exe 和同版本的全部 XB-SVCB-Setup-*.bin,放在同一目录后再运行安装程序;缺少任意分卷都无法完整释放内置资源。

🎙️ 多推理引擎自然度优化

  • So-VITS-SVC、RVC、SeedVC 与 DDSP-SVC 的原始推理结果统一接入源人声自然度保护。源人声只提供响度包络和静音时间,不混入任何原唱波形或频谱内容,目标角色音色仍完全来自当前 AI 模型。
  • 句内空隙会在 380 ms(0.38 秒)以内自然桥接,并为起音增加约 70 ms 前视、为尾音保留约 240 ms 延续。较长无声区按引擎动态衰减 12–16 dB,超过 0.5 秒的数字静音恢复为精确零,减少声码器底噪和明显的 AI 式停顿。
  • 原干声与模型输出以 10 ms 窗口比较局部包络,仅通过最大约 -3/+2 dB 的平滑增益恢复微动态,不执行音色混合、时间拉伸或额外 F0 量化。
  • 默认推理会按输出采样率精确补零或裁尾,使总时长与源干声一致,避免多模型拼接积累毫秒级尾部错位。
  • So-VITS-SVC 的随机声码器噪声由 0.4 降至 0.25,切片上下文由 0.5 秒增加到 0.75 秒;30 秒显存切片新增 120 ms 重叠淡化,并让模型输出保留 35% 的源人声响度包络,减少接缝、忽大忽小和电子毛刺。
  • SeedVC 的可调质量范围由 10–50 步调整为 20–50 步,默认由 30 步提高到 35 步;CFG 从 0.7 降至 0.55,减轻过强音色条件导致的金属感和过度平滑。
  • RVC 的索引率、清辅音保护及 DDSP-SVC 的共振峰参数继续尊重用户设置。

🎼 参考人声动态对齐与自然修音

  • 新增“参考人声动态对齐”:先根据停顿切分并单调匹配句段,再以说话人归一化的倒谱与动态声学特征执行受限音素 DTW,最后将匹配结果用于局部节奏判断和参考 F0 对应。
  • 密集音素锚点约每 300 ms 采样一次,继续为自然修音提供字音级参考关系,但不再直接驱动持续变化的波形时间拉伸。
  • 只有原始局部节奏偏差超过 25 ms、按用户强度应用后仍达到 8 ms,且附近至少三个锚点方向一致时,才会创建 Praat DurationTier。小幅或孤立偏差保留原时序,避免元音出现类似对着电风扇唱歌的颤动。
  • 所有时间校正均受用户强度和最大伸缩比例限制,起点、终点与整轨总时长保持不变;时间映射强制单调,避免结尾重复时间点或局部倒序。
  • 对齐后的参考 F0 通过 Praat PitchTier 执行自然修音:过滤八度误检、弱化硬性半音吸附、限制最大音高偏移,并在乐句边缘渐入渐出,保留颤音、滑音、清辅音和自然收尾。
  • Praat PSOLA 只在连续人声区域参与混合。0.45 秒以内的句内空隙保持连续,长数字静音恢复原始样本,避免重合成在空白处留下低频或 DC 底噪。
  • AI 对齐与自然修音分别可调,默认均为 45%;参考 F0 的局部时间映射同样服从 AI 对齐强度,不会绕过滑块全量应用。
  • 当参考人声相关性不足、Praat 环境不可用或自然修音失败时,系统会保留原 AI 人声继续后续增强,不阻塞整项任务。

🎚️ AI 美声与角色音色

  • 参考人声用于句段/音素对应、局部节奏与 F0 引导,并在高级层提供受限的宽带平衡和真实辅音/呼吸细节;不会把原唱的中频身份直接复制给 AI 角色。
  • 新增 AI 角色共振峰(默认 60%):只分析转换后目标声音自身 250 Hz–4.5 kHz 的稳定宽带峰,强化当前模型角色的音色辨识度;实际增益随局部人声置信度平滑收放,不强化静音和弱呼吸。
  • 新增 AI EQ(默认 55%):按整轨有效人声的 body、mud、presence 和 air 分布推导小幅校正,再按 20 ms 局部人声窗口动态混合,不对整轨施加恒定处理量。
  • 新增 AI Compressor(默认 45%):从当前素材的有效动态范围推导阈值、压缩比、attack 和 release,并按局部超阈值幅度动态混合,最后补偿有效人声响度。
  • 新增 AI Exciter(默认 25%):只添加少量高频谐波残差;局部高频或齿音占比升高时即时降低处理量,避免放大 AI 高频纹理。
  • 新增 Stereo(默认 30%):使用保持单声道中置信号的中侧扩展,仅对高频去相关;宽度随局部人声活动变化,并在高频占比突增时自动收窄。
  • 新增 AI 响度包络(默认 58%):从增强前的 AI 人声提取 20 ms 局部响度,以约 70 ms 平滑轮廓修正完整效果链造成的动态偏差;校正上限受限在 ±3 dB 并继续服从滑块强度,停顿、弱呼吸和残留底噪不会被抬高。
  • 美声滑块现在代表“处理上限”,不再对应固定效果量。引擎会为每首素材动态推导高通截止、body、harsh、presence、air、压缩参数和并行 wet 上限,再对角色共振峰、EQ、压缩、激励、声场、响度包络与并行母带执行段内动态控制。
  • basic 层使用自然停顿扩展、DeepFilterNet 原生 48 kHz 限量降噪和动态并行轻母带,wet 上限通常为 57%–72%。
  • advanced 层额外加入参考宽带校正、最多 8% 的真实辅音/呼吸细节保护和动态自然度母带,wet 上限通常为 69%–84%。参考细节仅在 AI 人声存在对应活动时加入,避免向空白段注入参考噪声。
  • 旧 vocalfloor 硬式深衰减改为带前视、长保持和软膝的自然停顿扩展,最多衰减 6 dB;0.5 秒以内句内停顿会自动桥接,避免切掉起音、呼吸、混响尾或形成明显的 AI 式断句。
  • 最终混音默认将 AI 人声提升 1.8 dB、伴奏降低 0.7 dB,并保留约 1.5 dBFS 峰值余量,改善人声偏小的问题。

🧩 创建流程、编辑器与 API

  • 创建任务页新增自然修音、AI 对齐、AI 角色共振峰、AI EQ、AI Compressor、AI Exciter、Stereo 与 AI 响度包络八项独立滑块,并记忆上次设置。
  • Audio Editor Lite 的局部重推理同步支持上述八项参数;高级层以当前片段裁出的原始干声作为参考,增强失败时仍保留重推理结果。
  • 桌面桥接、FastAPI 请求模型、前端 API 类型和模拟接口统一增加八项 0–1 参数,服务端会处理非法值、越界值与默认值。
  • 处理日志新增句段数、音素锚点数、F0 引导点数、DurationTier 点数、对齐偏差、最大伸缩比例、F0 修音幅度和参考相关性,便于定位处理过重的片段。

🗑️ 工程与主题文件清理

  • 删除音频编辑工程时,会先安全删除对应工程目录及以工程 ID 为前缀的专属渲染缓存,再删除工程记录;其他工程缓存和工程外原始素材不会被误删。
  • 工程 ID 会执行目录穿越、符号链接和根目录边界检查;文件清理失败时保留工程记录,用户释放占用后可重新删除。
  • 更换、保存或重置自定义壁纸时,会删除已被替换的旧图片或 MP4;未保存的临时壁纸被再次替换时也会清理。
  • 壁纸删除接口只允许操作应用主题媒体目录中的普通文件,拒绝外部绝对路径、目录穿越、网络地址和 data: URI。

📦 安装器与发布资源

  • .venv-vocal 新增 praat-parselmouth==0.4.6,用于跨模型通用的 Praat PSOLA 对齐与自然修音。
  • PyInstaller 和发布构建清单新增 vocal_tuning_worker.py 与 inference_naturalizer.py;安装器会校验推理自然化、自然修音、增强 worker 和 runtime.ready 均已正确释放。
  • 安装器会把 README.md、release_notes_v026.md 与 docs/api.md 一起释放到安装目录,方便离线查看功能、升级说明和 API 契约。

✅ 版本同步

  • 应用本体、Python 项目、前端包、两份锁文件、Windows EXE 版本资源、Inno Setup、安装器文档和 API 文档均同步为 v0.0.26。
  • 作品、模型、编辑工程、主题和其他用户数据继续沿用原数据目录,覆盖升级不会清除已有内容。

XB-SVCB v0.0.25

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 29 Jul 12:32

v0.0.25 · 作品播放体验与分卷安装资源完善

本次更新把这一轮安装器、播放器、歌词搜索和版本同步改动统一归入 v0.0.25。重点是让安装更可控、离线资源更完整,同时让作品播放页的歌词 API 搜索真正停在“用户自己选择第几个结果”这一步。

Important

v0.0.25 继续使用分卷安装包。请同时下载 XB-SVCB-Setup.exe 和同版本的全部 XB-SVCB-Setup-*.bin,放在同一目录后再运行安装程序;缺少任意分卷都无法完整释放内置资源。

🎵 作品播放页与歌词选择

  • 作品库进入独立作品播放页后,播放体验补齐进度、音量、歌词跟随高亮、点击歌词跳转和导出控制。
  • 播放页支持导入本地 LRC 歌词,也支持通过曲库 API 搜索歌词候选歌曲。
  • 歌词 API 来源可由用户在 QQ 音乐、网易云音乐、酷我音乐之间选择,播放页的 API 下拉框已按现有界面风格美化。
  • 搜索结果会保留多条候选,用户点击某一条只会选中该版本;只有再次点击“获取选中歌曲歌词”才会按对应 n 序号获取歌词,不再默认第一条或点选后立即请求。
  • 选中结果会显示当前歌曲序号、歌名、歌手和专辑信息,避免多个同名版本时误取歌词。
  • 每首作品可导入图片或 MP4 MV 画面,关联信息按作品保存,重新打开播放页会自动恢复。
  • MV 视频改为跟随音频的统一时间轴,播放、暂停、拖动和播放中的时间漂移都会自动同步;视频模式不再显示中央唱片、标题遮罩,完整画面只保留右上角紧凑的更换与移除控制。
  • 播放页的 MV 舞台与歌词面板改为稳定的响应式高度和不透明主题底色;长歌词、搜索结果及播放跟随只在面板内部滚动,不再把播放页面持续向下撑长或带动整页跳动。

🔎 歌词后端与曲库来源

  • 播放页调用的桌面桥接后端继续使用统一的音乐服务,搜索阶段返回多条候选,歌词获取阶段按 msg + n + source + songId/rid 定位具体版本。
  • QQ、网易云、酷我三种来源保持独立选择;酷我 RID、QQ/网易歌曲标识会随搜索结果传递,减少同名歌曲取错歌词的概率。
  • 搜索不到歌词或 API 返回空歌词时,会保留清晰提示,用户仍可切换曲库、换关键词或导入本地 LRC。

📦 安装器与前置依赖

  • 前置依赖从“安装器自动安装”改为“用户辅助模式”:安装器负责检测 Python、Git、Visual C++ Build Tools、CUDA Toolkit、显卡驱动等系统组件,并提供对应下载按钮。
  • CUDA 下载入口只在检测到 NVIDIA 显卡时显示:RTX 50 系直接提供 CUDA 12.8 官方下载入口,RTX 40 系及以下直接提供 CUDA 12.1 官方下载入口;AMD、Intel 和纯 CPU 设备不显示 CUDA 项。
  • uv 改为在用户安装好 Python 后自动安装:预检查脚本和运行环境搭建脚本都会在未检测到 uv 时调用当前 Python 的 pip 安装/修复 uv,并把 Scripts 目录写入用户 PATH。
  • 用户完成前置安装后可回到安装器重新检测;已安装项目会直接跳过,不再重复处理。
  • 修复前置检测页使用 Inno Setup 不支持的用户目录和 Program Files 常量导致的运行时错误,用户目录改为读取 USERPROFILE,Program Files 路径统一使用 {autopf}。
  • FFmpeg 改为安装分卷自带。系统 PATH 已有可用 ffmpeg 时跳过释放;未检测到时释放到安装目录 tools\ffmpeg,并自动配置 PATH、XB_FFMPEG_DIR 与 FFMPEG_HOME。
  • So-VITS-SVC、DDSP-SVC、SeedVC 引擎源码随安装分卷自带;安装时检测到本地已释放源码会跳过 Git/ZIP 获取,只在目标机器上创建对应 Python 隔离环境。
  • 安装日志继续写入 {app}\install_logs,便于排查用户机器上的前置依赖和环境搭建问题。

🧩 分卷发布约束

  • 安装器继续输出 XB-SVCB-Setup.exe 与 XB-SVCB-Setup-*.bin 分卷文件。
  • DiskSliceSize 固定为 1,900,000,000 字节,构建后会校验每个分卷小于 2 GiB,方便上传到 GitHub Release。
  • 发布 Release 时必须上传同版本 EXE 和全部 BIN;用户本地也必须把它们放在同一目录再安装。

✅ 版本同步

  • 应用本体、Python 项目、前端包、锁文件、Windows EXE 版本资源、Inno Setup、安装器文档和 API 文档均同步为 v0.0.25。
  • 项目自有代码的开源协议由 MIT 调整为 GNU GPL v3.0 only(GPL-3.0-only);安装器新增 GPLv3 许可确认页,并在安装目录保留完整 LICENSE。第三方组件和模型继续遵循各自原始协议。
  • 安装器会把 README.md、release_notes_v025.md 与 docs/api.md 一起释放到安装目录,便于离线查看功能、升级说明和 API 契约。
  • 已安装旧版可覆盖升级;模型、作品、下载素材、编辑工程、API 上传、设置、消息状态和主题媒体继续使用原数据目录。

XB-SVCB v0.0.24

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 26 Jul 06:58

v0.0.24 · 全新 AI 歌声增强工程 + DeepFilterNet 离线化

本次更新为 AI 翻唱全链路引入全新的「AI 歌声增强工程」:针对 AI vocoder 留下的电子噪声与机械感设计 vocalfloor 软衰减、原始人声频谱参考匹配与 Pedalboard 专业母带 DSP,并直接把 DeepFilterNet 权重打包进安装器,全新机器离线开箱即用。

Important

v0.0.24 继续使用分卷安装包。请同时下载 XB-SVCB-Setup.exe 和全部 XB-SVCB-Setup-*.bin,放在同一目录后再运行安装程序。

🎤 全新 AI 歌声增强工程

  • 🎙️ 两层增强等级:新增 basic 与 advanced 两个层级。basic 层做 DeepFilterNet 神经降噪 + 基础美声 EQ;advanced 层在 basic 之上叠加频谱参考匹配与精细母带 EQ + 胶水压缩。等级可在创建翻唱任务或编辑器重推理时选择,默认关闭。
  • 🔻 vocalfloor 软衰减:SVC 推理在静音段会留下 -35~-45 dB 的电子噪声(vocalfloor)。采用 150 ms 指数衰减到 -75 dB 的软衰减策略,在抑制电子噪声的同时保留呼吸声与空间混响,避免硬性静音带来的突兀感。
  • 🎚️ 频谱参考匹配:AI vocoder 典型地在 80-600 Hz 中低频与 2.5k-16k 高频出现能量缺陷。advanced 层以原始人声(或编辑器裁切出的干声)作为参考,按频段对齐 AI 翻唱频谱,比盲目 EQ 更精准,避免破坏音色平衡。
  • 🎛️ Pedalboard 精细母带 DSP:advanced 层包含去齿音、温暖中低频、低频厚度、presence、高频空气感与胶水压缩,针对 AI 翻唱频谱缺陷做精细整形。不叠加 Distortion/Chorus/Reverb 等会"合成器化"的效果,避免加重 AI 感。
  • 🔄 完整流水线:UVR 分离 → AI 翻唱推理 → 增强(vocalfloor 软衰减 + 频谱参考匹配)→ DeepFilterNet → Pedalboard 母带。
  • 🧹 不采用 VoiceFixer 方案:VoiceFixer 是为修复损坏语音录音设计的神经修复模型,对高质量 AI 翻唱会破坏原始音色与伴奏细节,效果反而变差。本次全新设计的增强工程不引入 VoiceFixer,并清理了安装器中遗留的 VoiceFixer 预装。

🎙️ 编辑器局部重推理支持自动增强

  • ⚡ 重推理后自动增强:Audio Editor Lite 的局部重推理现可勾选「重推理后自动增强」,复用同一套增强流水线,以裁切出的干声作为参考进行频谱匹配。
  • 🧩 失败不阻塞:增强子步骤失败不会阻塞重推理本身,原始重推理结果仍然保留,仅在前端提示增强未完成。
  • 💾 偏好持久化:开关状态与等级选择默认关闭,记忆到 localStorage,下次打开工程自动恢复。

📦 DeepFilterNet 模型离线化

  • 🗂️ 权重随安装包分发:model_120.ckpt.best 直接打包进 assets/models/vocal-enhancement/DeepFilterNet/,安装时由 copy_bundled 复制到运行时缓存目录,init_df() 命中本地文件后跳过联网下载。
  • 🌐 全新机器开箱即用:不再依赖首次生成时联网拉取 DeepFilterNet 权重,离线环境与国内网络不稳定场景下也能立即完成增强。
  • 🧪 构建期 LFS 校验:installer/build.ps1 新增 Require-FileSize 校验,确保 DeepFilterNet 权重不小于 8 MB,拒绝把 Git LFS 指针或残缺文件打进安装包。

🔧 安装器与依赖清理

  • 🪦 VoiceFixer 预装移除:移除安装器中 pip --no-deps voicefixer==0.1.3 安装步骤、probe 脚本和 runtime.ready 中的版本记录,减少冗余依赖与安装体积。
  • 📝 文档与注释同步:app/config.py、app/api/http_server.py、app/infrastructure/vocal_enhancement.py 与 assets/models/README.md 中所有 VoiceFixer 引用都已移除或更新为「DeepFilterNet + Pedalboard」,避免误导用户和后续开发者。
  • 📋 高级层 API 描述:/api/v1 文档中 level 参数的 advanced 描述为「额外做频谱参考匹配与专业母带 DSP」,与实际行为一致。

🛡️ 兼容性

  • 通道平衡不受影响:vocalfloor 软衰减、频谱匹配、DeepFilterNet 与 Pedalboard 母带均独立处理声道或对立体声施加 EQ 而不改变平衡,左右声道结构保持原样。
  • v0.0.23 的 NVIDIA CUDA、AMD DirectML 与 CPU 推理策略、外部 FastAPI 接入和酷我音乐曲库均保持不变。
  • 已安装 v0.0.23 的用户可覆盖升级;模型、作品、下载素材、编辑工程、API 上传、设置、消息状态和主题媒体继续使用原数据目录。

✅ 验证

  • DeepFilterNet 本地化路径校验:在干净的 LOCALAPPDATA 下设置环境变量后 init_df() 成功命中 <安装目录>/models/vocal-enhancement/.local/DeepFilterNet/DeepFilterNet/Cache/DeepFilterNet3/checkpoints/model_120.ckpt.best,跳过联网下载。
  • 安装器 copy_bundled 链路验证:模型文件按预期从 assets/models/vocal-enhancement/DeepFilterNet/ 复制到运行时缓存目录。
  • installer/build.ps1 -ValidateOnly 通过 Inno Setup 6 脚本编译校验;Require-FileSize 阈值设为 8 MB(8388608 字节),实际权重约 8.31 MB。
  • Python 编译、前端 TypeScript 检查与生产构建均通过。

📦 安装与升级

  • 应用本体、Python 项目、前端包、两份锁文件、Windows EXE 版本资源和 Inno Setup 均已同步为 v0.0.24。
  • 安装器会把 README.md、release_notes_v024.md 与 docs/api.md 一起释放到安装目录,便于离线查看功能、升级说明和 API 契约。
  • 已安装旧版可覆盖升级;模型、作品、下载素材、编辑工程、API 上传、设置、消息状态和主题媒体继续使用原数据目录。
  • 下载 XB-SVCB-Setup.exe 和同一版本的全部 XB-SVCB-Setup-*.bin,放在同一目录后运行 EXE;缺少任何分卷都无法完成安装。

XB-SVCB v0.0.23

Choose a tag to compare

@SDIJF1521 SDIJF1521 released this 24 Jul 03:50

v0.0.23 · 完整外部 API + 酷我音乐

本次更新把 XB-SVCB 从单一桌面工具扩展为可由外部程序调用的本地音频工作站:FastAPI 覆盖模型、推理、作品与 Audio Editor Lite 主要流程,在线资源获取新增酷我音乐。

Important

v0.0.23 继续使用分卷安装包。请同时下载 XB-SVCB-Setup.exe 和全部 XB-SVCB-Setup-*.bin,放在同一目录后再运行安装程序。

🌐 FastAPI 外部接入

  • 🔌 由用户手动启停:新增“资料库 -> API 接入”页面;服务默认关闭,不随软件或系统自动启动,退出 XB-SVCB.exe 后自动停止监听。
  • 🖥️ 本机与局域网两种范围:默认仅监听 127.0.0.1,需要其他设备接入时可手动切换到 0.0.0.0;端口支持 1024-65535。
  • 🔁 桌面与 HTTP 共用业务核心:外部任务复用桌面端的模型服务、作品仓储、编辑工程和串行推理队列;API 创建的任务会出现在“我的作品”,桌面任务也能通过 API 查询。
  • 🪟 保持纯 GUI 体验:FastAPI 与 Uvicorn 在当前 GUI 进程的后台线程运行,不额外打开 cmd.exe、PowerShell 或可见控制台窗口。
  • 🧭 运行状态清晰可见:接入页显示监听地址、端口、API Key、服务状态和连通延迟,并提供真实鉴权测试。
  • 🧹 生命周期完整收口:停止服务或退出软件会释放端口;服务运行期间禁止修改端口、监听范围和密钥,避免界面配置与实际进程不一致。
  • 🌍 浏览器工具可接入:启用 CORS,便于本机或局域网内的 Web 工具调用;业务接口仍统一经过 API Key 鉴权。

🔐 接口、鉴权与数据边界

  • 🔑 统一 API Key:除 /health、Swagger、ReDoc 和 OpenAPI JSON 外,所有 /api/v1 请求必须携带软件页面显示的 X-API-Key;密钥可在服务停止后重新生成。
  • 🗺️ 完整接口面:OpenAPI 当前包含 34 条路径、42 个操作,覆盖系统环境、模型、上传、任务、队列、历史、预设、作品与编辑工程。
  • 🎤 完整推理流程:支持单模型、多模型混唱和批量创建;批量请求最多 50 项,并在创建任何任务前完成整批原子校验。
  • 🧬 多框架参数开放:So-VITS-SVC、RVC、SeedVC 与 DDSP-SVC 的变调、F0、设备、扩散、speaker、index、保护、采样步数和共振峰等参数均有类型、范围与默认值说明。
  • 🎙️ SeedVC 参考音频:单模型任务、多模型独立参数和编辑器局部重推理都可通过 reference_upload_id 使用已上传的目标音色参考。
  • 🎚️ Audio Editor Lite 自动化:开放工程、音轨、素材导入、撤销/重做、波形、静音/歌词切分、人声分离、局部重推理、片段合并,以及工程/音轨/片段渲染下载。
  • 📚 作品与历史可管理:外部程序可读取推理历史和队列、保存参数预设、查询作品、重试失败任务并下载生成的人声、伴奏或最终成品。
  • 🛡️ 本机路径不外泄:模型、任务和编辑器使用专门的 HTTP DTO;权重、配置、源音频、日志、片段文件和插件绝对路径不会直接进入响应。
  • 🔗 受控音频地址:编辑工程中的本地音频路径转换为鉴权下载 URL;保存工程时只恢复服务端允许的字段,客户端不能借 DTO 覆盖内部路径。

📤 大文件上传与下载

  • ♾️ 不设置应用层大小上限:上传使用固定小块流式写盘,不把完整歌曲一次载入内存;可用容量只受数据目录磁盘空间和调用方超时限制。
  • 🎞️ 常见音视频容器可用:支持 WAV、FLAC、MP3、M4A、AAC、OGG、Opus、WMA 及常见视频容器作为推理来源。
  • 🗂️ 上传随数据目录迁移:文件保存在 .xb_svcb/api/uploads;迁移数据目录时会一并处理,不散落到程序安装目录。
  • 🔒 迁移期间阻止竞态:API 服务或推理队列运行时不允许迁移数据目录,避免上传、任务和配置在迁移过程中指向不同位置。
  • 📥 成品保持流式下载:生成音频和编辑器渲染通过鉴权文件响应返回,调用方可以直接流式保存,不需要读取桌面端内部路径。
  • 🧽 临时上传可清理:上传接口返回稳定 upload_id,任务提交后可由调用方显式删除不再使用的源文件或参考音频。

🎵 酷我音乐曲库

  • 🎶 第三个完整曲库:在线资源获取新增“酷我音乐”,与网易云、QQ音乐并列,支持搜索、试听、下载、获取歌词和下载后直接进入 AI 翻唱。
  • 🧾 搜索信息完整保留:结果映射歌曲 RID、副标题、歌手与专辑;单曲详情读取 data.vipmusic.url,同时展示真实格式和音质描述。
  • 💿 音质自动回退:优先请求无损音质,失败后依次尝试 exhigh、SQ 和标准音质,不因单个档位不可用直接判定整首歌曲失效。
  • 🎧 本地代理试听:酷我 CDN 需要 Referer 等请求头且不允许浏览器直接跨域播放;后端使用 FFmpeg 截取并转码前 45 秒,再以 data URI 交给播放器。
  • 📦 大文件分段下载:携带酷我所需的浏览器请求头并使用 HTTP Range 分段获取;CDN 不支持 Range 时自动回退普通流式下载。
  • 📝 内联歌词直接解析:优先读取 data.lyric.lrc,缺失时转换 data.lyric.lrclist;响应没有 RID 时自动回查搜索列表,不误走网易云/QQ音乐聚合歌词接口。
  • 🚫 不可播放资源提前拦截:下载前继续通过 Content-Type、文件魔数和 FFprobe 校验真实音频,VIP、无版权、失效链接或代理错误页不会进入后续推理。

🛠️ 修复与可靠性

  • 修复 HTTP 响应可能暴露模型、工程片段、插件和源文件绝对路径的问题;外部接口统一使用受控 DTO 与音频 URL。
  • 修复批量任务前部已创建、后部校验失败后留下半批任务的问题;现改为整批验证通过后再统一入队。

⚠️ 安全、兼容与体积

  • API 默认关闭且默认仅监听 127.0.0.1;切换局域网监听前应确认系统防火墙和网络可信,并妥善保存 API Key。
  • CORS 允许浏览器客户端发起请求,但不会绕过 X-API-Key;不要把密钥写进公开网页、仓库或日志。
  • 上传没有固定大小限制并不代表磁盘无限;长视频或无损多轨文件仍需预留数据盘空间,并由调用方设置合理超时。
  • v0.0.22 的 NVIDIA CUDA、AMD DirectML 与 CPU 推理策略保持不变。
  • 外部 API 与桌面端共用串行推理队列,不会并行占满同一张显卡;批量提交只减少调用次数,不代表任务同时推理。

📚 文档与开发接入

  • 📖 Swagger / ReDoc / OpenAPI:服务启动后可访问 /docs、/redoc 和 /openapi.json;每个接口都有用途、method、path、鉴权、参数表、请求示例、返回示例和响应字段表。
  • 🧪 完整可运行示例:OpenAPI 顶部提供 Python 流程,覆盖健康检查、上传歌曲、读取模型、SeedVC 参考音频、提交任务、轮询、流式下载和清理上传。
  • 🐍 软件内复制示例:API 接入页提供 Python requests 与 PowerShell 7 示例,填入页面显示的端口和密钥即可运行。
  • 📄 离线接入手册:安装目录新增 docs/api.md,包含安全配置、单模型、多模型、批量任务、编辑器自动化、接口清单和常见状态码。

✅ 验证

  • OpenAPI 契约验证通过:34 条路径、42 个操作均生成响应模型和 go-cqhttp 风格说明;全部推理字段、枚举、范围与路由参数有描述。
  • 后端完整测试:118 passed, 14 skipped;覆盖既有 CUDA、DirectML、CPU 推理、编辑工程、作品和安装器行为。
  • FastAPI 契约测试覆盖 API Key、路径脱敏、流式大文件上传、多模型合唱、批量原子校验、SeedVC 参考音频、编辑器 DTO 恢复和成品下载。
  • 服务生命周期测试使用真实本地端口验证默认关闭、启动、鉴权连通性、停止和端口释放。
  • 酷我音乐 19 项专项测试通过,覆盖搜索参数、RID、无损详情、LRC/lrclist、后端试听、CDN 请求头、Range 分段下载和音质回退。
  • 前端 TypeScript 检查与生产构建覆盖 API 管理页、桌面桥方法、浏览器 mock、酷我曲库和响应式布局。
  • Python 编译、批处理前置依赖流程、Inno Setup 6.7.3 脚本编译及 git diff --check 均通过。

📦 安装与升级

  • 应用本体、Python 项目、前端包、两份锁文件、Windows EXE 版本资源和 Inno Setup 均已同步为 v0.0.23。
  • 安装器会把 README.md、release_notes_v023.md 与 docs/api.md 一起释放到安装目录,便于离线查看功能、升级说明和 API 契约。
  • 已安装旧版可覆盖升级;模型、作品、下载素材、编辑工程、API 上传、设置、消息状态和主题媒体继续使用原数据目录。
  • 安装器默认不创建 API 自动启动项、不开放固定防火墙规则;升级后仍需由用户在软件内手动启动服务。
  • 下载 XB-SVCB-Setup.exe 和同一版本的全部 XB-SVCB-Setup-*.bin,放在同一目录后运行 EXE;缺少任何分卷都无法完成安装。