Repository navigation
Releases
全能音声工作台 · 补丁 v0.33
从一份台本,到一部可以直接交付的音声作品。
这一版补的不是新花样,而是整条流水线最容易翻车的两段:配音改完之后编排还在不在,
以及一次处理几百上千条时会不会悄悄出错。
一、换了音色,音效还站在原来那句旁边
最真实的场景不是「从零做一条音声」,而是原片已经剪好、音效也对好了位置,现在只想换个人声重录。
难点在于换音色必然改变时长 —— 我们拿一条 71 秒的片段实测:重录后变成 81 秒,
单句最长变成 2.94 倍、最短只剩 0.45 倍。音效如果按秒数硬搬,第 44 秒的关门声就会跑到别的句子上。
现在的做法是按字幕序号对位,不按秒数:
- 先判断这个音效落在第几条字幕(用你载入的那份 srt 判);
- 再找工程里同一条字幕对应的那句;
- 按句内相对位置放回去(句内 70% 的位置,放回去还是 70%)。
参照物是「哪一句」而不是「第几秒」,所以句子长了短了都不影响。
实测:上面那条片段,每句在 30% 和 70% 各切一个测试音效,共 26 段 ——
26/26 全部落在对应句内,句内相对位置一分不差。
顺带修掉一条写反的规则:字幕要跟「素材」同源,不是跟「工程」同源。
素材是原片就载原片 srt,素材是重录后的混音才载工程字幕。混了会整段错(实测 13 句错 10 句)。
二、批量操作不能靠运气
- 编号不再错位:一次存/导上百个音频,自动编号改成按这一批总数补位
(120 段 →原音_001…_120)。原来固定两位,第 100 个叫_100,按名字排序反而插到_10后面 ——
剪映 / PR 按文件名合并素材就在这里断序。 - 入库不再越存越慢:索引整批只读写一次,120 段 1.9 秒、1005 段 4.9 秒(原来 100 段要 2 分钟)。
- 素材库支持多选:勾选框 / Ctrl 点选 / Shift 连选 + 批量移动 / 加标签 / 置顶 / 删除,
右键已选条目菜单顶部直接是批量动作。
三、出错要能当场看见
对位最怕的不是报错,而是「看起来成功了,其实整体偏了两句」。所以现在会:
- 自己判断素材是哪一版(原片还是重录后的),判定结果写在预览顶部,不用你选;
- 字幕和素材不是同一版时直接提示(「这份字幕到 1:19,当前素材 1:12,两者不是同一版」);
- 预览与写入走同一段后端代码,写出来和看到的一致。
四、人声分离:不是一个 BS 模型,而是一套可插拔的后端
接的是 pymss 推理后端 +
一个模型目录 vendor2/roformer/,放进什么模型就跑什么,代码不绑定某个权重:
| 可跑架构 | 说明 |
|---|---|
BS-Roformer(bs_roformer) |
主力,Band-Split + RoPE 注意力,人声分离第一梯队 |
| Mel-Band Roformer | 梅尔刻度分带,更细更慢 |
| BS-PolarFormer / BS-Conformer | 同家族变体,权重出了就能用 |
| MDX23C / SCNet / HTDemucs / VR | 老模型也能挂进来对照 |
随包只带 Demucs(80MB,开箱可用);BS 系权重自备(275MB 起),放进目录后
在导入台「BS-Roformer 模型」点一下重新检测即可。处理链 BS-Roformer → Demucs → 中置提取,
选的那个挂了自动往下退。
相关链接
- 论文:Music Source Separation with Band-Split RoPE Transformer(ByteDance, 2023)
- 架构实现:lucidrains/BS-RoFormer(MIT,只有网络定义,不含权重)
- 训练框架 + 权重发布:ZFTurbo/Music-Source-Separation-Training
- 权重清单:docs/pretrained_models.md
- 国内镜像:ModelScope · baicai1145/pymss · HuggingFace · baicai1145/pymss
- 社区权重合集(safetensors,用前需转 ckpt):AEmotionStudio/roformer-models
安装
这是扩展补丁,不是独立软件,需要先装 IndexTTS2.0 超级优化整合包 V3。
- 下载下面的
indextts2-longform-workbench-patch-v0.33.zip(约 121MB); - 解压到整合包根目录,会多出一个同名文件夹;
- 进入该文件夹,双击
安装.bat。
补丁包含内置 ffmpeg、Demucs 与 htdemucs 权重(离线可用)、HRIR 数据、教程配图;
不含 BS-Roformer 权重(自备,见上)。
其它改动
智能导入的剧本 / SRT 判定、原文本预览不再重复、「导入原稿」下载真原文、
「识别说话人 · 分组 · 分音色」一键按钮、人物/音效标签库、设置分区折叠、
高级音频处理台(/sfxbench)与整页夜间模式等,详见
CHANGELOG.md。
v0.23 ~ v0.32 为开发期编号,内容全部合并进本版。
全能音声工作台 · 补丁 v0.22
这一版的主要提升:「智能导入」优化升级。
导入是整条链路的第一步,它认错一句,后面生成、剪辑、导出全跟着错。所以 0.22 没有铺新功能,
而是围绕「认得准 / 看得清 / 改得动 / 追得回」四件事重做了这一段。
认得准:谁说的话,终于能认出来
- 🧠 高级识别(可选开关):稿子里没有「名字:」前缀、但名字写在旁白里
(「你怎么才来?」李四说。、李四冷笑:「堵车?」)时,按
前文点名 > 后置旁白 > 上文继承 的优先级判断每句归属,认不出才退回 角色A / 角色B。
小说、剧本、纯文本三类都能用;剧本本身已有角色前缀时自动跳过;时间轴 / 指令类不提供(用不上)。 - 不再是「猜人名」而是「排队判断」:加了负向预查(
对/向/冲着…、没有/不/未、传来/听到)
和幽灵角色三道闸 —— 参考实现会把「小翠在旁边小声说」切成角色「边小声」(边是姓氏),
28,800 字里 600 段全归这个不存在的人;这一版挡掉了。 - 对白符号做成一张表并可自定义:
[]【】《》{}〔〕〈〉「」『』“”﹁﹂「」…
方括号写对白的稿子不再被当成「括号备注」全扔进旁白([00:12]、[镜头 3]、[叹气]、《红楼梦》
仍然不算台词)。不常见的符号可以在第 2 步「对白符号」里自己写。
看得清:把导入后的样子铺开给你看
- 正文预览:按正式导入后的顺序连排成一份上了色的正文(不是一张张卡片),
同色 = 同一组 = 同一音色;动作 / 镜头 / 时间码这类不朗读的内容是灰色小字、不上色。 - 一句一个色块、对话自然换行,读起来就是「念出来会是什么样」。
改得动:半句也能单独处理
- 拖选半句就只动那几个字(下划线标出,前后文不受影响);跨句拖选按整句;Ctrl 加选、Shift 连选。
- 撤销 / 恢复(Ctrl+Z / Ctrl+Shift+Z),只作用于预览里的草稿。
- 草稿模式:右下角「保存并按预览分组」点下去才生效;直接关掉(或 Esc)= 丢弃,会先问你一次。
- 第 3 步的分组卡片同步标出「🚫 不配音(不进台本)」,组数和按钮计数只算真的会建出来的组。
追得回:导入时的原文,能核对也能重来
- ⤓ 导入原稿 下载的是纯原文(一段一行、不带任何前缀或注释),
用来核对「导入时有没有漏句、有没有被误设成不配音」;
想重来一遍就选「纯文本 + 分段方式:一行一段(不切也不合)」,分段与当初完全一致。 - 台本页新增 📄 原文本预览 / 📝 当前文本预览:一句一行带行号,切换停在同一句;
原文本里对不上台本的那几段标灰(= 当时被去掉配音或删掉的)。
顺带修掉
- 批量分行会吃掉句中标签(
scope=all时全丢),行级音效被复制成多份; - 时间轴拆分素材片段会把淡入淡出一起复制,切开处「先淡出再淡入」。
安装
- 下载
indextts2-longform-workbench-patch-v0.22.zip(约 120 MB); - 解压到 IndexTTS2 v3 整合包根目录(会多出
IndexTTS2_全能音声工作台补丁_v0.22文件夹); - 双击其中的
安装.bat,重启服务;卸载用卸载.bat(不动你的模型和台本)。
这是扩展补丁,不是独立软件 —— 需要先有 IndexTTS2.0 超级优化整合包 V3。
教程与细节见包内 docs/使用说明.txt(配图 12 → 25 张)与 docs/技术路线_长篇台本与时间轴.md §5.59–5.60。
全能音声工作台 · 补丁 v0.20
全能音声工作台 · 补丁 v0.20
装法:把 zip 解压到整合包根目录(和 server.py、runtime\ 同级)→ 进多出来的 IndexTTS2_全能音声工作台补丁_v0.20 文件夹 → 双击 安装.bat → 看到「完成」后关窗,重新双击包根的 start_server.bat。
装好后:/longform 台本工作台 · /timeline 时间轴 · /guide 内置教程。
这一版一共改了多少
| 项 | 数量 |
|---|---|
| 修补轮次 | 6 轮(第 9 ~ 14 轮,从「多选手感」到「导出啪声」) |
| 修掉的缺陷 | 22 处,其中 5 处会造成实际损失 |
| 新增 / 重做功能 | 16 项 |
| 改动规模 | 17 个文件 / +1468 −125 行(代码 9 个文件 +974 −116,其余为文档与版本号) |
| 测试 | 新增 4 套 / 89 项断言,53 套回归 FAIL = 0 |
五处会直接造成损失的
- 「只生成选中行」= 跑整篇 —— 前后端对渲染范围的枚举没对齐,选 2 句跑 5 句,白烧显卡和时间。
现在「选中行」按 uid 精确下发,缺参数或未知范围一律 400 拒绝,不再「猜成全篇」; - 渲染线程
[WinError 5] 拒绝访问 script.json.tmp—— 保存与读取撞车,整次生成中止。
改成唯一临时名 + 全局写锁 + 退避重试,读也重试; - 变速片段导出丢句 / 音调升高 / 边界「啪」 —— 预渲染缓存把 22050 的样本标成 44100,
后半段还是补零。现在按源采样率取长度、写文件,缓存加版本号自动作废旧数据; - ASMR / 低语近场破音、像劣质麦克风 —— HRTF 数据集没做响度标定 + 近场双重增益,直接顶进软限幅。
现在所有数据集按 1 kHz 灵敏度统一标定、近场增益封顶 +1.9dB、低频补偿 6→3dB,
试听端与导出端共用同一条距离律; - 导出里每秒一声「嗒」 —— 双耳渲染每 1 秒被重新调用一次,块边界有相位跳变(试听走 WebAudio,所以听不到)。
现在整段渲染一次再按块切片,块边界跳变从 0.046 降到 0.0013。
6 轮分别做了什么
| 轮次 | 主题 | 主要产出 |
|---|---|---|
| 第 9 轮 | 多选手感 | 框选后按 L 生效、右键不再打散多选、悬浮窗锁定 / 静音合成两态按钮 |
| 第 10 轮 | 生成范围 | 「选中行」按 uid 精确下发;未知或缺参数的渲染范围一律 400 |
| 第 11 轮 | 写盘稳定性 + 分组编辑 | 根治 WinError 5;编辑分组可直接加减句;拆分句子继承分组 |
| 第 12 轮 | 生成过程 | 生成中询问「等这轮结束 / 加入当前队列」;本轮完成汇总;「▤ 分组」标签与句数补齐 |
| 第 13 轮 | 音频质量 | 人声分离默认 Demucs;变速缓存采样率;近场破音三处一起收 |
| 第 14 轮 | 导出啪声 | 双耳改「整段渲染 + 按块切片」;缓存版本号;超长片段按实际长度收尾 |
这一版新增的功能
- 分组可以直接加减句子:每张分组卡片多一对
+/-,把左侧勾选的句子一键加进 / 移出本组
(加入时补上「▤ 分组」标签并套用本组参数,不动已有行);「编辑」弹窗顶部也有全台本句子清单; - 拆分的句子留在分组里:回车拆分、插入空行、复制句子都会继承分组,行上带「▤ 分组」标签;
合并两句时两边的组会并到一起;智能分行也一样; - 分组勾选后一键生成:卡片左上角有勾选框,底部「已勾 N 个分组 · 共 M 句」+ 全选 / 清空 +
「生成勾选的 N 个分组」,与生成页的「按批量任务」列表双向同步; - 生成中再点生成会问一句:
⏳ 等这轮结束再单独生成或+ 加入当前队列(追加到正在跑的任务,
进度总数变大,跑完在同一份汇总里一起看);生成中「开始生成」不再禁用,文案变成「+ 加进队列 / 排队…」; - 一轮跑完弹「本轮生成完成」:成功 / 失败 / 跳过 / 未跑各几句、总用时,逐句列出行号 + 文本 + 时长 + 状态,
失败的在底部汇总原因;之前排过队的话主按钮直接是「开始排队的 N 句」; - 生成页每个渲染范围标出句数:
选中行 2 句/未生成 6 句/未勾选分组/全部 6 句,
上方还有「已选 N 句 · 未选 M 句 · 共 T 句」的常驻提示; - 导出改成体检报告:报告真实峰值(贴上限时提示降 2~3dB)、重建了几段变速缓存、
几段比音频长(已按实际长度收尾); - 人声分离默认 Demucs(实测与干净语音相关性 0.99,中置提取 0.71),不可用时自动退回中置提取。
功能一览
01 台本 —— 智能识别与分句(时间轴稿 / 剧本 / 小说 / 指令 / 纯文本)、三种分行方案与单段上限、
按章节·角色·场景·段数分组、逐段预览拆分合并、句内音效标记。
02 配音 —— 逐句独立生成与试听、按分组配置音色与情感、选中行 / 未生成 / 全部批量生成、
修改追踪、连续与非连续多选、批量删除与复制(含已生成音频)。
03 素材 —— 音频与视频导入(自动提取音轨)、去伴奏与中置提取、降噪与响度标准化、裁剪、
音色库与音效库沉淀、默认保留原始素材便于二次处理。
04 时间轴 —— 多轨编排与整组拖动、框选与 Ctrl 加选、台本与工程副本衔接、
按句序重排台词(只改开始时间)、片段位置 / 时长 / 源起点 / 音量 / 声像 / 淡入淡出 / 变速、
变速到指定时长、多段复制与选择性粘贴属性、音声片段复制成独立素材。
05 空间音频 —— 句内音效落点、基于 HRIR 的空间定位(方位 / 仰角 / 距离)、房间混响与干湿比、
13 种运动脚本预设(往返、绕头、掠过耳侧、头顶环绕、背后低语…)。
06 自动化 —— 音量 / 声像 / 空间距离三条关键帧曲线,播放中推滑杆即可实时录制。
07 导出 —— WAV / MP3 / FLAC / OGG 混音(可选采样率、声道、时段、轨道、总时长口径)、
REAPER .rpp、PR / 达芬奇 .edl、Audacity 分轨 WAV + 标签,附分轨 stems 与 timeline.csv / markers.csv。
08 教程 —— 内置离线图文教程:六步上手 + 按备料 / 台本 / 生成 / 时间轴 / 导出五个阶段的功能索引 + 快捷键 + 常见问题。
包里有什么
| 内容 | 说明 |
|---|---|
| 工作台前后端代码 | longform_api.py / lf_import.py / timeline_api.py / hrir.py / rooms.py + web/ |
bin\ffmpeg.exe |
视频抽音频,离线可用(约 84MB) |
vendor2\torch\ |
Demucs htdemucs 权重,去伴奏离线可用(约 80MB) |
assets\hrir\ |
KEMAR / KU100 近场 HRIR |
整个 zip 约 119MB。用不到「去伴奏」或「视频导入」的话,可以删掉 vendor2\torch\ 或 bin\,
功能会退化成「只有轻量中置提取 / 只能导入普通音频」。
前置条件
需要先安装 「IndexTTS2.0 超级优化整合包 V3」(作者:B 站 十一君Jun)。
下载方式与原作者信息见仓库 README。
整合包本体、模型与环境问题请找原作者;这个补丁只负责工作台那一层。