Turaco: integrate Vocalinux + Linnet voice annotation pipeline #61

Open
opened 2026-07-19 17:01:28 -07:00 by pyr0ball · 0 comments
Owner

Context

Turaco (TRCO) is the CF self-hosted privacy stack / Oasis reference instance. As it matures into a full self-hosted suite, voice annotation is a natural fit: users dictating into docs, notes, or comms tools on their Oasis instance could have Linnet tone annotation inline.

Proposed integration

Stack:

  • Vocalinux — local Linux STT (whisper.cpp/VOSK, Silero VAD, X11/Wayland injection, GPL-3.0)
  • Linnet — CF tone/context annotation layer (Elcor tags, ND-aware)
  • cf-orch — backend routing for annotation tasks when local VRAM is insufficient

Flow:

User speaks on Oasis instance
  → Vocalinux (local STT)
  → transcript POST to Linnet endpoint (localhost or Turaco service)
  → cf-orch annotation task (local worker or cloud fallback)
  → annotated output back to Oasis UI / document

Turaco-specific concerns:

  • Vocalinux is GPL-3.0 — IPC boundary (HTTP/socket) required, no linking with BSL code
  • Annotation service should be an opt-in Turaco compose service (not bundled by default)
  • Local-first: annotation runs on the Oasis host if it has VRAM; cf-orch used as fallback only
  • Privacy: transcripts never leave the host unless user explicitly enables cloud cf-orch

Dependencies

  • Linnet must have a stable HTTP annotation endpoint (see Circuit-Forge/linnet#35)
  • cf-orch must have a Linnet annotation task type
  • Vocalinux upstream PR: post_transcription_webhook_url config key (see linnet#35)

Move to turaco repo

This issue was filed against roadmap because the turaco repo does not yet exist. Migrate it when the repo is created.

References

## Context Turaco (TRCO) is the CF self-hosted privacy stack / Oasis reference instance. As it matures into a full self-hosted suite, voice annotation is a natural fit: users dictating into docs, notes, or comms tools on their Oasis instance could have Linnet tone annotation inline. ## Proposed integration **Stack:** - [Vocalinux](https://github.com/jatinkrmalik/vocalinux) — local Linux STT (whisper.cpp/VOSK, Silero VAD, X11/Wayland injection, GPL-3.0) - Linnet — CF tone/context annotation layer (Elcor tags, ND-aware) - cf-orch — backend routing for annotation tasks when local VRAM is insufficient **Flow:** ``` User speaks on Oasis instance → Vocalinux (local STT) → transcript POST to Linnet endpoint (localhost or Turaco service) → cf-orch annotation task (local worker or cloud fallback) → annotated output back to Oasis UI / document ``` **Turaco-specific concerns:** - Vocalinux is GPL-3.0 — IPC boundary (HTTP/socket) required, no linking with BSL code - Annotation service should be an opt-in Turaco compose service (not bundled by default) - Local-first: annotation runs on the Oasis host if it has VRAM; cf-orch used as fallback only - Privacy: transcripts never leave the host unless user explicitly enables cloud cf-orch ## Dependencies - Linnet must have a stable HTTP annotation endpoint (see Circuit-Forge/linnet#35) - cf-orch must have a Linnet annotation task type - Vocalinux upstream PR: `post_transcription_webhook_url` config key (see linnet#35) ## Move to turaco repo This issue was filed against `roadmap` because the `turaco` repo does not yet exist. Migrate it when the repo is created. ## References - linnet#35: Vocalinux integration design and extension point audit - Vocalinux repo: https://github.com/jatinkrmalik/vocalinux
Sign in to join this conversation.
No description provided.