Oppdatert basert på ekstern tilbakemelding. Nye proposals for kildevern, podcasting 2.0, web clipper, waveforms, editor, tekst-primitiv og avisvisning. Oppdatert meldingsboks med slette-semantikk, entity resolution i kunnskapsgrafen, og AI gateway med kildevern-modus. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
53 lines
2.5 KiB
Markdown
53 lines
2.5 KiB
Markdown
# Forslag: Visuelle Waveforms som UI-primitiv
|
||
|
||
## Idé
|
||
Podcast handler om lyd, men i Sidelinja-editoren er lyd foreløpig kun tekst eller en usynlig boks. Generer komprimerte audio-peaks fra lydfiler og rendrer dem som visuelle bølgeformer (SoundCloud-stil) overalt der lyd refereres — i editoren, i segment-embeds, i Podcastfabrikken.
|
||
|
||
## Hvorfor er dette interessant?
|
||
- Gjør manuell redigering og verifisering av transkripsjoner mye mer intuitivt
|
||
- Tidsstempler og Aha-markører kan lyse opp oppå bølgene
|
||
- Visuell representasjon av lyd er forventet i 2026 — ren tekst føles utdatert
|
||
- `{{segment:uuid}}` i editoren kan rendres som en interaktiv bølgeform i stedet for en flat lydspiller
|
||
|
||
## Hva bygger den på?
|
||
- **Podcastfabrikken** — lydfilene og segmentene
|
||
- **Jobbkø** — ny jobbtype `generate_waveform`
|
||
- **Editor** — `{{segment:uuid}}`-embeds rendrer waveform i stedet for enkel player
|
||
- **Studioet** — Aha-markører vises oppå bølgeformen
|
||
|
||
## Gjennomføring
|
||
|
||
### 1. Generere peaks
|
||
Utvid `whisper_transcribe`-jobben (eller opprett separat `generate_waveform`-jobb) til å generere en komprimert array med audio-peaks:
|
||
|
||
```
|
||
Verktøy: audiowaveform (BBC, C++, rask) eller ffmpeg
|
||
Input: MP3/WAV
|
||
Output: JSON-array med peaks (f.eks. 800 datapunkter per minutt)
|
||
Lagring: media_files.metadata (JSONB) eller separat fil
|
||
```
|
||
|
||
### 2. Svelte-komponent: `<Waveform>`
|
||
- Rendrer peaks som SVG eller Canvas
|
||
- Klikkbar: hopp til tidspunkt i lyden
|
||
- Overlay: Aha-markører, segment-grenser, talerskifter
|
||
- Responsiv: tilpasser seg containerbredde
|
||
- Brukes i: editor-embeds, Podcastfabrikken, segment-visning
|
||
|
||
### 3. Editor-integrasjon
|
||
`{{segment:uuid}}` i rendered-modus viser:
|
||
```
|
||
┌──────────────────────────────────────────┐
|
||
│ ▶ Episode 42, 14:23–21:07 │
|
||
│ ░▓▓░▓▓▓░░▓▓░▓░░▓▓▓▓░░▓░░▓▓░▓▓▓░░▓▓░▓ │
|
||
│ ^Aha ^Støre nevnt │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
## Åpne spørsmål
|
||
- Peaks per minutt: 800 er nok for de fleste visninger. Trenger vi flere nivåer (zoom)?
|
||
- Farger: Mono-farge eller fargekode per taler (krever diarisering)?
|
||
- Lagring: Inline i JSONB eller som separat `.json`-fil i media/?
|
||
|
||
## Innsats: Lav–Middels
|
||
## Wow-faktor: Høy
|