diff --git a/whisper/compose.yaml b/whisper/compose.yaml new file mode 100644 index 0000000..b9d6807 --- /dev/null +++ b/whisper/compose.yaml @@ -0,0 +1,25 @@ +services: + whisper-live: + image: hwdsl2/whisper-live-server:latest + container_name: whisper-live + restart: unless-stopped + ports: + - "9097:9090" # WebSocket — real-time streaming clients + - "8071:8000" # REST API — OpenAI-compatible /v1/audio/transcriptions + volumes: + - whisper-live-data:/var/lib/whisper-live # persists downloaded models + env_file: + - whisper-live.env + # --- ADDED FOR INTEL iGPU PASSTHROUGH --- + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + - /dev/dri/card1:/dev/dri/card1 + # ---------------------------------------- + + # The 13700K has 8 P-cores; give the container access to all of them. + # Adjust cpuset if you want to reserve cores for other workloads. + cpuset: "0-15" # all 16 logical P-core threads + mem_limit: 6g # medium int8 needs ~2 GB; headroom for concurrency + +volumes: + whisper-live-data: diff --git a/whisper/whisper-live.env b/whisper/whisper-live.env new file mode 100644 index 0000000..09cb0f5 --- /dev/null +++ b/whisper/whisper-live.env @@ -0,0 +1,45 @@ +# whisper-live.env +# Configuration for hwdsl2/whisper-live-server on Intel Core i9-13700K (CPU-only) +# Copy this file to the same directory as docker-compose.yml before starting. + +# --- Model --- +# 'medium.en' is the sweet spot for CPU-only English meetings: +# accurate, comfortably real-time, ~1.5 GB RAM. +# Upgrade to 'large-v3-turbo' if accuracy is more important than latency; +# downgrade to 'small.en' if you find CPU usage too high. +WHISPERLIVE_MODEL=medium.en + +# --- Language --- +# Hardcode to 'en' to skip autodetection — saves ~100 ms per chunk. +# Change to 'auto' if your meetings include other languages. +WHISPERLIVE_LANGUAGE=en + +# --- Ports --- +WHISPERLIVE_PORT=9090 # WebSocket (streaming clients) +WHISPERLIVE_REST_PORT=8000 # REST API + +# --- Concurrency --- +# 1 simultaneous session is safest for real-time CPU-only use. +# Increase to 2 cautiously — each session competes for the same cores. +WHISPERLIVE_MAX_CLIENTS=1 + +# --- Session length --- +# 7200 seconds = 2 hours, suitable for a full meeting recording. +WHISPERLIVE_MAX_CONNECTION_TIME=7200 + +# --- Voice Activity Detection --- +# Keep enabled: VAD skips silence, which meaningfully reduces CPU load +# during pauses and cross-talk at a 12-person table. +WHISPERLIVE_USE_VAD=true + +# --- CPU threads --- +# The 13700K has 8 P-cores. Setting threads to 8 gives best single-session +# latency. If you raise MAX_CLIENTS to 2, drop this to 4. +WHISPERLIVE_THREADS=8 + +# --- Logging --- +WHISPERLIVE_LOG_LEVEL=INFO + +# --- Backend --- +WHISPER_BACKEND=openvino +