讲师中心 微信公众号
AI工具推荐 视频效率加速

直播间话术巡检-windows

Polar Sponsor
爱发电 赞助
.NET 9.0

直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。

live-script-monitor-win — 直播话术巡检系统 (Windows 版)

功能概述

live-script-monitor-win — 直播话术巡检系统 (Windows 版)是一项面向实际任务的技能,主要用于实时采集直播音频 → ASR 语音转写 → 关键词检测 → 场景自动切换 → 告警推送 → 大屏可视化;一键启动 (核心功能);

核心要点

  • 双击 start_windows.bat 即可一键启动!
  • 脚本会自动完成:;
  • 检查 Python 环境(需预先安装 Python 3.10+);

使用与执行

创建 Python 虚拟环。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

live-script-monitor-win — 直播话术巡检系统 (Windows 版)

实时采集直播音频 → ASR 语音转写 → 关键词检测 → 场景自动切换 → 告警推送 → 大屏可视化。

一键启动 (核心功能)

双击 start_windows.bat 即可一键启动!

脚本会自动完成:

  1. 检查 Python 环境(需预先安装 Python 3.10+)
  2. 创建 Python 虚拟环境 + 安装依赖(含国内镜像源降级)
  3. 检查并自动安装 FFmpeg(winget → imageio-ffmpeg 多级降级)
  4. 检查 VB-Cable 虚拟声卡(需手动安装,见下文)
  5. 启动巡检系统

启动后打开浏览器访问:http://localhost:9999

首次使用前需自行安装的组件

本 Skill 包不含 FFmpeg、VB-Cable 等大型二进制依赖,首次使用需手动安装以下组件:

1. Python 3.10+(必须)

winget install Python.Python.3.12

或从 https://www.python.org/downloads/ 下载,安装时勾选 "Add Python to PATH"。

2. VB-Cable 虚拟声卡(采集系统音频必须)

  1. 访问 https://vb-audio.com/Cable/
  2. 下载 VBCABLE_Setup_x64.exe
  3. 以管理员身份运行安装程序
  4. 安装后重启电脑
  5. 系统声音设置 → 输出设备选「CABLE Input (VB-Audio Virtual Cable)」

没有 VB-Cable 也可以启动系统,但无法采集系统音频。

3. FFmpeg(采集音频必须,启动脚本会自动安装)

启动脚本 start_windows.bat 会自动尝试安装 FFmpeg(winget 或 imageio-ffmpeg),无需手动操作。如自动安装失败,请手动安装:

winget install Gyan.FFmpeg

或从 https://www.gyan.dev/ffmpeg/builds/ 下载,将 ffmpeg.exe 放到 toolsffmpeg 目录。

4. 阿里云 ASR 密钥(语音识别必须)

  1. 阿里云控制台开通「智能语音交互」服务
  2. 创建项目,获取 AppKey
  3. 创建 AccessKey(需 AliyunNLSFullAccess 权限)
  4. 编辑 scripts/config.yaml,填入你的密钥:
aliyun_asr:
  enabled: true
  app_key: "你的AppKey"
  access_key_id: "你的AccessKeyId"
  access_key_secret: "你的AccessKeySecret"

也可以通过大屏管理后台(右上角齿轮)在线配置。

系统架构

