直播间话术巡检
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_be816cdc/live-script-monitor。
技能介绍
要解决什么问题
直播带货、客服互动等场景里,话术是否合规、关键引导是否说到、违规用语是否出现,往往只能靠人工盯屏或事后回放。音频流一旦开始,漏检一句就可能带来投诉或处罚;多场景(开场、讲解、促单、客服)之间切换也快,单靠记忆很难对齐「当前该说什么、不该说什么」。
直播间话术巡检把这条链路做成可观测的流水线:从音频入口到规则判定再到可视化与告警,让运维或合规同学能实时看到转写结果和命中情况,而不是事后补锅。
系统如何工作
整体数据流可以概括为:音频采集 → 阿里云 ASR 流式转写 → 规则引擎 → 场景切换 / 告警 → WebSocket 推送到大屏。
- 音频采集:
config.yaml里streamer.capture_mode支持system_audio(系统声卡,文档推荐)、stream(RTMP/FLV)、hybrid、watch(监听录制目录)。macOS 常用 BlackHole + 多输出设备;Windows 可用 VB-Cable 或立体声混音。采集侧会做静音检测(非零字节比例),便于判断路由是否配好。 - ASR:通过 WebSocket 送裸 PCM(如 16kHz 单声道),处理
TranscriptionResultChanged(流式中间结果)与SentenceEnd(句末全量),中间结果也会进规则引擎(is_partial=True),大屏可逐字更新。 - 场景与规则:
app.scene_mode: auto_keyword时,用switch_keywords做子串匹配驱动场景切换;rules[]独立配置告警关键词,支持缺失告警、频次、组合等类型。关键词匹配以精确子串为主,长度 ≥3 的可做有限模糊(max_l_dist=1)。 - 大屏:场景指示、告警灯(绿/黄/红)、告警历史、关键词最近命中时间等,由后端经 WebSocket 推送。
适用边界与注意点
- 依赖阿里云智能语音(AppKey、AccessKey、区域等),Token 走 REST + HMAC-SHA1,与具体推流平台无强绑定,但你要自己解决「系统里能听到的那路音频」怎么送进 FFmpeg。
- macOS 上麦克风权限挂在启动 Python 的父应用上;BlackHole 无播放时抓到全零是正常现象,不是采集 Bug。
hybrid会先尝试拉流并可能空等超时,不确定推流地址时文档建议直接用system_audio。- 场景识别准确度高度依赖
switch_keywords是否贴合真实话术;告警去重、partial/final 处理顺序已在 v2 中按「先判定告警再 dedup」等方式调整,升级旧配置时需对照 changelog。
使用场景
- 带货或客服直播进行中,旁路采集系统播放的音频,把主播话术实时转写并高亮命中违规或敏感关键词
- 按开场、讲解、促单、客服等段落维护 switch_keywords,在话术切换时自动更新大屏上的场景编号与名称
- 在固定时间窗口内统计「欢迎」「下单引导」等词出现次数,未达阈值时触发缺失告警并写入历史面板
- 推流地址不稳定或只有本机播放器出声时,用 system_audio 采集声卡,避免 hybrid 拉流空等导致巡检延迟
适合人员
- 驻场盯直播合规、需要在违规用语说出口当下就收到红灯告警并留痕的质控或风控
- 负责 BlackHole/VB-Cable、FFmpeg 采集与阿里云 ASR 密钥配置,并查麦克风权限与静音检测日志的直播技术运维
- 根据真实口播维护 config.yaml 里场景 switch_keywords 与各条 rules,并调阈值避免误报漏报的直播运营负责人
- 需要把 ASR 中间结果推到 WebSocket 大屏、给值班同学看逐字转写与关键词最近命中时间的值班组长