EPIC — Transcriptie en opname op alle OciDeck-releaseplatforms #2508

Closed
opened 2026-10-22 19:55:38 +00:00 by brenno · 1 comment
Owner

Doel

OciDeck krijgt als afzonderlijke, standaard uitgeschakelde uitbreiding onder Instellingen → Uitbreidingen drie routes: (1) bestaand audio-/videobestand transcriberen, (2) lokaal opnemen en daarna transcriberen, (3) tijdens opname voorlopige tekst tonen en na Stop een definitieve pass doen. Het resultaat is een bewerkbaar, uitwisselbaar Markdown-document met een duidelijke keuze voor de originele audio.

Scope en feitelijke grens

De huidige releaseplatforms zijn macOS, Windows, Linux en web (README.md, docs/BUILD.md). android/ en ios/ bestaan als projectmappen maar zijn geen huidige releaseartefacten; mobiele ondersteuning vraagt een afzonderlijk product-/releasebesluit. Ondersteuning betekent op elk huidig releaseplatform een werkende bestands-, microfoon- en live-route op een geteste setup, met capabilities en foutpaden voor andere setups. App-/systeemgeluid is per OS/browser conditioneel en mag alleen als beschikbaar worden getoond wanneer de werkelijke audiotrack en rechten zijn bewezen. Web hoeft niet hetzelfde modelgewicht als desktop te draaien. Lokale verwerking blijft een optie waar bewezen haalbaar; een bewust gekozen eigen/externe server is een tweede route, vooral voor het web. Er is nooit een verborgen upload.

Er komt geen verplichte server, cloudaccount, Ollama of Python-installatie; modelgewichten worden niet stil gebundeld of gedownload. De bestaande AI-assistentie voor tekst/beeld is niet de spraakengine en krijgt nooit automatisch audio/transcript. De in-app callroute sluit aan op een later werkende MeetingProvider-adapter; dit epic bouwt zelf geen vergaderprovider of heimelijke call-bot. Zie docs/design/AI_ASSIST.md §1 en docs/design/COLLABORATION.md §7.1.6.

Huidige basis

Slide-audio bestaat als afspeelasset (ImageService.pickAudio, Slide.audioPath); WebrtcMicMonitor geeft microfoon door naar luidsprekers zonder opname. Documentmodus schrijft gewone Markdown. De browserbuild heeft strenge CSP en vluchtige opslaggrenzen. Gesloten issue #2158 leverde microfoon-doorvoer, niet opname/transcriptie. Er was bij trackercontrole geen transcriptie-epic of gelijkwaardige open functie.

Bouwvolgorde en deeltickets

  1. #2509 — Transcriptie 01 — productcontract, bronmatrix en opslagformaat vastleggen

  2. #2510 — Transcriptie 02 — opname- en transcriptiegrens, toestemming en verwijdering (na #2509)

  3. #2511 — Transcriptie 03 — bewerkbaar Markdown-resultaat met audioherkomst (na #2509, #2510)

  4. #2512 — Transcriptie 04 — lokale spraakengine en modelbeheer op macOS, Windows en Linux (na #2509)

  5. #2513 — Transcriptie 05 — web: bewijs en bouw een lokale inferentieroute binnen browsergrenzen (na #2509, #2510)

  6. #2514 — Transcriptie 06 — uitbreiding in Instellingen met bron- en randvoorwaardendetectie (na #2509, #2510, #2512, #2513)

  7. #2515 — Transcriptie 07 — bestaand audio- of videobestand naar transcript (na #2511, #2512, #2513, #2514)

  8. #2516 — Transcriptie 08 — microfoonopname op macOS, Windows en Linux (na #2510, #2514, #2511)

  9. #2517 — Transcriptie 09 — microfoonopname in de webversie (na #2510, #2514, #2513, #2511)

  10. #2518 — Transcriptie 10 — macOS: gekozen app-/systeemgeluid en microfoon opnemen (na #2509, #2510, #2516)

  11. #2519 — Transcriptie 11 — Windows: WASAPI-loopback voor online gespreksgeluid (na #2509, #2510, #2516)

  12. #2520 — Transcriptie 12 — Linux: PipeWire/PulseAudio-bronnen en monitoropname (na #2509, #2510, #2516)

  13. #2521 — Transcriptie 13 — web: gekozen tab-/schermgeluid waar browser dat levert (na #2509, #2510, #2517)

  14. #2522 — Transcriptie 14 — live voorlopige tekst en definitieve pass na opname (na #2515, #2516, #2517, #2518, #2519, #2520, #2521)

  15. #2523 — Transcriptie 15 — platformsetup, eind-tot-eindproeven en releasebewijs (na #2509, #2510, #2511, #2512, #2513, #2514, #2515, #2516, #2517, #2518, #2519, #2520, #2521, #2522, #2524, #2525, #2526)

  16. #2524 — Transcriptie 16 — optionele eigen of externe ASR-server (na #2509, #2510; integratie met #2514, #2515)

  17. #2525 — Transcriptie 17 — optioneel live via ASR-server (na #2509, #2510, #2524, #2522)

  18. #2526 — Transcriptie 18 — opname en transcriptie vanuit een OciDeck-call (na werkende MeetingProvider-adapter en opname-/enginecontract)

