feat: acoustic environment fingerprinting + local privacy risk scorer #3

Open
opened 2026-04-12 10:56:21 -07:00 by pyr0ball · 0 comments
Owner

Context

Linnet#20. Extends cf-voice#2 (YAMNet) with privacy-relevant acoustic signal detection and a local risk scorer.

Signals

  • Scene classification: indoor/outdoor, vehicle, public space
  • Extended YAMNet labels: birdsong, traffic, street crossing, rain, background voices
  • Accent/language identification (separate lightweight model — whisper-lid or similar)
  • Background speaker presence (distinct from primary speaker via diarizer)

Privacy risk scorer

  • Runs locally — raw signals never leave the device
  • Returns a PrivacyRiskLevel: low | medium | high
  • High: background voices detected + outdoor public space → conversation may be overheard
  • Output: PrivacySignal event type on the SSE stream (Linnet surfaces this in UI)

Privacy inversion note

The signals that detect privacy-compromising environments are themselves potentially privacy-leaking. The scorer must run fully local; only the derived risk level (low/medium/high) may be transmitted, never the raw acoustic features.

Dependencies

cf-voice#2 (YAMNet base), cf-voice#1 (diarization — background speaker presence)

Tracking

Linnet#20

## Context Linnet#20. Extends cf-voice#2 (YAMNet) with privacy-relevant acoustic signal detection and a local risk scorer. ## Signals - Scene classification: indoor/outdoor, vehicle, public space - Extended YAMNet labels: birdsong, traffic, street crossing, rain, background voices - Accent/language identification (separate lightweight model — whisper-lid or similar) - Background speaker presence (distinct from primary speaker via diarizer) ## Privacy risk scorer - Runs locally — raw signals never leave the device - Returns a `PrivacyRiskLevel`: `low | medium | high` - High: background voices detected + outdoor public space → conversation may be overheard - Output: `PrivacySignal` event type on the SSE stream (Linnet surfaces this in UI) ## Privacy inversion note The signals that detect privacy-compromising environments are themselves potentially privacy-leaking. The scorer must run fully local; only the derived risk level (`low/medium/high`) may be transmitted, never the raw acoustic features. ## Dependencies cf-voice#2 (YAMNet base), cf-voice#1 (diarization — background speaker presence) ## Tracking Linnet#20
pyr0ball added this to the v0.3.0 — Privacy signals milestone 2026-04-12 10:56:21 -07:00
pyr0ball added the
privacy
backlog
inference
acoustic
labels 2026-04-12 10:56:21 -07:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/cf-voice#3
No description provided.