Transcriptie 21 — duurzame opname en levenscyclus van OciDeck-callaudio #2529

Closed
opened 2026-10-22 20:05:37 +00:00 by brenno · 1 comment
Owner

Bovenliggend callticket: #2526 · Epic: #2508
Afhankelijk van: #2527, #2528, #2511, #2516, #2517

Gebruikersdoel

Mijn callopname blijft volledig als live transcriptie traag is of faalt; na Stop kan ik de audio afspelen of definitief transcriberen.

Werk

  • Koppel de bewezen callaudiobron aan dezelfde duurzame, begrensde opnamepipeline als de gewone opname, met tijdstempels, expliciete bronvermelding, veilige tijdelijke opslag, schijfruimtecontrole en crashherstel. De live engine leest kopieën/chunks en bezit nooit het enige exemplaar van audio.
  • Definieer exact gedrag voor Stop, call verlaten, remote trackverlies, reconnect, slaapstand, appafsluiting en vol opslagvolume. Stop sluit audiobronnen af zonder de call te beschadigen; leave stopt de opname en maakt voltooiing/herstel zichtbaar.
  • Voorkom dat luidsprekerloopback, dezelfde deelnemerstrack tweemaal, of een gedempte eigen microfoon toch in het bestand komen. Controleer audioformaat en mix op afspeelbaarheid; behoud waar nodig losse bronnen zonder sprekerlabels te beloven.
  • Volg opslag-, bewaar- en verwijderkeuzes van het transcriptiecontract; een optionele server verwerkt uitsluitend na de afzonderlijke taak-/sessietoestemming.

Acceptatie

  • Fake- en echte callproeven bewijzen een afspeelbare volledige opname bij normale Stop, trage/falende live engine en reconnect; handmatig verlaten/afsluiten geeft een herstelbaar of duidelijk afgerond bestand.
  • Volle schijf, schrijfexception en bronverlies stoppen veilig en geven een exacte melding; bestaande bestanden blijven intact en er ontstaat geen stil geaccepteerd half transcript.
  • Tests tonen één recorder per call, geen tweede opname door UI-/deckwissel en vrijgave van alle tracks/handles na Stop.

Code/ontwerp

lib/state/meeting_session_provider.dart, bestaande transcriptieopnamepipeline uit #2516/#2517, opslagcontract #2511.

**Bovenliggend callticket:** [#2526](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2526) · **Epic:** [#2508](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2508) **Afhankelijk van:** [#2527](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2527), [#2528](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2528), [#2511](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2511), [#2516](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2516), [#2517](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2517) ## Gebruikersdoel Mijn callopname blijft volledig als live transcriptie traag is of faalt; na Stop kan ik de audio afspelen of definitief transcriberen. ## Werk - Koppel de bewezen callaudiobron aan dezelfde duurzame, begrensde opnamepipeline als de gewone opname, met tijdstempels, expliciete bronvermelding, veilige tijdelijke opslag, schijfruimtecontrole en crashherstel. De live engine leest kopieën/chunks en bezit nooit het enige exemplaar van audio. - Definieer exact gedrag voor Stop, call verlaten, remote trackverlies, reconnect, slaapstand, appafsluiting en vol opslagvolume. Stop sluit audiobronnen af zonder de call te beschadigen; leave stopt de opname en maakt voltooiing/herstel zichtbaar. - Voorkom dat luidsprekerloopback, dezelfde deelnemerstrack tweemaal, of een gedempte eigen microfoon toch in het bestand komen. Controleer audioformaat en mix op afspeelbaarheid; behoud waar nodig losse bronnen zonder sprekerlabels te beloven. - Volg opslag-, bewaar- en verwijderkeuzes van het transcriptiecontract; een optionele server verwerkt uitsluitend na de afzonderlijke taak-/sessietoestemming. ## Acceptatie - [ ] Fake- en echte callproeven bewijzen een afspeelbare volledige opname bij normale Stop, trage/falende live engine en reconnect; handmatig verlaten/afsluiten geeft een herstelbaar of duidelijk afgerond bestand. - [ ] Volle schijf, schrijfexception en bronverlies stoppen veilig en geven een exacte melding; bestaande bestanden blijven intact en er ontstaat geen stil geaccepteerd half transcript. - [ ] Tests tonen één recorder per call, geen tweede opname door UI-/deckwissel en vrijgave van alle tracks/handles na Stop. ## Code/ontwerp `lib/state/meeting_session_provider.dart`, bestaande transcriptieopnamepipeline uit #2516/#2517, opslagcontract #2511.
Author
Owner

Geland via #2596 (1bd8a527b). De callaudiobron hangt nu aan dezelfde duurzame pipeline als de microfoonopname: CallAudioCaptureSource als CaptureSource onder RecordingManager — staging, schijfcontrole, crashherstel, bewaarflow. Tick-mixer schrijft één afspeelbare 16 kHz-monomix + WAV per bron + sources.json-provenance; starving/gemute bronnen leveren stilte, de tijdlijn loopt door. Consent via participantNoticeAcknowledged; bronverlies bewaart wat er staat (sourceLost). Upload-hek onveranderd los van lokale opname — echte forwarding is #2530.

Geland via #2596 (`1bd8a527b`). De callaudiobron hangt nu aan dezelfde duurzame pipeline als de microfoonopname: `CallAudioCaptureSource` als `CaptureSource` onder `RecordingManager` — staging, schijfcontrole, crashherstel, bewaarflow. Tick-mixer schrijft één afspeelbare 16 kHz-monomix + WAV per bron + `sources.json`-provenance; starving/gemute bronnen leveren stilte, de tijdlijn loopt door. Consent via `participantNoticeAcknowledged`; bronverlies bewaart wat er staat (`sourceLost`). Upload-hek onveranderd los van lokale opname — echte forwarding is #2530.
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#2529
No description provided.