Voorwaarde voor transcriptie vanuit de OciDeck-call: #2532; de callroute wordt pas als ondersteund aangeboden na #2538.

Callroute: deelissues onder #2526

  • #2527 — Transcriptie 19 — providerneutrale audiobron van een OciDeck-call
  • #2528 — Transcriptie 20 — opnamebediening en toestemming in het OciDeck-callpaneel
  • #2529 — Transcriptie 21 — duurzame opname en levenscyclus van OciDeck-callaudio
  • #2530 — Transcriptie 22 — live en definitief transcript van een OciDeck-call
  • #2531 — Transcriptie 23 — echte callproeven en platformgids voor OciDeck-opname

Definitie van klaar

  • Alle achttien hoofdtickets en de vijf call-deeltickets zijn uitgevoerd, de capability-matrix en platformgids zijn in de app vindbaar, en de releasebundels zijn met echte hardware en browsers getest. Alleen bewezen paden worden in de UI aangeboden.
  • Op elk huidig releaseplatform kan een gebruiker een ondersteund bestand kiezen, lokaal of met een bewust gekozen server transcriberen, een microfoonopname maken, live voorlopige tekst zien waar de setup dat ondersteunt, en na Stop een definitief Markdown-transcript opslaan/heropenen. Bij onvoldoende capaciteit blijft achteraf transcriberen beschikbaar; een onmogelijke route wordt vooraf uitgelegd.
  • macOS, Windows, Linux en browser verschillen voor online gespreksgeluid zijn per bron zichtbaar; geen algemene belofte dat elke app, DRM-stream, RDP- of browsersetup vastlegbaar is.
  • Na oplevering van een echte in-app calladapter kan de gebruiker vanuit de actieve OciDeck-call opname/transcriptie bewust starten; eigen en ontvangen audio, providerbeleid en verlies van tracks zijn aantoonbaar getoetst. Deze route staat los van systeemgeluid uit een externe belapp.
  • Opname, tijdelijke audio, transcript en modellen hebben zichtbare start/stop, veilige bewaring en verwijdering. Audio verlaat het apparaat uitsluitend na expliciete serverkeuze en toestemming voor de taak of livesessie. Lokaal verwerken mag nooit automatisch terugvallen op upload; serverbewaring is een afzonderlijk, zichtbaar beleid.
  • Repository-native gepinde checks, relevante platformproeven, documentatie/l10n/SBOM en terminale PR-checks zijn verwerkt; baselinefouten en nieuwe regressies zijn apart benoemd.

De bestaande AI-assistent is geen ASR-server. Servertranscriptie krijgt een eigen profiel en protocol; de OciDeck-host is geen stille proxy. Browser-CORS, TLS en LAN-rechten moeten op de werkelijke deployment worden bewezen.

