#!/usr/bin/env bash # 纯静态语音确认页:必须用 HTTP(S) 打开(勿用 file://),否则麦克风等行为异常。 # 用法: ./start_http.sh [端口],默认 8080;监听地址由环境变量 VOCH_HTTP_BIND 指定,默认 0.0.0.0。 set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)" cd "$DIR" PORT="${1:-8080}" BIND="${VOCH_HTTP_BIND:-0.0.0.0}" LAN_IP="$(python3 - <<'PY' import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: s.connect(("8.8.8.8", 80)) print(s.getsockname()[0]) except OSError: print("") finally: s.close() PY )" echo "语音确认静态页监听: ${BIND}:${PORT}" if [[ "${BIND}" == "0.0.0.0" || "${BIND}" == "::" ]]; then echo "本机访问: http://127.0.0.1:${PORT}/" if [[ -n "${LAN_IP}" ]]; then echo "局域网访问: http://${LAN_IP}:${PORT}/" echo "服务端 Base URL 常用: http://${LAN_IP}:38080" fi else echo "访问: http://${BIND}:${PORT}/" fi echo "Ctrl+C 停止" exec python3 -m http.server "$PORT" --bind "$BIND" --directory "$DIR"