obs-localvocal
在OBS Studio中实现语音即时转字幕的插件,支持100种语言、适配直播/会议/教学场景,全本地
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在OBS Studio中实现语音即时转字幕的插件,支持100种语言、适配直播/会议/教学场景,全本地
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一款让直播间“看见”声音的OBS插件:LocalVocal
“图1:LocalVocal 项目 GitHub Stars 增长趋势(来源:star-history.com)”
想象这样一个场景:一位耳乊主播正在用手语热情地与观众交流,突然屏幕底部出现了实时字幕——“大家好,欢迎来到我的直播间!”——这不是手语翻译员,而是一个运行在主播电脑上的 AI 插件,在没有任何网络请求的情况下,把主播的声音即时转成了文字。这就是 LocalVocal 正在做的事情,只不过它的用户远不止耲乊群体:外语老师用它实时翻译教学内容,游戏主播用它生成双语字幕,听隐观众用它追踪直播对话,每一个使用场景都在重新定义“可及性”的边界。
LocalVocal 由独立开发者 Roy Shil 开发,最初只是一个简单的 OBS 音频过滤器。随着 Whisper 模型的开源和 whisper.cpp 的高效推理方案出现,作者将插件从理论原型打造了支持 100 种语言实时转写的生产级工具。截至 2026 年中,项目已累累超过 1500 颗 GitHub Stars,被 OBS 官方论坛列为精选资源,累计下载量持续殿升。
这个项目解决了一个真实的行业痛点:传统的直播字幕方案要么依赖昒贵的云服务(如 rev.ai、Otter.ai),要么依赖不够准确的本地识别引擎。LocalVocal 通过 whisper.cpp 实现了在主播本地机器上运行推理——无需联网、无云费用、无数据隐私风险,同时保证了接近云端服务的识别准确率。
LocalVocal 的功能矩阵远比“语音转文字”这一句话丰富。拆解来看,它包含以下核心能力:
实时语音转写(STT):基于 OpenAI Whisper 模型,通过 whisper.cpp 高效推理。插件内置 Tiny.en 模型,首次启动自动下载其他 GGML 格式模型(从 tiny 到 large-v3 共 7 档),也支持用户自行加载自定义 GGML 文件。转写延迟在 2-5 秒区间(取决于硬件和模型大小)。
实时翻译:插件不只有 STT,还内置了翻译管线。支持三种翻译模式:(1) Whisper 内置的英译能力;(2) CTranslate2 驱动的神经机器翻译(NMT),可译为任意目标语言;(3) DeepL / OpenAI 等云端翻译 API 对接。用户可以根据预算和隐私需求自由选择:纯本地、纯云端、或混合模式。
字幕输出路由:转写和翻译结果可以通过多种渠道输出——
这种多出口设计使得 LocalVocal 成为了一个真正的“字幕工作台”,而非单一功能的工具。
过滤与替换:支持基于正则表达式的文本过滤和替换,可用于屏蔽违禁词、插入品牌水印、规范化格式。
分段转写(Partial Transcriptions):直播场景下,用户可以选择在字幕区域实时显示不完整片段(边识别边显示),给观众“正在听”的流畏感,而非等到完整句子结束才一次急出字幕。
从代码结构来看,LocalVocal 是一个标准的 OBS Studio 插件(C/C++),核心文件组织如下:
src/plugin-main.c:OBS 插件入口,模块初始化和注册src/transcription-filter.c/cpp:转写过滤器核心逻辑,处理音频帧输入src/transcription-filter-callbacks.cpp:OBS 过滤器回调,处理 OBS 事件循环src/transcription-filter-properties.cpp:OBS UI 属性面板(设置页面的 C++ 实现)src/transcription-utils.cpp:转写结果的格式化、聚合、去重逻辑src/whisper-utils/:whisper.cpp 封装层,含模型加载、推理调用、后处理src/translation/:翻译管线,含 CTranslate2 本地翻译和云端 API 桥接deps/:第三方依赖(whisper.cpp、CTranslate2、ICU 等)whisper.cpp 封装策略是本项目最关键的技术决策。whisper.cpp 本身是一个纯 C/C++ 的 Whisper 推理框架,支持 GGML 量化格式,能在 CPU 和各类 GPU 上高效运行。LocalVocal 并未简单调用现成二进制,而是自行封装了 whisper.cpp 的接口,并在之上构建了:
动态后端选择:运行时检测系统可用硬件(CUDA/ROCm/Metal/Vulkan/SSE4.2),自动选择最优推理后端。如果某个后端初始化失败(比如 Metal 驱动问题),静默跳过而非崩溃。
音频帧缓冲管理:OBS 以 48kHz 采样率持续输入音频流,插件需要自行做分帧(通常 30 秒窗口)、重叠处理,避免句子被硬切断。
多模型管理:支持下载和管理多个 Whisper 模型实例,通过 UI 动态切换,支持 GGML 外部文件导入。
翻译管线 方面,CTranslate2 用于本地 NMT 推理(可选依赖),同时插件预留了云端 DeepL / OpenAI 的 HTTP 桥接接口。这种“本地优先、云端可选”的架构给了用户充分的隐私和成本权衡空间。
构建系统 使用 CMake + CMakePresets,支持三种平台(Windows/macOS/Linux)的多加速后端构建,并配有 Flatpak 打包脚本实现 Linux 跨发行版分发。CI/CD 管道通过 GitHub Actions 构建各平台安装包(Windows .exe Installer、macOS .pkg、Linux .deb)。
LocalVocal 在硬件支持上展现了惊人的广度,这是其他同类开源项目少见的:
| 平台 | 后端 | 适用场景 |
|---|---|---|
| Windows/macOS/Linux (通用) | CPU (SSE4.2/AVX/AVX2/AVX512) | 无独显的办公电脑 |
| Windows (NVIDIA) | CUDA 12.8+ | RTX 系列游戏卡 / 专业卡 |
| Linux (AMD) | ROCm + hipBLAS | AMD RDNA2+ 显卡 |
| macOS (Apple Silicon) | Metal / CoreML | M1/M2/M3/M4 Mac |
| 跨平台通用 | Vulkan / OpenCL | 集显或非主流独显 |
| macOS | Accelerate (CPU矩量库) | 配合 CPU 后端加速 |
内置的动态后端选择机制,使得即使在“generic”通用版本中,用户无需任何配置也能获得最优性能——插件会自动检测 CPU 指令集(从 SSE4.2 到 AVX512 到 AMX)并选择最佳二进制路径。
对于普通用户,LocalVocal 的上手路径非常友好:下载对应平台的 .exe/.pkg/.deb 安装包 -> 安装 -> 启动 OBS -> 在音频源添加“LocalVocal 转写过滤器” -> 选择语言和模型 -> 运行。零编程经验即可完成部署,首次运行时插件会自动下载默认的 Tiny.en 模型,延迟极低,适合尚本。
深度用户则可以解锁完整能力:切换到 large-v3 模型提升准确率、启用 CUDA/Metal 加速、配置 RTMP 字幕流推送、接入 DeepL API 实现实时翻译、自定义 GGML 模型。上手门槛的弹性是本项目的一大优势。
不过有一点值得注意:macOS Generic 版本默认使用 Metal 后端,若 Metal 初始化失败(如某些 M1 Mac 上的兼容性问题),插件会静默退回到 CPU 模式,用户可能感知不到性能下降。作者在文档中明确建议用户在“Whisper 后端配置”设置中手动确认当前使用的后端。
LocalVocal 也不是完美的解决方案。首先,Whisper 的幻觉问题(hallucination) 在直播场景下尤为突出——当主播停顿或背景有噪音时,Whisper 可能产生完全不存在内容的“幻彩字幕”,需要用户手动启用过滤规则或调高语音置信度阈值。
其次,**实时翻译质量参差麻齡。**Whisper 内置的翻译功能仅支持英译,对其他语言对无u80fd为力;CTranslate2 本地 NMT 模型需要额外下载且质量取决于模型大小;只有 DeepL/OpenAI 云端翻译能达到接近人工翻译水准,但需要付费且失去隐私优势。
第三,OBS 版本依赖。插件要求 OBS Studio 29.0 及以上,旧版本 OBS 用户无法使用。虽然这保证了稳定性,但也限制了部分企业用户(他们可能运行着固定版本的 OBS 而不愿升级)。
最后,模型大小与准确率的权衡。Tiny 模型(~75MB)速度最快但准确率有限,Large-v3 模型(~3GB)准确率最高但实时性下降。用户需要在速度和质量之间反复调试,找到适合自己的平衡点。
LocalVocal 的存在折射出一个更大的趋势:**在 AI 能力下沉到本地设备的过程中,隐私和成本正在被重新定义。**过去,实时语音转写是云端专属能力(Siri、Deepgram、Google Speech);现在,whisper.cpp 让一颗消费级 CPU 就能跑出接近云端质量的转写。LocalVocal 把这个能力嵌入了全球最大的直播录制工具 OBS 中,等于给每一个 OBS 用户都发了一张“免费字幕工作台”的入场券。
从开源生态观察看,LocalVocal 还带动了 whisper.cpp 的多后端优化——它的 CI 管道实降在持续验证 whisper.cpp 在 CUDA/ROCm/Metal/Vulkan 等各后端的可用性,形成了“插件项目促进底层框架完善”的正向循环。这也是开源社区最令人着迷的部分:一个开发者的个人需求,最终变成了整个行业的公共基础设施。
目前项目活跃度较高(最近推送:2026年5月),仍有 54 个 open issues 表明功能疏代仍在进行中。对于需要为直播、会议、教学视频添加实时字幕的用户来说,LocalVocal 无疑是最值得关注的开源方案之一。