# 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=1280 VIDEO_HEIGHT=720 VIDEO_FPS=30 VIDEO_MIN_FPS=5 # 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, 200 ms emit ENHANCE_CHUNK_S=1.0 ENHANCE_HOP_S=0.2 # 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