live-script-monitor-win/
├── start_windows.bat         # ← 一键启动脚本 (双击运行)
├── check_env.bat             # 环境检查脚本 (只检查不安装)
├── assets/dashboard/         # 大屏前端 (Vue.js 3 SPA)
│   ├── index.html           # 主页面 (含弹窗管理后台)
│   └── vue.global.prod.js   # Vue 本地文件 (不依赖 CDN)
├── scripts/                  # Python 后端
│   ├── main.py              # 主入口 (LiveMonitorApp)
│   ├── config.yaml          # 配置文件 (含场景/规则/ASR密钥)
│   ├── audio_capture.py     # 音频采集 (跨平台: BlackHole/VB-Cable/WASAPI)
│   ├── asr_base.py          # ASR 抽象基类 + 工厂方法
│   ├── asr_aliyun.py        # 阿里云 ASR 驱动 (WebSocket + httpx Token)
│   ├── asr_iflytek.py       # (预留) 科大讯飞 ASR 驱动
│   ├── asr_tencent.py       # (预留) 腾讯云 ASR 驱动
│   ├── asr_baidu.py         # (预留) 百度 ASR 驱动
│   ├── rule_engine.py       # 规则引擎 (关键词检测/场景切换/告警)
│   ├── dashboard_server.py  # HTTP+WS 大屏服务 (FastAPI+Uvicorn)
│   ├── setup_env.py         # 环境检查脚本 (Python 版)
│   ├── test_local.py        # 本地测试脚本 (无需 ASR/音频)
│   ├── requirements.txt     # Python 依赖
│   └── .venv/               # Python 虚拟环境 (start_windows.bat 自动创建)
├── tools/                    # FFmpeg 存放目录 (自动下载)
│   └── ffmpeg/
│       └── ffmpeg.exe       # (启动脚本自动安装)
├── recordings/               # 录制输出目录
├── logs/                     # 日志目录
└── references/               # 参考文档

数据流

系统音频 ──→ VB-Cable 虚拟声卡 ──→ FFmpeg(dshow)
  ──→ PCM s16le 16kHz mono ──→ AudioCapture._emit_audio()
  ──→ ASR.send_audio() ──→ 阿里云 NLS WebSocket
  ──→ TranscriptionResultChanged(中间结果) ──→ 大屏流式显示 + 规则引擎
  ──→ SentenceEnd(最终结果) ──→ 大屏历史记录 + 规则引擎全量检查
  ──→ 关键词命中 ──→ 场景切换 + 告警判定 ──→ 大屏推送告警

VB-Cable 虚拟声卡配置 (重点)

1. 安装 VB-Cable

  1. 访问 https://vb-audio.com/Cable/
  2. 下载 VBCABLE_Setup_x64.exe
  3. 以管理员身份运行安装程序
  4. 安装后重启电脑

2. 配置音频路由

打开 Windows 系统设置 → 声音:

  1. 输出设备选「CABLE Input (VB-Audio Virtual Cable)」
    • 这样系统声音会发送到 VB-Cable 虚拟设备
  2. 输入设备保持你的麦克风不变

或者使用「立体声混音」替代方案:

  • 系统托盘 → 声音 → 录制 → 右键空白处 → 显示禁用设备 → 启用「立体声混音」

3. 验证

# 列出 dshow 设备,确认 CABLE Output
ffmpeg -list_devices true -f dshow -i dummy

# 测试抓 3 秒音频
ffmpeg -f dshow -i "audio=CABLE Output (VB-Audio Virtual Cable)" -f s16le -ac 1 -ar 16000 -t 3 test.raw

4. FFmpeg 命令 (Windows)

系统自动构建的命令:

ffmpeg -f dshow -i "audio=CABLE Output (VB-Audio Virtual Cable)" 
  -f s16le -acodec pcm_s16le -ac 1 -ar 16000 
  -loglevel error pipe:1
  • dshow — Windows DirectShow 音频采集
  • audio=CABLE Output (VB-Audio Virtual Cable) — VB-Cable 虚拟声卡完整设备名
  • s16le — 16 位小端 PCM
  • ac 1 — 单声道
  • ar 16000 — 16kHz 采样率(阿里云 ASR 要求)

阿里云 ASR 配置

前置条件

  1. 阿里云控制台开通「智能语音交互」服务
  2. 创建项目,获取 AppKey
  3. 创建 AccessKey(需 AliyunNLSFullAccess 权限)
  4. 确认区域(默认 cn-shanghai)

config.yaml 配置

asr_provider: aliyun
aliyun_asr:
  enabled: true
  app_key: "你的AppKey"
  access_key_id: "你的AccessKeyId"
  access_key_secret: "你的AccessKeySecret"
  url: "wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1"
  params:
    format: pcm
    sample_rate: 16000
    enable_intermediate_result: true
    enable_punctuation_prediction: true
    enable_inverse_text_normalization: true