Technische bronnen voor de platformgrenzen

## Doel OciDeck krijgt als afzonderlijke, standaard uitgeschakelde uitbreiding onder **Instellingen → Uitbreidingen** drie routes: (1) bestaand audio-/videobestand transcriberen, (2) lokaal opnemen en daarna transcriberen, (3) tijdens opname voorlopige tekst tonen en na Stop een definitieve pass doen. Het resultaat is een bewerkbaar, uitwisselbaar Markdown-document met een duidelijke keuze voor de originele audio. ## Scope en feitelijke grens De huidige releaseplatforms zijn macOS, Windows, Linux en web (`README.md`, `docs/BUILD.md`). `android/` en `ios/` bestaan als projectmappen maar zijn geen huidige releaseartefacten; mobiele ondersteuning vraagt een afzonderlijk product-/releasebesluit. Ondersteuning betekent op elk huidig releaseplatform een werkende bestands-, microfoon- en live-route op een geteste setup, met capabilities en foutpaden voor andere setups. App-/systeemgeluid is per OS/browser conditioneel en mag alleen als beschikbaar worden getoond wanneer de werkelijke audiotrack en rechten zijn bewezen. Web hoeft niet hetzelfde modelgewicht als desktop te draaien. Lokale verwerking blijft een optie waar bewezen haalbaar; een bewust gekozen eigen/externe server is een tweede route, vooral voor het web. Er is nooit een verborgen upload. Er komt geen verplichte server, cloudaccount, Ollama of Python-installatie; modelgewichten worden niet stil gebundeld of gedownload. De bestaande AI-assistentie voor tekst/beeld is niet de spraakengine en krijgt nooit automatisch audio/transcript. De in-app callroute sluit aan op een later werkende `MeetingProvider`-adapter; dit epic bouwt zelf geen vergaderprovider of heimelijke call-bot. Zie `docs/design/AI_ASSIST.md` §1 en `docs/design/COLLABORATION.md` §7.1.6. ## Huidige basis Slide-audio bestaat als afspeelasset (`ImageService.pickAudio`, `Slide.audioPath`); `WebrtcMicMonitor` geeft microfoon door naar luidsprekers zonder opname. Documentmodus schrijft gewone Markdown. De browserbuild heeft strenge CSP en vluchtige opslaggrenzen. Gesloten issue #2158 leverde microfoon-doorvoer, niet opname/transcriptie. Er was bij trackercontrole geen transcriptie-epic of gelijkwaardige open functie. ## Bouwvolgorde en deeltickets 1. [#2509 — Transcriptie 01 — productcontract, bronmatrix en opslagformaat vastleggen](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2509) 2. [#2510 — Transcriptie 02 — opname- en transcriptiegrens, toestemming en verwijdering](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2510) (na #2509) 3. [#2511 — Transcriptie 03 — bewerkbaar Markdown-resultaat met audioherkomst](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2511) (na #2509, #2510) 4. [#2512 — Transcriptie 04 — lokale spraakengine en modelbeheer op macOS, Windows en Linux](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2512) (na #2509) 5. [#2513 — Transcriptie 05 — web: bewijs en bouw een lokale inferentieroute binnen browsergrenzen](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2513) (na #2509, #2510) 6. [#2514 — Transcriptie 06 — uitbreiding in Instellingen met bron- en randvoorwaardendetectie](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2514) (na #2509, #2510, #2512, #2513) 7. [#2515 — Transcriptie 07 — bestaand audio- of videobestand naar transcript](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2515) (na #2511, #2512, #2513, #2514) 8. [#2516 — Transcriptie 08 — microfoonopname op macOS, Windows en Linux](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2516) (na #2510, #2514, #2511) 9. [#2517 — Transcriptie 09 — microfoonopname in de webversie](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2517) (na #2510, #2514, #2513, #2511) 10. [#2518 — Transcriptie 10 — macOS: gekozen app-/systeemgeluid en microfoon opnemen](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2518) (na #2509, #2510, #2516) 11. [#2519 — Transcriptie 11 — Windows: WASAPI-loopback voor online gespreksgeluid](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2519) (na #2509, #2510, #2516) 12. [#2520 — Transcriptie 12 — Linux: PipeWire/PulseAudio-bronnen en monitoropname](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2520) (na #2509, #2510, #2516) 13. [#2521 — Transcriptie 13 — web: gekozen tab-/schermgeluid waar browser dat levert](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2521) (na #2509, #2510, #2517) 14. [#2522 — Transcriptie 14 — live voorlopige tekst en definitieve pass na opname](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2522) (na #2515, #2516, #2517, #2518, #2519, #2520, #2521) 15. [#2523 — Transcriptie 15 — platformsetup, eind-tot-eindproeven en releasebewijs](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2523) (na #2509, #2510, #2511, #2512, #2513, #2514, #2515, #2516, #2517, #2518, #2519, #2520, #2521, #2522, #2524, #2525, #2526) 16. [#2524](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2524) — Transcriptie 16 — optionele eigen of externe ASR-server (na #2509, #2510; integratie met #2514, #2515) 17. [#2525](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2525) — Transcriptie 17 — optioneel live via ASR-server (na #2509, #2510, #2524, #2522) 18. [#2526](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2526) — Transcriptie 18 — opname en transcriptie vanuit een OciDeck-call (na werkende `MeetingProvider`-adapter en opname-/enginecontract) **Voorwaarde voor transcriptie vanuit de OciDeck-call:** [#2532](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2532); de callroute wordt pas als ondersteund aangeboden na [#2538](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2538). ### Callroute: deelissues onder #2526 - [#2527](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2527) — Transcriptie 19 — providerneutrale audiobron van een OciDeck-call - [#2528](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2528) — Transcriptie 20 — opnamebediening en toestemming in het OciDeck-callpaneel - [#2529](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2529) — Transcriptie 21 — duurzame opname en levenscyclus van OciDeck-callaudio - [#2530](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2530) — Transcriptie 22 — live en definitief transcript van een OciDeck-call - [#2531](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2531) — Transcriptie 23 — echte callproeven en platformgids voor OciDeck-opname ## Definitie van klaar - Alle achttien hoofdtickets en de vijf call-deeltickets zijn uitgevoerd, de capability-matrix en platformgids zijn in de app vindbaar, en de releasebundels zijn met echte hardware en browsers getest. Alleen bewezen paden worden in de UI aangeboden. - Op elk huidig releaseplatform kan een gebruiker een ondersteund bestand kiezen, lokaal of met een bewust gekozen server transcriberen, een microfoonopname maken, live voorlopige tekst zien waar de setup dat ondersteunt, en na Stop een definitief Markdown-transcript opslaan/heropenen. Bij onvoldoende capaciteit blijft achteraf transcriberen beschikbaar; een onmogelijke route wordt vooraf uitgelegd. - macOS, Windows, Linux en browser verschillen voor online gespreksgeluid zijn per bron zichtbaar; geen algemene belofte dat elke app, DRM-stream, RDP- of browsersetup vastlegbaar is. - Na oplevering van een echte in-app calladapter kan de gebruiker vanuit de actieve OciDeck-call opname/transcriptie bewust starten; eigen en ontvangen audio, providerbeleid en verlies van tracks zijn aantoonbaar getoetst. Deze route staat los van systeemgeluid uit een externe belapp. - Opname, tijdelijke audio, transcript en modellen hebben zichtbare start/stop, veilige bewaring en verwijdering. Audio verlaat het apparaat uitsluitend na expliciete serverkeuze en toestemming voor de taak of livesessie. Lokaal verwerken mag nooit automatisch terugvallen op upload; serverbewaring is een afzonderlijk, zichtbaar beleid. - Repository-native gepinde checks, relevante platformproeven, documentatie/l10n/SBOM en terminale PR-checks zijn verwerkt; baselinefouten en nieuwe regressies zijn apart benoemd. De bestaande AI-assistent is geen ASR-server. Servertranscriptie krijgt een eigen profiel en protocol; de OciDeck-host is geen stille proxy. Browser-CORS, TLS en LAN-rechten moeten op de werkelijke deployment worden bewezen. ## Technische bronnen voor de platformgrenzen - Apple ScreenCaptureKit: https://developer.apple.com/documentation/screencapturekit - Microsoft WASAPI-loopback: https://learn.microsoft.com/windows/win32/coreaudio/loopback-recording - PipeWire-monitor: https://docs.pipewire.org/page_module_loopback.html - Browser audio tracks: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia - Whisper WASM-voorbeeld en limieten: https://github.com/ggml-org/whisper.cpp/blob/master/examples/whisper.wasm/README.md
brenno changed title from EPIC — Lokale transcriptie en opname op alle OciDeck-releaseplatforms to EPIC — Transcriptie en opname op alle OciDeck-releaseplatforms 2026-10-22 19:59:43 +00:00
Author
Owner

