feat: YAMNet acoustic event classifier (queue/environ/speaker type) — Navigation v0.2.x #5

Closed
opened 2026-04-06 13:05:57 -07:00 by pyr0ball · 1 comment
Owner

Integrate tone classification producing ToneEvent objects for the annotation overlay.

Data flow:

VoiceFrame → YAMNet (acoustic mood) + wav2vec2 (paralinguistic) → ToneEvent

ToneEvent fields: label, confidence, speaker_id, shift_magnitude, timestamp

Design constraints:

  • Never import YAMNet or wav2vec2 directly in Linnet code — only via cf_voice.context VoiceFrame
  • shift_magnitude threshold gate: only emit shift annotation if delta exceeds configurable threshold (avoids annotation noise for stable tone)
  • Confidence score exposed in UI (user can set visibility threshold)

Blocked on: cf_voice.context VoiceFrame being available in circuitforge-core.

Integrate tone classification producing `ToneEvent` objects for the annotation overlay. Data flow: ``` VoiceFrame → YAMNet (acoustic mood) + wav2vec2 (paralinguistic) → ToneEvent ``` ToneEvent fields: `label`, `confidence`, `speaker_id`, `shift_magnitude`, `timestamp` Design constraints: - Never import YAMNet or wav2vec2 directly in Linnet code — only via `cf_voice.context` VoiceFrame - `shift_magnitude` threshold gate: only emit shift annotation if delta exceeds configurable threshold (avoids annotation noise for stable tone) - Confidence score exposed in UI (user can set visibility threshold) Blocked on: cf_voice.context VoiceFrame being available in circuitforge-core.
pyr0ball added this to the Notation — v0.1.x milestone 2026-04-06 13:05:57 -07:00
pyr0ball added the
enhancement
backlog
cf-core-dep
labels 2026-04-06 13:05:57 -07:00
pyr0ball changed title from feat: tone classifier pipeline — YAMNet AME + wav2vec2 via cf_voice.context to feat: YAMNet acoustic event classifier (queue/environ/speaker type) — Navigation v0.2.x 2026-04-11 09:50:47 -07:00
Author
Owner

Partial: wav2vec2 tone classifier (cf_voice.classify.ToneClassifier) is done and confirmed working — closes the tone/affect part of this issue.

Remaining: YAMNet acoustic event classification (queue state: hold_music/ringback/busy/dtmf; speaker type: human_single/ivr_synth/transfer; environ: call_center/music/noise). acoustic.py has the AcousticBackend protocol and MockAcousticBackend; YAMNetAcousticBackend raises NotImplementedError and is caught silently in _classify_real_async.

Retitling this issue to track only the YAMNet piece. Tone is done.

Partial: wav2vec2 tone classifier (`cf_voice.classify.ToneClassifier`) is done and confirmed working — closes the tone/affect part of this issue. Remaining: YAMNet acoustic event classification (queue state: hold_music/ringback/busy/dtmf; speaker type: human_single/ivr_synth/transfer; environ: call_center/music/noise). `acoustic.py` has the `AcousticBackend` protocol and `MockAcousticBackend`; `YAMNetAcousticBackend` raises `NotImplementedError` and is caught silently in `_classify_real_async`. Retitling this issue to track only the YAMNet piece. Tone is done.
pyr0ball modified the milestone from Notation — v0.1.x to Navigation — v0.2.x 2026-04-12 11:04:25 -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/linnet#5
No description provided.