Per-worker OpenVINO CPU runs the MetricGAN BLSTM mask; SpeechBrain keeps STFT/ISTFT. ENHANCE_INFER=auto with torch fallback. Hop is 0.1 s after isolated last_ms ~6 ms (model+ov+beamform).
69 lines
2.1 KiB
Bash
69 lines
2.1 KiB
Bash
# LiveKit server connection
|
|
# Local TEST server (autostarted). Switch this URL to the remote
|
|
# LiveKit later; then: systemctl disable --now livekit-server
|
|
LIVEKIT_URL=ws://127.0.0.1:7880
|
|
LIVEKIT_API_KEY=APIKey_xxx
|
|
LIVEKIT_API_SECRET=APIsecret_xxx
|
|
|
|
# Room / naming
|
|
LIVEKIT_ROOM=cameras
|
|
PARTICIPANT_PREFIX=cam
|
|
|
|
# Streams
|
|
# "all" = every discovered camera, "1,3,5" or "0-19" = subset
|
|
CAMERAS=all
|
|
VIDEO_WIDTH=640
|
|
VIDEO_HEIGHT=360
|
|
VIDEO_FPS=30
|
|
VIDEO_MIN_FPS=5
|
|
VIDEO_BITRATE=800000
|
|
VIDEO_CODEC=h264
|
|
VIDEO_ENCODER=vaapi
|
|
LIBVA_DRM_DEVICE=/dev/dri/renderD129
|
|
LIBVA_DRIVER_NAME=iHD
|
|
|
|
# Audio
|
|
AUDIO_SAMPLE_RATE=16000
|
|
AUDIO_CHANNELS=1
|
|
|
|
# Audio cleanup (speechbrain)
|
|
# mode: auto (default: enhanced if the model is cached, otherwise passthrough)
|
|
# force (always enhance), off (always passthrough)
|
|
ENHANCE_MODE=auto
|
|
# speechbrain model repo (must be 16 kHz; metricGAN-plus runs ~20-40ms/frame on CPU)
|
|
ENHANCE_MODEL=speechbrain/metricgan-plus-voicebank
|
|
# model window vs publish hop: 1 s context, 100 ms emit
|
|
ENHANCE_CHUNK_S=1.0
|
|
ENHANCE_HOP_S=0.1
|
|
# MetricGAN mask: auto (OpenVINO CPU, Torch fallback) | openvino | torch
|
|
ENHANCE_INFER=auto
|
|
# C920 stereo Delay-and-Sum (SpeechBrain GCC-PHAT) before MetricGAN
|
|
# auto (default): beamform if speechbrain loads, else average channels
|
|
# force: require DelaySum_Beamformer, off: average L/R
|
|
BEAMFORM_MODE=auto
|
|
# One BLAS/Torch thread per worker (20 workers vs 28 cores)
|
|
TORCH_NUM_THREADS=1
|
|
# Recompute GCC-PHAT TDOA every N hops (5 * 200 ms = 1 s)
|
|
BEAMFORM_TDOA_EVERY=5
|
|
|
|
# Misc
|
|
PUBLISH_TIMEOUT_S=60
|
|
LOG_LEVEL=INFO
|
|
|
|
# Headless display wall (run_displays.py / livekit-displays.service)
|
|
# 3 DRM roles: 20-cam grid, designated speaker camera, screenshare STUB
|
|
DISPLAY_COUNT=3
|
|
DISPLAY_ROLES=grid,speaker,screenshare
|
|
# Empty = auto (connected heads first, prefer Arc HDMI-A-*)
|
|
DISPLAY_CONNECTORS=
|
|
DISPLAY_IDENTITY=display-wall
|
|
# Speaker camera pane: cam-NN or "active"
|
|
DISPLAY_SPEAKER_CAMERA=cam-01
|
|
DISPLAY_GRID_COLS=5
|
|
DISPLAY_GRID_ROWS=4
|
|
DISPLAY_GRID_WIDTH=1920
|
|
DISPLAY_GRID_HEIGHT=1080
|
|
DISPLAY_GRID_FPS=30
|
|
# Screen share is a stub until production LiveKit is online.
|
|
LIVEKIT_PUBLIC_URL=
|