Epic completo — los 23 deeltickets están cerrados y el alcance prometido quedó en main:

Contrato/formato: #2509 productcontract + bronmatrix, #2510 grenzen/toestemming, #2511 Markdown-transcript con audioherkomst.

Engines: #2512 whisper.cpp local (subproceso, modelos pinnados SHA-256), #2513 WASM web (COOP/COEP, small/base), #2524 batch serverroute (whisper-server, egress tiers + per-file consent), #2525 live vosk-ws-1 (sesión-consent, Vosk testbed).

Fuentes: #2515 archivo, #2516–#2517 mic desktop/web, #2518–#2520 app-/systeemgeluid por OS, #2521 tab audio, #2522 live+definitivo.

Calls: #2532 adapter Jitsi, #2538 proeven, #2527–#2531 callaudio-tap → grabación durable → transcript con sources.json provenance (PRs #2595–#2598), proeven #2541–#2548.

Releasebewijs: #2523 docs/TRANSCRIPTION_SETUP.md — matriz de setup, serverconfig y evidencia nombrada. Afirmado solo lo probado: macOS + web en llamadas reales; Windows/Linux quedan honestamente sin hardwarebewijs (mismo código, no claim). Nunca upload silencioso ni speaker labels inventados.

El acceptance del epic — tres rutas (archivo, mic, live→definitivo), Markdown editable, sin upload oculto, per-platform honesto — quedó cumplido según lo que los deeltickets probaron.

