核心功能
webchat-voice-proxy 是一个专为 OpenClaw WebChat 设计的语音输入增强技能,通过在浏览器端集成麦克风按钮,实现完全本地的语音转文字功能。该技能采用 HTTPS/WSS 反向代理架构,将浏览器 MediaRecorder 捕获的音频流代理至本地 faster-whisper 服务(端口 18790)进行转录,无需调用任何云端 API,彻底消除 API 成本与隐私泄露风险。
显著优点
1. 完全本地化:依赖 faster-whisper 实现离线转录,音频数据不出本机,适合隐私敏感场景
2. 零持续成本:一次部署后无 API 调用费用,适合高频使用
3. 专业交互设计:支持 Push-to-Talk(按住说话)与 Toggle(点击开关)双模式,双击切换;配备实时 VU 表(音量可视化)与键盘快捷键(Ctrl+Space PTT、Ctrl+Shift+M 连续录制)
4. 多语言 UI 内置:自动检测浏览器语言,支持英/德/中三语,可通过 localStorage 强制指定或扩展自定义语言
5. 持久化安全部署:通过 systemd 用户服务实现开机自启,配合网关 hook 机制确保更新后自动重新注入
潜在局限与风险
| 类别 | 说明 |
|------|------|
| **依赖链复杂** | 必须预先部署 `faster-whisper-local-service`,需 Python 3.9+ 及 CUDA/CPU 推理环境,GPU 加速配置门槛较高 |
| **证书信任问题** | 自签名 TLS 证书导致浏览器首次访问必现安全警告,需手动例外处理 |
| **网络暴露风险** | 默认绑定 127.0.0.1,若通过 `VOICE_HOST` 暴露至 LAN,则网关 WebSocket 与转录端点同时对全网开放 |
| **系统修改深度** | 需修改 npm 全局安装的 Control UI 文件、注入 systemd 服务、修改网关配置,卸载不彻底可能残留 hook |
| **实时性限制** | faster-whisper 为分段转录,非流式实时输出,Ctrl+Shift+B「实时转录」仍为 beta 功能 |
适合人群
- 高频使用 OpenClaw WebChat 且偏好语音输入的开发者/高级用户
- 对数据隐私有严格要求、拒绝云端 STT 服务的用户
- 具备 Linux 系统管理基础、能独立排查 systemd/Python 依赖问题的技术用户
- 已在运行 faster-whisper 或愿意配置本地 GPU 推理环境的用户
常规风险
- 配置漂移:网关
allowedOrigins与 HTTPS 代理VOICE_HOST不匹配将导致 CORS/origin 错误 - 服务耦合故障:faster-whisper 服务异常会直接阻断语音功能,需掌握
systemctl --user status openclaw-transcribe.service诊断 - 浏览器权限:首次使用需授权麦克风,部分安全环境下可能受限