From ebbec982b3566a51d89dd885bece3c08282a4538 Mon Sep 17 00:00:00 2001 From: vegard Date: Tue, 17 Mar 2026 17:51:40 +0100 Subject: [PATCH] =?UTF-8?q?Fullf=C3=B8r=20oppgave=207.3:=20Voice=20memo=20?= =?UTF-8?q?=E2=80=94=20opptak-knapp=20i=20frontend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Legger til VoiceRecorder-komponent som bruker MediaRecorder API for lydopptak i nettleseren. Opptaket lastes opp til CAS via eksisterende uploadMedia-endepunkt, som automatisk trigger Whisper-transkripsjon. Komponenten er integrert i: - ChatInput: mikrofon-knapp mellom tekstfelt og send-knapp - NodeEditor: mikrofon-knapp i verktøylinjen Flyten: opptak → webm/opus blob → upload → CAS → whisper_transcribe-jobb. Ingen backend-endringer nødvendig — hele transkripsjons-pipelinen fra oppgave 7.2 gjenbrukes uendret. Co-Authored-By: Claude Opus 4.6 --- frontend/src/lib/components/ChatInput.svelte | 13 +- frontend/src/lib/components/NodeEditor.svelte | 24 ++- .../src/lib/components/VoiceRecorder.svelte | 191 ++++++++++++++++++ frontend/src/routes/chat/[id]/+page.svelte | 2 +- tasks.md | 3 +- 5 files changed, 224 insertions(+), 9 deletions(-) create mode 100644 frontend/src/lib/components/VoiceRecorder.svelte diff --git a/frontend/src/lib/components/ChatInput.svelte b/frontend/src/lib/components/ChatInput.svelte index bbc19bd..f455afa 100644 --- a/frontend/src/lib/components/ChatInput.svelte +++ b/frontend/src/lib/components/ChatInput.svelte @@ -1,10 +1,15 @@ + +{#if recState === 'idle'} + +{:else if recState === 'recording'} +
+ + + + +
+ + {formatDuration(duration)} +
+ + + +
+{:else if recState === 'uploading'} +
+ + + + + Laster opp… +
+{/if} diff --git a/frontend/src/routes/chat/[id]/+page.svelte b/frontend/src/routes/chat/[id]/+page.svelte index bdbff90..d2ce801 100644 --- a/frontend/src/routes/chat/[id]/+page.svelte +++ b/frontend/src/routes/chat/[id]/+page.svelte @@ -204,7 +204,7 @@ {#if connected && accessToken && communicationNode}
- +
{/if} diff --git a/tasks.md b/tasks.md index 2070e03..8a9b433 100644 --- a/tasks.md +++ b/tasks.md @@ -95,8 +95,7 @@ Uavhengige faser kan fortsatt plukkes. - [x] 7.1 faster-whisper oppsett: Docker-container, GPU hvis tilgjengelig, norsk modell. Ref: `docs/erfaringer/`. - [x] 7.2 Transkripsjons-pipeline: lydfil i CAS → maskinrommet trigger Whisper → resultat i `content`-feltet. -- [~] 7.3 Voice memo i frontend: opptak-knapp i input-komponenten → upload → CAS → transkripsjon. - > Påbegynt: 2026-03-17T17:47 +- [x] 7.3 Voice memo i frontend: opptak-knapp i input-komponenten → upload → CAS → transkripsjon. - [ ] 7.4 Lyd-avspilling: spiller av original lyd fra CAS-node. Waveform-visning. ## Fase 8: Aliaser