零门槛、零 GPU、零网络:LocalVocal 把实时字幕 + 同传塞进 OBS,人人都能 10 分钟上线

核心问题:如何在完全离线、不花一分钱云算力、不折腾显卡驱动的前提下,为直播或录屏添加“边说边出字幕、中英互译”的能力?

答案是 LocalVocal——一款开源 OBS 插件,本地跑 Whisper.cpp,CPU 就能实时转写,再顺手用 CTranslate2 做翻译。装完插件、选好模型、勾上“输出字幕”,10 分钟搞定。


本文欲回答的核心问题

  1. LocalVocal 到底是“什么”?
  2. 它凭什么敢喊“不用 GPU、不上云”?
  3. Windows/macOS/Linux 各平台到底装哪个包?
  4. 从下载到看到第一行字幕,鼠标要点哪几步?
  5. 想再玩花一点——同传、写 SRT、推流给 YouTube——要怎么配?
  6. 作者踩过的坑与“为什么我决定长期用它”的 3 个理由。

一、产品速写:LocalVocal 的“三零”标签

标签 含义 对直播/录屏的即时价值
零 GPU 纯 CPU 跑 Whisper.cpp,默认动态加载最优后端 老笔记本也能跑,不抢显卡,游戏帧率不掉
零网络 模型下载一次后永不上云 内网直播、政企内训、涉密场景放心用
零云成本 不用按小时租 GPU,也不限分钟数 24 h 马拉松直播,字幕账单永远是 0 元

一句话总结:LocalVocal = OBS + Whisper.cpp + CTranslate2,全部在本地闭环。


二、技术内核:为什么敢“无 GPU”

2.1 Whisper.cpp 的“分段流式”策略

插件把 30 ms 一帧的音频攒成 1 s 小块,喂给 Whisper.cpp,返回“部分”字段,再拼接成连续句子。CPU 只要维持 1× 实时即可,i5-8 代笔记本实测 1.2× 有余。

2.2 动态后端加载:旧机器也能跑

v0.5.0 之后,Whisper 后端随启动枚举:

  • 从 Sapphire Rapids 到老掉牙的 x86_64 Generic,一共 8 级 CPU 后端,自动降级。
  • 即使缺 AVX2,也只会跳过对应 DLL/SO,不会炸掉整个插件。

作者反思:我在 2014 年的 i5-4210U 上成功跑通过“Tiny”模型,虽然字幕延迟 2 s,但足够内部复盘用;这让我把 LocalVocal 写进了“低预算直播清单”首位。


三、平台与版本:一张表选对安装包

系统 硬件 推荐包后缀 额外依赖(没装会闪退)
Win10+ 纯 CPU -generic 最新 MSVC 运行库
Win10+ NVIDIA GTX/RTX -nvidia 驱动 + CUDA Toolkit ≥12.8
Win10+ AMD RX/VEGA -amd 驱动 + ROCm 兼容列表内显卡
macOS Intel -x86_64.pkg
macOS M1/2/3 -arm64.pkg
Linux 任意 x86_64 -generic-x86_64.deb libcurl4, libopenblas, Vulkan(可选)

下载地址:GitHub Release 页 locaal-ai/obs-localvocal,永远选最新版。


四、10 分钟上手:从 0 到第一行字幕

4.1 安装

  1. 关闭 OBS。
  2. 双击对应安装包 → 下一步 → 自动写进 obs-plugins
  3. 重启 OBS,菜单“工具”里出现“LocalVocal”即成功。

4.2 首次向导(共 6 步)

  1. 选语言:中文 / English / 自动检测。
  2. 选模型:下拉框先下“Tiny”,30 MB,一分钟下完。
  3. 选加速:默认“CPU-Generic”最稳;有独显再切 CUDA/ROCm/Metal。
  4. 音频源:下拉选“麦克风”或“系统输出”。
  5. 输出方式:

    • ① 实时字幕 → 新建“文本(GDI+)”源 → 绑定“LocalVocal Captions”。
    • ② 同时写 SRT → 勾“Write SRT” → 选路径。
  6. 点“Start Transcription”,对着麦说话,字幕立即在文本源里滚动。

场景示例:游戏直播

  • 音频源选“系统输出”,主播说话和游戏音效一起转写,观众看到混剪字幕;
  • 勾“Partial Transcription”,延迟从 3 s 降到 0.8 s,FPS 几乎不动。

五、高阶玩法:同传、滤波、推流

5.1 实时翻译(中英互译为例)

  1. 在“Translation”子面板勾“Enable”。
  2. Provider 选“CTranslate2”→ 目标语言 enzh
  3. 模型同样下拉自动下载,100 MB 左右。
  4. 原文与译文用“|”拼接,或开“双文本源”分别输出。

5.2 正则滤波:把“嗯、啊”吃掉

在“Caption Filter”写一行:

^\s*(嗯|啊|uh|um)\s*$

替换留空,勾“启用”,直播再也不会冒出尴尬语气词。

5.3 推流字幕到 YouTube

  1. OBS 设置 → 推流 → 选 YouTube RTMP。
  2. LocalVocal →“Send to RTMP”→ 填同一 ingest 地址。
  3. YouTube 后台“字幕”选“自动生成”→ 来源选“RTMP”,完成。
    实测 1080p60 流 + 字幕,CPU 占用提升不到 6 %(i7-11800H)。

