功能概述
webchat-voice-proxy 是 OpenClaw 生态中的已废弃技能,曾用于为 WebChat 界面一键部署完整的本地语音输入栈。其核心能力包括:
- HTTPS Control UI:在 8443 端口提供自签名 TLS 的语音控制界面
- 语音转写代理:将
/transcribe请求转发至本地 faster-whisper 服务(默认 18790 端口) - WebSocket 透传:代理到网关的 WebSocket 连接(
ws://127.0.0.1:18789) - 语音按钮注入:向 Control UI 注入
voice-input.js,提供麦克风交互 - 实时 VU 表:按钮阴影/缩放随音量动态反馈
- 双模式录音:默认 Push-to-Talk(按住说话),支持双击切换为 Toggle 模式
- 键盘快捷键:
Ctrl+SpacePTT、Ctrl+Shift+M连续录音、Ctrl+Shift+B实时转写(Beta) - 多语言 UI:自动检测浏览器语言,内置英/德/中,支持自定义扩展
显著优点
1. 零配置自签证书:自动生成 TLS 证书,开箱即用
2. 用户级权限:无需 root,仅使用 systemd user 服务
3. 持久化部署:systemd 服务 + gateway hook 双保险,重启后自动恢复
4. 模块化设计:原功能已拆分为 webchat-https-proxy(代理层)与 webchat-voice-gui(UI 层),可独立维护
潜在缺点与局限
- ⚠️ 已废弃:官方已停止维护,建议迁移至拆分后的新技能或
webchat-voice-full-stack一站式方案 - 依赖较重:必须预先部署
faster-whisper-local-service作为转写后端 - 证书信任问题:自签名证书导致浏览器首次访问需手动确认
- 网络暴露风险:默认 localhost 安全,但
VOICE_HOST=<LAN-IP>会将代理暴露给整个局域网 - 浏览器兼容性:依赖 MediaRecorder API,旧版浏览器可能不支持
适合人群
- 已使用 OpenClaw WebChat 且需本地离线语音输入的高级用户
- 愿意自行维护 faster-whisper 后端的开发者
- 重视隐私、拒绝云 STT 服务的用户
- 新用户请直接安装:
webchat-voice-full-stack(推荐)或分别安装webchat-https-proxy+webchat-voice-gui
常规风险
| 风险类型 | 说明 |
|---------|------|
| 证书安全 | 自签名证书无 CA 信任,存在中间人攻击理论可能(仅限局域网暴露场景) |
| CORS 配置 | `VOICE_ALLOWED_ORIGIN` 配置不当可能导致跨域滥用 |
| 服务持久化 | systemd 服务与 gateway hook 修改系统配置,需用 `uninstall.sh` 彻底清理 |
| 依赖失效 | faster-whisper 服务未运行时,语音功能完全不可用 |