Files
operating-room-monitor-server/voice-confirmation-web/README.md
2026-05-21 15:48:03 +08:00

3.7 KiB
Executable File
Raw Blame History

手术室耗材 — 语音确认(部署平台)

这里是语音确认浏览器端的唯一静态载体:与监控 API 分宿,复制本目录即可独立分发(index.html + voice_app.jsTailwind 使用 CDN

  • 功能:播放 TTS、并行录音、POST .../resolve 上传 WAVWebSocket 收 voice_assignment / voice_pending 等。协议见 docs/客户端手术通信接口说明.md
  • 界面:默认 术间模式 仅突出状态与用人话表述的结果;接口地址、原始 JSON 与详细日志在 「高级设置」 内。首次打开带查询参数 ?debug=1 时会自动展开高级区(并记住展开状态)。
  • 禁止使用 file:// 打开(麦克风与跨域异常);必须通过下文 HTTP(S) 方式访问。

推荐:在本目录直接用 start_http 起服务

仅需目标机装有 Python 3

系统 操作
macOS / Linux 首次:chmod +x start_http.sh,然后 ./start_http.sh(端口可传第一参数,默认 8080
Windows 运行 start_http.bat,端口可传第一参数(默认 8080

环境变量 VOCH_HTTP_BIND:默认 0.0.0.0,用于同一局域网内的语音终端访问;若只允许本机调试,可设为 127.0.0.1(请配合防火墙与访问控制)。

浏览器打开控制台打印的局域网 URLBase URL 指向监控 API示例 http://192.168.1.100:38080)。如果语音页 URL 是 http://192.168.1.100:8080/,页面首次加载会默认推导 API 为 http://192.168.1.100:38080,并据此连接 ws://192.168.1.100:38080/client/voice-terminals/ws?...

仓库根目录的封装脚本(仅此仓库内)

在仓库根目录为开发便利提供的入口,行为与上文一致:

./start_voice_confirmation_web.sh --plain [端口]   # → 等价执行本目录 start_http.sh
./start_voice_confirmation_web.sh --single [端口]  # → 生成 dist/ 后等价执行 dist/start_http.sh
./start_voice_confirmation_web.sh [端口]           # livereload需 uv sync --group dev

Windowsstart_voice_confirmation_web.bat。一键联调 ./start_all.shPLAIN_STATIC=1 时会后台调用本目录的 start_http.sh(监听 VOICE_HOST:VOICE_PORT,默认 0.0.0.0:8080)。

热重载也可直接:

uv run --group dev python scripts/dev_static_livereload.py --root voice-confirmation-web --host 0.0.0.0 -p 8080

--root 须为本目录的路径或名称(在仓库根执行时即用 voice-confirmation-web)。)

单 HTML 分发(dist/

仓库根执行:

python3 scripts/bundle_voice_confirmation_single_html.py

生成 dist/index.html(内联脚本),并拷贝 start_http.*dist/。对外只发包 dist/ 即可;该目录默认被 .gitignore 忽略,需在本地或 CI 中执行上述命令生成。

生产 / 大规模

  • 将本目录整体或 dist/ 交给 Nginx / Caddy / 对象存储 + CDN;非 localhost 时通常需要 HTTPS 才能稳定使用麦克风API 使用 httpswss
  • API 发布:监控 API 默认由仓库根目录的 ./deploy.sh 在宿主机监听 0.0.0.0:38080,浏览器 Base URL 填 http://<监控服务局域网IP>:38080
  • CORS:独立部署的语音页跨域访问 API 时,后端需设置 DEMO_CORS_ENABLED=true;正式部署建议在 .env 里将 DEMO_CORS_ORIGINS 收窄为具体来源,例如 http://<语音页局域网IP>:8080

scripts/demo_client 的关系

Demo 页(默认 :38081负责流程联调不含语音确认 UI。语音闭环只在本目录dist/ 页面完成。