Epic completo — los 23 deeltickets están cerrados y el alcance prometido quedó en main: **Contrato/formato:** #2509 productcontract + bronmatrix, #2510 grenzen/toestemming, #2511 Markdown-transcript con audioherkomst. **Engines:** #2512 whisper.cpp local (subproceso, modelos pinnados SHA-256), #2513 WASM web (COOP/COEP, small/base), #2524 batch serverroute (whisper-server, egress tiers + per-file consent), #2525 live vosk-ws-1 (sesión-consent, Vosk testbed). **Fuentes:** #2515 archivo, #2516–#2517 mic desktop/web, #2518–#2520 app-/systeemgeluid por OS, #2521 tab audio, #2522 live+definitivo. **Calls:** #2532 adapter Jitsi, #2538 proeven, #2527–#2531 callaudio-tap → grabación durable → transcript con sources.json provenance (PRs #2595–#2598), proeven #2541–#2548. **Releasebewijs:** #2523 docs/TRANSCRIPTION_SETUP.md — matriz de setup, serverconfig y evidencia nombrada. Afirmado solo lo probado: macOS + web en llamadas reales; Windows/Linux quedan honestamente sin hardwarebewijs (mismo código, no claim). Nunca upload silencioso ni speaker labels inventados. El acceptance del epic — tres rutas (archivo, mic, live→definitivo), Markdown editable, sin upload oculto, per-platform honesto — quedó cumplido según lo que los deeltickets probaron.
Sign in to join this conversation.
No milestone
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
LibreKAT/Ocideck#2508
No description provided.