也可以通过大屏管理后台(右上角齿轮)在线配置,保存后自动重启。

Token 获取方式

使用 httpx 直接调用阿里云 CreateToken REST API,通过 HMAC-SHA1 签名鉴权。不需要安装 aliyun-python-sdk-core。

音频采集配置

config.yaml 参数

streamer:
  capture_mode: system_audio    # 推荐值
  audio:
    sample_rate: 16000          # 阿里云 ASR 要求 16kHz
    channels: 1                 # 单声道
    format: s16le               # 16位小端 PCM
    chunk_seconds: 1            # 每片 1 秒,越小延迟越低

支持的采集模式

模式 说明 适用场景
system_audio 系统声卡捕获 (推荐) Windows 直接采集系统输出音频
stream 拉取 RTMP/FLV 直播流 有推流地址时
hybrid 先试拉流,失败切系统声卡 不确定推流地址是否可用
watch 监听录制目录文件 配合 DouyinLiveRecorder 使用

静音检测

_emit_audio() 会采样检测非零字节比例:

  • 0-1% 非零 — 可能无音频播放或路由未配好,打印 WARNING
  • 正常播放时 — 非零比例通常 40-100%

注意:没有声音播放时 VB-Cable 抓到全零是正常现象,不是 Bug。

规则引擎

场景切换 (auto_keyword 模式)

config.yaml 中 app.scene_mode: auto_keyword 时启用关键词驱动场景切换:

  • detect_scene_by_keywords 基于 switch_keywords 精确子串匹配
  • 阈值:新场景得分 >= 1 且 > 当前场景得分即可切换

告警规则类型

类型 说明 触发条件
absence_alert 缺失告警 时间窗口内关键词命中次数 < min_hits
frequency_alert 频次告警 时间窗口内核心短语命中次数 < min_hits

告警去重:同一 scene_id + rule_type + window 组合在 5 分钟内只触发一次。

大屏与管理后台

  • 大屏地址:http://localhost:9999
  • 管理后台:大屏右上角齿轮图标 → 弹窗
  • 保存配置后自动热重启(os.execv 原地重启)
  • 前端 saveSystemConfig() 自动设 enabled: true

前端技术栈

  • Vue.js 3 (本地引用 vue.global.prod.js,不依赖 CDN)
  • WebSocket 实时推送
  • 暖色调 UI

本地测试 (无需 ASR/音频)

cd scripts
.venvScriptspython.exe test_local.py

模拟直播话术数据,验证大屏展示和规则引擎工作正常。

故障排查

部署检查清单

  1. 端口 9999 是否 LISTENING (netstat -an | findstr 9999)
  2. 日志中是否有「阿里云 ASR 识别已开始」
  3. 日志中是否有「已发送 N 个音频块」
  4. 日志中是否有「ASR 中间结果」或「ASR 句子结束」
  5. 检查 config.yaml 是否有真实密钥(非占位符)
  6. 检查 capture_mode 是否为 system_audio
  7. 检查 FFmpeg 是否在 PATH 中 (ffmpeg -version)

常见问题速查

问题 原因 修复
FFmpeg 报错退出 (code=1) dshow 设备名不完整 确保 audio_capture.py 提取完整设备名含 (VB-Audio Virtual Cable)
Vue.js 白屏 vue.global.prod.js 缺失 确认 assets/dashboard/ 目录有该文件
ASR error 40000004 FFmpeg 没采集到音频导致 ASR 空闲超时 检查 VB-Cable 是否安装、音频是否在播放
ASR 填了正确 key 但不生效 aliyun_asr.enabled 仍为 false 前端 saveSystemConfig 自动设 enabled:true
ASR 连接成功但无转写文字 TranscriptionResultChanged 过滤条件过严 去掉长度过滤,有 result 就输出
VB-Cable 抓到全零数据 当前没有声音在播放 正常现象,播放音频时会有非零数据
FFmpeg 报找不到设备 VB-Cable 未安装或名称不匹配 检查 dshow 设备列表
capture_mode=hybrid 先拉流等 15 秒 拉流必失败才降级 config.yaml 改 capture_mode: system_audio
场景识别不准 switch_keywords 不匹配实际话术 根据实际直播话术调整 config.yaml
告警规则不执行 process_text 只在 final 结果时调用 partial 结果也送入规则引擎
告警被 dedup 阻止 dedup 检查在告警判定之前 dedup 移到告警判定之后
页面报 {"error":"dashboard not found"} static_dir 路径不对 config.yaml: static_dir: ../assets/dashboard
FFmpeg 不在 PATH 安装后未刷新环境变量 重启终端或电脑
中文乱码 cmd 编码问题 start_windows.bat 已设置 chcp 65001

