直播实时转写实操:字幕、口播预警、切片时间轴共用一份数据

直播直播语音转写OBS2026-10-09

一场两小时的直播结束,回放躺在硬盘里。想剪切片,得重新拖进度条,两小时的素材来回看三遍;想复盘哪句话讲得好,只能靠记忆;至于直播过程中有没有说出不该说的词,往往是等系统提示了才知道。

这些麻烦的根源是同一个:直播里的语音没有被结构化。画面录下来了,声音却是一团没法检索的东西。把两小时的人声转成一份带时间码的文字,字幕、口播预警、切片定位这三件事就能共用同一份数据。下面这条链路在 2026 年可以自己搭起来,用到的都是开源或免费工具。

一、先分轨录音,别让背景音乐混进人声

OBS 默认把麦克风、桌面音频、连麦声音混在一条轨道里录进文件。转写时,背景音乐和音效会被人声模型当成语音去猜,出来的文字里夹杂大量乱码,纠错的时间比自己听打还长。

改法不复杂:设置 → 输出 → 输出模式改为「高级」,在「录像」标签页勾选音轨 1 到 3。回到主界面,在音频混音器里对每个来源点齿轮图标 → 高级音频属性,把麦克风勾到音轨 1,桌面音频勾到音轨 2,连麦或音效留空。这样录出来的文件里嵌着多条独立音轨,后续用 FFmpeg 单独抽出第一轨做人声识别。

不想动录制设置的话,另一条路是装虚拟声卡。VB-Audio 的 VB-CABLE 和 VoiceMeeter 在 Windows 上都有免费版本,把麦克风信号同时复制一份给虚拟设备,OBS 照常录真实设备,转写程序去读虚拟设备。好处是不影响已有的直播工程和推流配置,代价是多一层音频路由,出问题时排查的地方变多。

麦克风增益顺手调一下。语音识别对削波失真比较敏感,音量条长期打到红色区域,识别率下降的幅度会比想象中明显。

二、选引擎:实时字幕和离线转写是两件事

做实时字幕要求低延迟、能持续吃音频流;做下播后的转写只要求准确和便宜。这两类需求对应的工具不一样,别拿一个方案硬扛。

工具授权方式中文表现硬件门槛适合的环节
FunASR(流式 Paraformer)阿里达摩院开源中文优化,流式延迟较低CPU 可跑小模型,有独显更稳直播间实时字幕
SenseVoice-SmallFunAudioLLM 开源多语种,附带情绪与事件标签8GB 显存可跑实时想顺带看语气和互动热度
faster-whisper基于 OpenAI Whisper 的开源实现中文标点偏弱,长音频稳定large 模型需要较好显卡下播后的整场转写
云端会议记录类服务商业,按量或订阅省心,准确率不错无内容不敏感、不要求实时
到 2026 年,消费级显卡跑流式中文识别已经不算门槛,一张几千块的卡加一块虚拟声卡就能在本地闭环。本地跑的另一个理由是内容:带货直播里会出现报价、供应链、库存这些信息,走云端服务要先把这部分想清楚。

具体的模型版本、显存占用和延迟指标,以各项目官方仓库的说明为准,更新频率不低。

三、把字幕推进直播画面

OBS 从 28 版本开始内置了 obs-websocket,在「工具 → WebSocket 服务器设置」里开启并设一个密码就能用。推荐的接法是:转写程序把识别结果写进一个本地文本文件,OBS 里新建「文本(GDI+)」源,勾选「从文件读取」,让 OBS 自己去刷新。比每识别一句就通过 WebSocket 改一次源属性要稳,不容易把 OBS 卡住。

真正影响观感的是断句,不是识别速度。流式模型按语音活动检测断句,句尾静音阈值设短了字幕会被切碎,设长了整句会滞后。直播间里 1.5 到 2.5 秒的滞后观众基本能接受,超过 3 秒就跟不上口播节奏了。前几场先在后台看回放,看字幕和口型的错位有多大,再回头调这个阈值。

四、口播违禁词提示:把同音字也算进去

先把平台规则中心当前版本的违禁表述整理成一份词库,再把自己被提示过的词补进去。每个类目的监管重点不一样,通用词库只能当底子。

匹配别用简单的字符串包含判断。主播口播和书面语差距很大,「最」可能被念成「贼」,「绝对」会吞音,直接比对会漏掉一大半。做一次拼音归一化能覆盖多数同音情况:

import pypinyin

BANNED = ["最", "第一", "绝对", "国家级"]

def norm(text): return "".join(pypinyin.lazy_pinyin(text))

def check(text): n = norm(text) for w in BANNED: if norm(w) in n: return w return None

这只是演示思路,实际用的时候词库要按业务分类管理,还要处理多音字带来的误报。提醒方式上,在 OBS 里放一个纯色块,命中时脚本让颜色变红;或者直接给你耳机里放一声提示音。后者更实用,主播的眼睛基本没空看角落的色块。

要说清楚的是,这套东西只能做事中提示和事后自查。平台判定会结合上下文、音画内容和商品信息,工具既不能替代人工把关,也不能保证某个说法一定安全。

五、下播之后:用时间码直接跳到切片位置

转写结果里每句话都带起止时间戳,剪辑时不用再拖进度条,直接在文本里搜关键词定位。想找讲某个尺码建议的片段,搜「一米六」就能跳到那一段。

挑片段的判断标准可以简化成两条:这一段有没有完整的信息点,主播的语气有没有起伏。再用 FFmpeg 的静音检测找出停顿位置,停顿密集的地方通常是主播在思考或者在回应弹幕,容易出真实反应:

ffmpeg -i mic.wav -af silencedetect=noise=-30dB:d=0.6 -f null -

确定好时间码之后批量切割:

ffmpeg -ss 00:42:10 -to 00:42:52 -i live.mp4 -c copy clip_01.mp4

-c copy 不重新编码,一条切片几秒钟就出来,代价是切点会对齐到最近的关键帧,开头可能差一两秒。要精确到帧就去掉这两个参数,导出速度会慢很多。切片数量多的时候,把这些命令写进一个脚本跑批更省事。

有一条不能省:切自己的直播没问题,切别人的直播需要拿到达人授权并在平台完成切片报备。这块规则各家平台都在收紧,动手前先去规则中心确认当前要求。

现在能动手的一件事

今天先把下一场直播的 OBS 输出模式改成「高级」,把麦克风和桌面音频分到两条音轨上录下来。这一步不改,后面所有转写、字幕、切片的工作都要多花几倍时间返工。录完之后用 FFmpeg 把第一轨单独抽出来,随便找个转写工具跑一遍,看看出来的文本里还有多少是背景音造成的乱码。

延伸学习

B 站搜索「OBS 多轨录音」「FunASR 流式识别部署」「faster-whisper 本地转写」,优先看 2025 年之后发布、带完整部署过程的长视频;抖音搜索「直播切片报备流程」,看平台官方账号发布的规则讲解。

视频来源网络,仅供学习参考,如有侵权请联系删除。

PREMIUM

需要完整版教程?

包含详细步骤、视频演示、提示词模板和可下载资料包。微信支付即时获取。

购买完整版 ¥29.90