XucroYuri
aac226ad49
style(webui): 布局对齐美观调整
...
1. html_center margin:100→8px 0
修复板块标题上下100px巨大空白, 改为紧凑8px, 整体视觉更聚合
(影响所有用 html_center 的板块标题: 模型切换/参考信息/目标文本等)
2. 模型切换板块两行 scale 统一总宽28:
Row1: 模型名(20)+刷新模型列表(8) = 28
Row2: GPT(10)+SoVITS(10)+刷新模型路径(8) = 28
(原 Row1=21+7=28, Row2=14+14+14=42 不一致; 现两行等宽对齐)
验证: WebUI启动正常, margin:8px 0 生效, 端到端功能不受影响。
2026-07-07 13:21:35 +08:00
XucroYuri
757994c4ba
style(webui): 训练样本下拉整合进参考信息板块(参考音频的文本上方)
...
将操作的入口和输出结果聚合在同一区域:
- 删除独立的「训练样本选择」板块
- 「训练样本音频」下拉移入「*请上传并填写参考信息」板块顶部
(位于参考音频/参考文本上方), 入口与输出结果聚合
新结构:
模型切换: [模型名|刷新] / [GPT|SoVITS|刷新路径]
*请上传并填写参考信息:
[训练样本音频(满宽, 选中即自动引用)] <- 入口
[参考音频 | 参考音频的文本+情绪/括注] <- 输出
板块从3个精简为2个(组件58), 事件绑定不变。
端到端验证: 选模型->样本+权重; 切样本->参考音频+文本+情绪自动填入。
2026-07-07 13:16:53 +08:00
XucroYuri
1c5849fd96
style(webui): 模型名移入模型切换板块(GPT/SoVITS上方), 训练样本独立板块
...
按操作层级重组: 模型名(实验名)是 GPT/SoVITS 的上游选择(选角色->自动匹配权重),
逻辑上应与其操作的 GPT/SoVITS 下拉同板块且在其上方。
布局调整:
- 「模型名(实验名)」+「刷新模型列表」移入「模型切换」板块顶部行
- 「GPT模型列表」「SoVITS模型列表」「刷新模型路径」保留在下方行
- 原「训练角色选择」板块改名为「训练样本选择」, 只剩训练样本下拉
(模型名移走后这里不再需要「角色」二字)
新结构:
模型切换: [模型名 | 刷新模型列表] / [GPT | SoVITS | 刷新模型路径]
训练样本选择: [训练样本音频(满宽)]
参考信息: [参考音频 | 参考文本+情绪/括注]
事件绑定不变(组件变量名未改), 端到端验证通过:
选模型名->40样本+GPT(e10)+SoVITS(e16); 切样本->参考音频+文本+情绪自动填入。
2026-07-07 13:13:38 +08:00
XucroYuri
59de1f79eb
refactor(webui): 训练样本切换直接联动参考信息, 移除应用按钮和预览播放器
...
去掉冗余设计, 改为最直接的实现:
- 删除「应用选中样本到参考音频和文本」按钮 (apply_sample_btn)
- 删除「样本预览」音频播放器 (ref_sample_player)
- 切换「训练样本音频」下拉框 (ref_sample_dropdown) 即自动联动填入:
参考音频(inp_ref) + 参考文本(prompt_text) + 情绪/括注(ref_emotion_text)
实现:
- on_ref_sample_change 合并原 on_apply_sample 逻辑, outputs 改为
[inp_ref, prompt_text, ref_emotion_text] (原为 [预览, 情绪])
- on_model_name_change outputs 从 4个(含预览) 减为 3个
[样本下拉, GPT下拉, SoVITS下拉]; 选模型时样本下拉 value 设首个,
级联触发 on_ref_sample_change 自动引用首样本
- 删除 on_apply_sample (逻辑已并入 on_ref_sample_change)
- 样本下拉 label 改为「训练样本音频(选中即自动引用为参考音频)」
自定义输入不干扰: Gradio change 仅在 dropdown 变化时触发,
手动清空参考音频/文本/情绪视为自定义输入, 不会被重置。
验证(真实proplus数据): 切样本「光头TTS新_02.wav」->
参考音频=光头TTS新_02.wav, 参考文本='倒计时只剩十秒了!...',
情绪='紧张', 三联动无报错。组件数63->60。
2026-07-07 13:10:46 +08:00
XucroYuri
2dfe91afbb
refactor(webui): 选模型名自动匹配权重(目标epoch 8/15), 移除自动匹配按钮
...
按产品逻辑重构模型切换流程:
1. 选中模型名(实验名) -> 自动设置 GPT/SoVITS 下拉默认值, 无需点按钮
2. GPT 目标 epoch=8, SoVITS 目标 epoch=15 (对应训练WebUI默认total_epoch)
3. 用户仍可通过下拉框手动更换 GPT/SoVITS 权重
实现:
- 新增 _extract_epoch_from_weight: 从文件名提取epoch (GPT: -e10, SoVITS: _e12_s180)
- 新增 _pick_weight_by_epoch: 从权重列表选epoch最接近目标的(平手取较小epoch)
- 新增 auto_match_weights_for_model: 封装扫描+匹配, 返回 gr.Dropdown 更新
- on_model_name_change 合并自动匹配: outputs 从 [样本,预览] 扩展为
[样本,预览,GPT下拉,SoVITS下拉], 选中模型名即联动设置权重
- 移除「自动匹配权重」按钮组件及 click 绑定 (不再需要手动触发)
- 删除 on_auto_select_weights (逻辑并入 on_model_name_change)
验证(真实proplus数据): 选「光头TTS新-20260611」->
GPT 自动选 e10(可选5/10/15../50, |10-8|最近),
SoVITS 自动选 e16(可选4/8/12/16/20/24, |16-15|最近),
样本下拉40个含emotion标签。组件数64->63。
2026-07-07 13:04:09 +08:00
XucroYuri
c0e7c75ab5
style(webui): 训练角色选择区布局微调 (产品/操作逻辑优化)
...
基于产品逻辑和操作流程调整新增菜单入口的布局:
1. 训练角色选择区从「模型切换」Group 内部提出为独立并列 Group
(产品逻辑上它与手动切换权重是并列功能, 不应嵌套)
2. 「自动匹配权重」按钮移到模型切换区 (GPT/SoVITS 下拉旁)
(它操作的就是那两个下拉框, 放在一起逻辑更内聚)
3. 「应用选中样本」按钮贴训练样本下拉框同行右侧
(操作流程连贯: 选样本 -> 直接点应用, 不再独占一行割裂流程)
4. scale 对齐:
- 模型切换区: GPT(14)+SoVITS(14)+刷新路径(7)+自动匹配(7) = 42
- 训练角色区: 模型名(21)+刷新(7); 样本(21)+应用(7) = 28
各 Row 内部比例统一, 视觉对齐
5. 样本预览播放器改为满宽显示 (不再与下拉挤在一行)
验证: 沙箱用真实 proplus 数据启动 WebUI, /config 确认 64 组件全渲染、
4 个事件绑定映射正确、端到端选模型返回 40 样本含 emotion 标签。
2026-07-07 12:53:03 +08:00
XucroYuri
eb2db3c9b2
fix(webui): dropdown list 包装导致 on_model_name_change 崩溃
...
测试发现: app.load/refresh_models_btn 直接用 scan_model_names 的返回值
(裸 list) 作为 model_name_dropdown 的输出, Gradio 把整个 list 当成
dropdown 的 value 而非 choices, 级联触发 on_model_name_change 时
model_name 收到的是 list 而非 str, 导致 'Path / list' TypeError。
修复:
- 新增 refresh_model_dropdown() 返回 gr.Dropdown(choices=..., value=...),
app.load 和 refresh_models_btn 改用它 (scan_model_names 保留为纯数据函数)
- 新增 _coerce_single() 对 4 个事件处理函数 (on_model_name_change /
on_ref_sample_change / on_apply_sample / on_auto_select_weights) 的
dropdown 入参做类型防御, 即使收到 list/tuple 也能还原为 str
已用真实 proplus-hc-dev 训练数据端到端验证: 选模型 -> 40 个样本正确填充
(含【情绪】标签) -> 预览播放器加载音频, 全链路无报错。
2026-07-07 12:16:05 +08:00
XucroYuri
e1720e7e5a
feat: 兼容 proplus-hc-dev 训练数据 + 新增「情绪/括注」字段
...
兼容 proplus-hc-dev 分支基于 6 列 .list 训练的模型,并按主分支自身流程
增加 emotion 字段(标注/推理 UI 单输入框「情绪/括注」,存 emotion 列,
保留 remark 列以兼容 proplus 6 列结构)。emotion/remark 不参与训练。
核心兼容性修复(消除 3 处硬编码拒绝 proplus 的 6 列 .list):
- 新增 tools/list_metadata.py: 6 列 .list 解析/格式化器 (parse/format_list_line)
- 1-get-text.py:129 line.split("|") 严格 4 列解包 -> parse_list_line
(proplus 同款修复,只取训练所需前 4 列,emotion/remark 静默忽略)
- subfix_webui b_load_list: 仅接受 len==4 -> 改用 parse_list_line (>=4 列)
- subfix_webui b_save_list: 写 4 列 -> 写 6 列 (保留 emotion/remark,向前向后兼容)
标注 UI (tools/subfix_webui.py):
- 每条音频新增「情绪/括注」Text 输入框 (g_emotion_list)
- b_change_index/reload_data/b_submit_change 贯通 emotion 读写
- 8 个分页事件输出列表统一追加 *g_emotion_list
推理 WebUI (inference_webui.py):
- _read_emotion_map_for_webui: 读 output/asr_opt/<exp>/*.list 的 emotion 列
- 训练样本下拉标签附加【emotion】(有则显示)
- 选中样本时同步刷新「情绪/括注」只读文本框; 应用样本一并填入
- 无 emotion 数据则文本框留空 (符合「无数据不显示」)
API (api_v2.py):
- GET /models/{name}/samples 响应增加 emotion 字段 (来自同源 .list)
向后兼容: 主分支原生 4 列 .list 全程正常; 训练 pipeline 不感知 emotion。
list_metadata/parse/emotion/round-trip 单元自测通过; py_compile 全通过。
2026-07-07 11:44:02 +08:00
XucroYuri
7be8a59e52
feat: add training model/sample browsing API + WebUI, relax ref audio duration
...
为 TTS More 工作台增加远程获取训练数据的能力,并解除参考音频时长的硬编码阻断。
API (api_v2.py, 端口 9880):
- GET /models 列出训练角色(exp_name)及匹配权重
- GET /models/{name}/samples 列出训练样本(音频+参考文本), 含目录穿越校验
- GET /status 当前权重/版本/设备状态
- POST /upload_ref 上传参考音频, 文件名白名单清洗
Gradio WebUI (inference_webui.py):
- 新增「训练角色选择」区域: 模型名下拉/刷新/自动匹配权重/样本下拉/预览/应用样本
- on_auto_select_weights 采用稳健写法: 仅返回 Dropdown 值, 由已有 .change
绑定触发切换 (change_sovits_weights 是生成器, 手动消费会丢失组件更新)
时长硬编码解除 (3~10s 不再阻断):
- TTS_infer_pack/TTS.py:815 raise OSError -> print [Warning]
- inference_webui.py:853 raise OSError -> gr.Warning (建议性文案)
- inference_webui.py:1367 标签改为「推荐3~10秒」
依赖: requirements.txt 追加 python-multipart (/upload_ref 必需)
向后兼容: 现有 /tts /set_gpt_weights /set_sovits_weights 签名与返回不变,
TTS 推理 pipeline 本体逻辑未改。所有改动 py_compile 通过。
2026-07-07 11:32:14 +08:00
zhifu gao
bf81cdb14a
feat: upgrade FunASR + add Fun-ASR-Nano & SenseVoice ASR backends ( #2782 )
...
- Upgrade funasr from ==1.0.27 to >=1.3.7
- Add Fun-ASR-Nano (31 languages, Chinese dialects, recommended default)
- Add SenseVoice (ultra-fast 170x realtime, 5 languages)
- Keep original Paraformer as '达摩 ASR (中文经典)' for backward compat
- WebUI shows 3 FunASR options + Faster Whisper
Tested: routing logic verified for all backends (zh/en/ja/ko).
Resolves #2777
Co-authored-by: xiaoyunchong.xyc <xiaoyunchong.xyc@alibaba-inc.com>
2026-06-20 15:44:59 +08:00
SapphireLab
b2cff0cd0a
fix: 多音字修改 ( #2791 )
...
* fix: 固定唑的读音
* add: 增加md5检测以更新缓存
2026-06-16 21:46:53 +08:00
RVC-Boss
08d627c333
增加cuda graph支持,普通推理模式推理速度原地翻倍,效果不变。2
...
增加cuda graph支持,普通推理模式推理速度原地翻倍,效果不变。2
2026-04-30 15:01:45 +08:00
RVC-Boss
6d95b559e8
增加cuda graph支持,普通推理模式推理速度原地翻倍,效果不变。1
...
增加cuda graph支持,普通推理模式推理速度原地翻倍,效果不变。1
2026-04-30 15:01:11 +08:00
RVC-Boss
ea2d2a8166
Update README.md
2026-04-19 21:02:57 +08:00
SapphireLab
d9f03dad3e
Update Documentation ( #2768 )
...
* 调整日志格式
* docs: Update other languages' changelogs
2026-04-18 22:33:55 +08:00
RVC-Boss
647935357a
Update Changelog_CN.md
2026-04-18 19:01:11 +08:00
RVC-Boss
02425ea256
Fixed issues such as missing imports for types like Optional.
...
Fixed issues such as missing imports for types like `Optional`.
2026-04-18 17:33:53 +08:00
Harikrishna KP
938f05fce8
fix: correct torch.randint upper bound to include both values ( #2733 )
2026-04-18 17:19:55 +08:00
huang yutong
445d18ccce
fix: 修复 TTS 音频后处理中的多个缺陷 ( #2753 )
...
1. 修复音频超采样时 int16 双重转换导致整数溢出(CRITICAL)
- audio_postprocess 中 `audio = (audio * 32768).astype(np.int16)` 位于
if/else 块之外无条件执行,当 super_sampling=True 时音频已在分支内
转为 int16,再次乘以 32768 导致溢出和音频完全失真
- 同时修复 super_sampling=True 但超分模型不存在时 torch.Tensor 调用
.astype() 的 AttributeError
2. 修复 batched vocoder 推理中 padding_len=0 导致音频丢失(HIGH)
- 当 padding_len 恰好为 0 时,`-0 * upsample_rate == 0`,切片
`audio[x:0]` 返回空张量,导致整段音频丢失
3. 修复文件不存在时错误地抛出 FileExistsError(LOW)
- 应为 FileNotFoundError
Made-with: Cursor
2026-04-18 17:16:24 +08:00
Mushroomcowisheggs
00ce973412
feat: 添加数据集的错误处理提示 ( #2758 )
...
Co-authored-by: moomushroom <107208254+moomushroom@users.noreply.github.com>
2026-04-18 17:13:30 +08:00
huang yutong
14191901cd
fix: 修复多个模块中的独立 bug ( #2755 )
...
1. 修复 sync_buffer 中除以函数对象而非调用结果(distrib.py)
- `buffer.data /= world_size` 中 world_size 是函数,缺少 (),
导致 TypeError 使分布式训练 buffer 同步失败
2. 修复 istft 函数缺少 return 语句(spec_utils.py)
- 函数计算了结果但未返回,调用者始终得到 None
3. 修复 cut0 返回字面量 "/n" 而非换行符 "\n"(text_segmentation_method.py)
- 导致后续 text.split("\n") 无法正确切分,字面 /n 被当作文本内容
4. 修复粤语 ASR 的 vad/punc model_revision 被无条件覆盖(funasr_asr.py)
- 粤语分支将 vad_model_revision 设为空(因不使用 VAD/标点模型),
但 if/else 外的赋值将其覆盖为 "v2.0.4",传入错误的 revision 参数
Made-with: Cursor
2026-04-18 17:10:56 +08:00
东云
780383d5bd
[codex] Improve Windows single-GPU v3 LoRA training / 改进 Windows 单卡 v3 LoRA 训练流程 ( #2767 )
...
* Improve Windows single-GPU v3 LoRA training
* Drop unrelated checkpoint helper change from PR
* Tighten PR scope to single-GPU training path fixes
2026-04-18 16:54:26 +08:00
白菜工厂1145号员工
ba8de9b760
优化 G2PW 的推理输入构造与多音字处理流程,减少重复计算,降低长句场景下的推理开销 ( #2763 )
...
* Enhance G2P processing by implementing batch input handling in _g2p function, improving efficiency. Update prepare_onnx_input to utilize caching for tokenization and add optional parameters for character ID mapping and phoneme masks. Refactor G2PWOnnxConverter to streamline model loading and configuration management.
* Enhance G2PW model input handling by introducing polyphonic context character support and updating the data preparation method to return additional query IDs. This improves the processing of polyphonic characters in sentences.
2026-04-18 16:52:32 +08:00
XXXXRT666
2d9193b0d3
Migrate to miniforge, add missing dependencies, update docker file, remove deprecated files ( #2732 )
...
* Migrate to miniforge, add missing dependencies, update docker file, remove deprecated files
* Add Env Vars and Secrets
2026-02-09 15:05:25 +08:00
Oarora
9986880b3f
fix Conda 条款未同意导致的构建失败 ( #2727 )
2026-02-08 23:52:04 +08:00
ChasonJiang
c767f0b83b
修复bug ( #2704 )
...
* 修复bug
* fallbak and bug fix
2025-12-30 16:00:21 +08:00
ChasonJiang
9080a967d5
修复采样错误 ( #2703 )
2025-12-30 15:21:03 +08:00
sushistack
51df9f7384
Fix model file name in README instructions ( #2700 )
2025-12-25 16:44:21 +08:00
ChasonJiang
bfca0f6b2d
对齐naive_infer的解码策略,防止吞句 ( #2697 )
2025-12-19 17:37:19 +08:00
ChasonJiang
abe984395c
对齐gpt topk默认采样参数 ( #2696 )
2025-12-19 16:05:36 +08:00
RVC-Boss
cc89c3660e
Update requirements.txt
2025-12-19 15:54:54 +08:00
ChasonJiang
36b3231c6f
bug fix ( #2689 )
2025-12-15 14:23:06 +08:00
RVC-Boss
9ec3a60f30
Update config.py
2025-12-01 20:23:49 +08:00
RVC-Boss
fc533b6fb7
Update fasterwhisper_asr.py
2025-12-01 11:38:37 +08:00
XXXXRT666
857799276c
Fix Modelscope ( #2679 )
2025-12-01 11:13:15 +08:00
Spr_Aachen
92d2d337fd
Fix training error caused by float type of default_batch_size parameter ( #2662 )
2025-11-28 22:53:43 +08:00
ChasonJiang
6fb441f65e
更友好的流模式选项 ( #2678 )
2025-11-28 22:13:48 +08:00
XXXXRT666
c85c54eca9
Add ModelScope Snapshot Download For ASR ( #2627 )
...
* Add ModelScope Snapshot Download For ASR
* Typo Fix
* Remove YUE in whisper
* Remove HF ENDPOINT
* Add FunASR Download
2025-11-28 22:10:49 +08:00
RVC-Boss
cb00840c4e
Add files via upload
2025-11-28 22:02:03 +08:00
wzy3650
60a4a214af
vq distributed training support ( #2577 )
...
Co-authored-by: wangzeyuan <wangzeyuan@agora.io>
2025-11-28 21:57:13 +08:00
zzz
6375bbe316
尝试 stream infer ( #2469 )
...
* 尝试 stream infer
* 在 stream_infer 脚本中绘制生成的音频
* stream_infer 增加导出部分。
* stream_infer: 更方便找规律的图
* stream_infer: 在拼接音频时进行相关性搜索,减少拼接带来基频断裂的情况
* stream_infer: 导出 `find_best_audio_offset_fast`
* stream_infer: 优化波形显示,方便对比
* stream_v2pro.py 从命令行读取参数
* stream_v2pro.py 减少用于导出的文本长度
* stream_v2pro: 修复由于 spectrogram_torch 输入是 half 导致 spec 溢出最终没有声音的问题
* stream_v2pro: 新增 --lang 参数提示参考文字的语言类型
2025-11-28 21:36:57 +08:00
KamioRinn
e00ca92140
Fix ASMD ( #2636 )
2025-11-28 21:22:43 +08:00
ChasonJiang
92ab59c553
更细粒度的流式推理模式 ( #2671 )
...
* 更好的流式推理模式
* 清理无用代码
* modified: GPT_SoVITS/AR/models/t2s_model.py
modified: GPT_SoVITS/TTS_infer_pack/TTS.py
modified: GPT_SoVITS/module/models.py
* modified: GPT_SoVITS/TTS_infer_pack/TTS.py
* modified: .gitignore
modified: GPT_SoVITS/AR/models/t2s_model.py
modified: GPT_SoVITS/TTS_infer_pack/TTS.py
modified: GPT_SoVITS/module/models.py
* modified: GPT_SoVITS/AR/models/t2s_model.py
modified: GPT_SoVITS/TTS_infer_pack/TTS.py
modified: GPT_SoVITS/module/models.py
modified: api_v2.py
* modified: GPT_SoVITS/TTS_infer_pack/TTS.py
* 更正拼写错误
* 支持固定chunk长度的流式推理,优化sola算法
* 修复api_v2的ogg格式传输问题
2025-11-28 21:12:41 +08:00
RVC-Boss
11aa78bd9b
修复环境变量可能不为str的问题
...
修复环境变量可能不为str的问题
2025-09-10 15:01:04 +08:00
XXXXRT666
fdf794e31d
Update WSL Rocm ( #2561 )
2025-08-02 17:47:15 +08:00
多玩幻灵qwq
0be59c8043
fix: 更正链接 ( #2539 )
2025-07-19 00:29:48 +08:00
ChasonJiang
b5a67e6247
修复gpt的loss计算问题 ( #2537 )
...
* 修复gpt的loss计算问题
* fallback tts config
2025-07-18 14:59:59 +08:00
ChasonJiang
b9211657d8
优化TTS_Config的代码逻辑 ( #2536 )
...
* 优化TTS_Config的代码逻辑
* 在载入vits权重之后保存tts_config
2025-07-18 11:54:40 +08:00
XXXXRT666
cefafee32c
Add Distil ( #2531 )
2025-07-17 20:28:25 +08:00
RVC-Boss
2d09bbe63a
Update tts_infer.yaml
2025-07-16 15:44:04 +08:00