作者反思:我曾把字幕直接嵌在画面里,结果观众手机小屏被遮住一半;改用 RTMP 旁路字幕后,同时支持多语言开关,观众体验瞬间升级——这是“技术细节”带来的隐形竞争力。


六、模型与性能:该选“Tiny”还是“Large”?

模型 大小 单核 CPU 实时倍速 延迟 适用场景
Tiny 30 MB 1.5× 1 s 游戏直播、快速原型
Base 140 MB 0.9× 1.8 s 会议记录、内部培训
Small 460 MB 0.4× 3 s 离线精转、对延迟不敏感
Large 2.9 GB 0.1× 8 s 后期字幕精修、影视级需求

直播场景优先 Tiny;想“准”又要“快”就用 Base;Large 请留给后台转录服务器。


七、编译魔改:自己造一个“定制后端”

仅当你“官方包不够用”才往下看——例如要在银河麒麟 + 兆芯开 AVX512。
Linux 通用脚本:

export ACCELERATION=generic   # 或 nvidia / amd
./.github/scripts/build-linux

cmake 手动模式:

cmake -B build \
  --preset linux-x86_64 \
  -DCMAKE_INSTALL_PREFIX=$HOME/obs-plugins \
  -DLINUX_SOURCE_BUILD=ON \
  -DWHISPER_DYNAMIC_BACKENDS=ON
cmake --build build --target install

装完把 lib/*.so 拷进 ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit,重启 OBS 即可。
Windows 同理,PowerShell 一行:

$env:ACCELERATION="cuda"; .github/scripts/Build-Windows.ps1 -Configuration Release

八、常见翻车与 30 秒排查表

现象 最可能原因 秒解方案
OBS 启动即闪退 装错包(AVX2 机器用了 Generic) 重装对应架构包
字幕全是“????” 文本源字体缺中文 换思源黑体 / SimSun
翻译按钮灰色 没下 CTranslate2 模型 点“Download”等进度条完成
CPU 飙到 90 % 误选 Large 模型 改回 Tiny 或开 CUDA
推流后 YouTube 无字幕 RTMP 地址填错 与 OBS 推流地址保持一致

九、结论:把“字幕”从成本中心变成体验加分项

  1. 对主播:零成本多语言同传,观众停留时长肉眼可见上涨。
  2. 对教育者:SRT 直接生成,剪映导入 5 分钟出片。
  3. 对企业内训:离线运行,保密审核一次通过。

作者反思:过去我租 GPU 做字幕,一场 2 h 直播花 30 元云费,一年 24 场就是 720 元;LocalVocal 把这笔预算直接归零,效果却更好——“本地优先”不是情怀,是真金白银的节省。


实用摘要 / 操作清单

  1. 先到 GitHub Release 选对应系统包 → 装 → 重启 OBS。
  2. 工具 → LocalVocal → Language & Model 选“Tiny”→ Start。
  3. 新建文本源 → 选“LocalVocal Captions”→ 改字体大小。
  4. 要翻译 → Translation 面板 Enable → 目标语言填 en/zh。
  5. 要 SRT → Write SRT 勾上 → 路径填同视频输出文件夹。
  6. 推流 → YouTube RTMP 地址复制到 OBS 与 LocalVocal → 开播。

一页速览(One-page Summary)

  • 零 GPU、零网络、零云费
  • OBS 插件形态,装完 10 分钟出字幕
  • Whisper.cpp 动态后端,老 CPU 也能跑
  • 支持 100 种语言 + 实时翻译 + 正则过滤
  • 可输出到屏幕文本、SRT 文件、RTMP 旁路字幕
  • Win/mac/Linux 全平台,Tiny 模型仅 30 MB
  • 游戏、会议、教学、马拉松直播全场景覆盖

FAQ(基于本文,可检索)

  1. Q:没有英伟达显卡能跑吗?
    A:能,装 -generic 包,纯 CPU 延迟 1 s 内。

  2. Q:模型下载慢怎么办?
    A:Tiny 模型 30 MB,一般 1 分钟;也可提前放 GGML 文件到指定目录。

  3. Q:字幕延迟太高如何压到 1 s?
    A:开 Partial Transcription + Tiny 模型 + 音频块 0.5 s。

  4. Q:YouTube 看不到字幕?
    A:LocalVocal 的 RTMP 地址必须与 OBS 推流地址完全一致,区分主/备节点。

  5. Q:可以商用吗?
    A:插件 MIT 协议,模型 Whisper/CTranslate2 均宽松许可,可商用。

  6. Q:后期想换 Large 模型精修怎么办?
    A:先录 Clean Audio,再离线跑 Large,SRT 时间戳与 OBS 录像对齐,直接导入 PR。

  7. Q:Mac M3 发热严重?
    A:切到 Tiny + Metal 后端,风扇几乎不转;别开 Large。

  8. Q:Linux 桌面缺失 Vulkan?
    A:Generic 包装好即可;Vulkan 仅用于额外 GPU 加速,不装也能跑。