Skip to content

feat: add SenseVoiceSmall as a local subtitle transcription option - #244

Merged
zhouxiaoka merged 4 commits into
mainfrom
codex/local-sensevoice-20260930
Sep 30, 2026
Merged

zhouxiaoka merged 4 commits into
mainfrom
codex/local-sensevoice-20260930

Conversation

@zhouxiaoka

@zhouxiaoka zhouxiaoka commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

视频没有字幕时,现在可以在「设置 → 字幕转写」选择 SenseVoice · 本地,准备 SenseVoiceSmall 后保存设置,新任务即通过现有转写入口使用该模型。Whisper 保持默认值,组件和权重按需下载,音频不上传,不自动转向云端。

#67 提到的 fork 已有 SenseVoice 实现,但曾忽略 CTC 词级时间戳,将 45 秒语音压成两条 VAD 长字幕。此次参考 123mlly/autoclip#1 的 MIT 许可修复思路,严格配对 words/timestamp,恢复原文空格、标点并按 42 字符、8 秒上限和停顿生成字幕;无效、不完整、重叠或越界时间轴直接报错,不按字数伪造定位。真实词级信息进入现有带 SRT 内容校验的 sidecar。

FunASR/PyTorch 在数据目录独立安装,并只在子进程导入,避免影响 API 与 Whisper 依赖。增加准备、状态、删除、跨进程互斥、重启中断恢复、本地路由和反馈元数据;设置页及文档链接模型权重许可。Windows 实际落盘约 5.8 GB,首次准备提示预留至少 8 GB(含临时空间),安装包不内置权重。

验证:

  • 最终 CI:830 后端测试通过、2 项跳过,前端 174 项通过,lint/typecheck/build 和 Docker smoke 通过。
  • 三系统真实 ASR 验收:Windows/macOS/Linux 的 Python 3.13 实际安装组件和模型、阻断推理网络、从已保存配置走正常转写入口。公开访谈前 45 秒均得到 21 条字幕、157 个词级时间戳,最长约 3.36 秒、末尾 44.98 秒;时间轴单调不重叠,父进程没有导入 FunASR/PyTorch,卸载检查通过。之后的改动只涉及使用提示与文档。
  • 最终提交再次验收:同样执行三系统真实 ASR 检查,作为合并前最终门槛。
  • 原 Whisper Windows 恢复验收:真实运行时安装、模型下载、离线语音、PyAV 19 恢复通过。
  • Windows 桌面进程回归 与文档一致性检查通过。

范围是 FunASR 1.3.14 + SenseVoiceSmall + FSMN-VAD,CPU 两线程。不启用说话人分离,也不代表所有 FunASR 模型、硅基流动云端 SenseVoice、通用插件框架或长视频质量比较已完成。真实 ASR 测试不替代新增功能的桌面安装包真机验收;尚未发布新的正式安装包。

Closes #67

@zhouxiaoka
zhouxiaoka merged commit e9e6c90 into main Sep 30, 2026
10 checks passed
@zhouxiaoka
zhouxiaoka deleted the codex/local-sensevoice-20260930 branch October 1, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

建议集成 FunASR/SenseVoice 用于语音识别和智能剪辑

1 participant