更新日志

v2.2.0 (2026-06-23) — Skill 分发版

轻量化打包

  • 移除 .venv(121MB)、tools/ffmpeg/ffmpeg.exe(87MB)、VBCABLE_Driver_Pack45.zip(1.3MB)
  • Skill 包总大小 < 1MB
  • 所有运行时依赖由 start_windows.bat 自动下载安装
  • config.yaml 密钥替换为占位符,用户自行填入

Windows 适配修复

  • 修复 VB-Cable dshow 设备名不完整导致 FFmpeg 退出的 Bug
  • audio_capture.py 自动提取完整设备名 CABLE Output (VB-Audio Virtual Cable)
  • 修复 Windows GBK 编码导致 FFmpeg 设备列表崩溃的问题

v2.1.0 (2026-06-22) — Windows 版

  • 创建 start_windows.bat 一键启动脚本
  • 自动检查 Python/FFmpeg/VB-Cable 环境
  • 自动创建虚拟环境并安装 Python 依赖
  • 支持使用国内镜像源安装依赖(网络问题自动降级)
  • 适配 Windows 路径分隔符和命令语法

v2.0.0 — Mac 版基线

  • 支持 macOS/Windows 跨平台音频采集
  • 阿里云 ASR 实时语音转写
  • 关键词检测 + 场景切换 + 告警推送
  • FastAPI + WebSocket 大屏
目录

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

相关专题

更多
Windows查看电脑主板信息合集
Windows查看电脑主板信息合集

本专题整合了Windows查看电脑主板信息相关内容,阅读专题下面的文章了解更多详细内容。

144

2026.03.25

Windows命令提示符
Windows命令提示符

本专题整合了Windows命令提示符相关操作教程,阅读专题下面的文章找到解决方法。

194

2026.03.24

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

686

2026.01.15

Windows快速搭建Java开发环境
Windows快速搭建Java开发环境

本专题整合了Windows中快速搭建Java开发环境教程,阅读专题下面的文章了解更多详细内容。

441

2025.10.24

windows更新被禁用怎么打开
windows更新被禁用怎么打开

开启被禁用的 Windows 更新:方法一:服务管理器中将其设置为自动启动并启动服务;方法二:Windows 设置中取消暂停更新;方法三:使用命令提示符启动 wuauserv 和 cryptSvc 服务并重启计算机。想了解更多相关内容,请阅读专题下面的文章。

3642

2025.03.27

windows副本不是正版怎么解决
windows副本不是正版怎么解决

此windows副本不是正版的解决办法:1、执行重新激活;2、使用命令提示符;3、调整服务设置;4、使用激活工具;5、更新系统。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1479

2024.08.23

windows打印机不打印的原因
windows打印机不打印的原因

windows打印机无法打印可能是由连接、驱动程序、打印机设置、文档、墨水耗尽、纸张或硬件故障引起的。想了解更多windows的相关内容,可以阅读本专题下面的文章。

3374

2024.04.15

windows驱动精灵作用
windows驱动精灵作用

Windows驱动精灵是一个免费的驱动程序管理工具,可帮助您轻松查找、下载和安装丢失或过时的驱动程序。想了解更多驱动精灵的相关内容,可以阅读本专题下面的文章。

2978

2024.04.15

linux与windows有哪些主要区别
linux与windows有哪些主要区别

linux和windows的主要区别有:1. 内核:linux使用开源内核,而windows使用专有内核;2. 许可证和成本:linux大多免费开源,而windows需要购买许可证等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6389

2024.04.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn