feat: cf_voice dependency — Circuit-Forge/circuitforge-core#39 #3

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

Notation milestone requires the cf_voice module before any classifier work can begin.

Architecture decision: cf-voice will be a standalone repo (Circuit-Forge/cf-voice), not a module inside circuitforge-core. See Circuit-Forge/circuitforge-core#35 for the scoping issue.

Required cf_voice surface for Notation v0.1.x

  • cf_voice.io -- VAD, noise gate, ring buffer
  • cf_voice.context -- YAMNet AME, wav2vec2 paralinguistic, pyannote.audio diarization
  • VoiceFrame output type (Linnet never calls classifiers directly)

Gotcha: pyannote.audio requires manually accepting the HuggingFace model license at pyannote/speaker-diarization-3.1 before the model will download on Heimdall. Document in deploy runbook.

Blocking

Linnet issues #4 and #5 are blocked on VoiceFrame being importable from cf-voice.

Tracking

Circuit-Forge/circuitforge-core#35

Notation milestone requires the `cf_voice` module before any classifier work can begin. Architecture decision: cf-voice will be a **standalone repo** (`Circuit-Forge/cf-voice`), not a module inside circuitforge-core. See `Circuit-Forge/circuitforge-core#35` for the scoping issue. ## Required cf_voice surface for Notation v0.1.x - `cf_voice.io` -- VAD, noise gate, ring buffer - `cf_voice.context` -- YAMNet AME, wav2vec2 paralinguistic, pyannote.audio diarization - `VoiceFrame` output type (Linnet never calls classifiers directly) **Gotcha:** pyannote.audio requires manually accepting the HuggingFace model license at `pyannote/speaker-diarization-3.1` before the model will download on Heimdall. Document in deploy runbook. ## Blocking Linnet issues #4 and #5 are blocked on `VoiceFrame` being importable from `cf-voice`. ## Tracking `Circuit-Forge/circuitforge-core#35`
pyr0ball added this to the Notation — v0.1.x milestone 2026-04-06 13:05:56 -07:00
pyr0ball added the
blocked
backlog
cf-core-dep
labels 2026-04-06 13:05:56 -07:00
pyr0ball changed title from feat: cf_voice blocking dependency — track circuitforge-core#TBD to feat: cf_voice dependency — Circuit-Forge/circuitforge-core#37 2026-04-06 15:38:07 -07:00
pyr0ball changed title from feat: cf_voice dependency — Circuit-Forge/circuitforge-core#37 to feat: cf_voice dependency — Circuit-Forge/circuitforge-core#39 2026-04-06 15:40:03 -07:00
pyr0ball removed the
blocked
label 2026-04-06 16:12:17 -07:00
Author
Owner

Done. cf-voice exposes a /classify sidecar API (cf_voice.app). Linnet session_store.forward_audio_chunk() accumulates 100ms PCM chunks into 1s windows and POSTs to the sidecar. In-process fallback (ContextClassifier.from_env()) used when CF_VOICE_URL is unset.

Done. cf-voice exposes a `/classify` sidecar API (`cf_voice.app`). Linnet `session_store.forward_audio_chunk()` accumulates 100ms PCM chunks into 1s windows and POSTs to the sidecar. In-process fallback (`ContextClassifier.from_env()`) used when `CF_VOICE_URL` is unset.
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#3
No description provided.