Skip to content

vocence-78/denoiser-streaming

 
 

Repository files navigation

vocence/denoiser-streaming

CPU-only DeepFilterNet 3 noise-suppression pod for Vocence voice agents.

The dashboard opens a per-voice-session WebSocket, streams raw 16 kHz PCM in, and reads denoised 16 kHz PCM back. The cleaned signal is then teed to the STT and UltraVAD pods, so both inference layers see the same noise-free audio.

Follows the standard Vocence pod shape (/healthz, /metrics, X-API-Key auth, baked model weights) — same as vocence/stt-streaming and vocence/turn-detection.

See denoiser_streaming_pod_spec.md for the full contract.

Endpoints

Endpoint Auth Purpose
GET /healthz none liveness + model/license info
GET /metrics none Prometheus metrics
WS /v1/stream X-API-Key streaming denoise
POST /v1/denoise/batch X-API-Key one-shot denoise (testing)

Run

DENOISER_API_KEY=dev uvicorn server.main:app --host 0.0.0.0 --port 8122

Config (env)

Var Default Effect
DENOISER_API_KEY (required) shared bearer; pod refuses to start without it
DENOISER_PORT 8122 TCP port
DENOISER_MAX_STREAMS 16 concurrent WS cap (over → close 4429)
DENOISER_DEFAULT_BLOCK_MS 200 block size when start frame omits it
DENOISER_ONNX_THREADS 1 torch intra-op threads
DENOISER_LOG_LEVEL INFO logging level

Implementation note (deviation from spec)

The spec asks for a torch-free ONNX image (<800 MB). DeepFilterNet's df package requires torch for its multi-stage DNN, and libdf (the Rust lib) only exposes the DSP primitives, not the model. So this pod ships torch (CPU-only, no CUDA). The WS/REST contract is unchanged — only the image is larger than the 800 MB target. /healthz reports "runtime": "torch-cpu" so the dashboard can see this.

Acceptance

All §12 checks verified locally: auth-free /healthz, WS 4401 on bad key, 1003 on bad start-frame, clean round-trip preserves audio, noisy input denoised (noise-floor ~275× lower), batch endpoint + 401 without key.

About

CPU DeepFilterNet3 noise-suppression pod for Vocence voice agents

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 89.9%
  • Dockerfile 10.1%