Teknisk dokumentation

Denna sida beskriver den tekniska arkitekturen, driftmiljön, interna gränssnitt, samt hur tjänstens komponenter samverkar.

Arkitektur

Tjänstens övergripande arkitektur beskrivs i ovanstående bild. Tjänsten driftas helt inom Sunets datacenter och hanterar all bearbetning av media där utan externa beroenden.

Källkod och öppna komponenter

Sunet Scribe bygger på öppen källkod och utvecklas fortlöpande i Sunets offentliga GitHub-repositorier. Kodbasen ligger till grund för drift av tjänsten i Sunets datacenter och vidareutvecklas kontinuerligt i samma repos.

Följande repos utgör kärnan i tjänstens arkitektur:

Repositorierna uppdateras löpande i takt med att nya funktioner och förbättringar införs i produktion. All kod är licensierad under Apache 2.0.

Transkriberingspipeline

Sunet Scribe använder en modulär och utbyggbar pipeline för att behandla ljud- och videofiler. Pipeline-arkitekturen är designad för att vara flexibel och framtidssäker, så att nya steg kan läggas till utan att påverka befintlig drift.

Pipeline består av tre huvudfaser:

1. Förbehandling (Pre-processing)

För varje inkommande fil normaliseras ljudet med hjälp av FFmpeg innan transkriberingen påbörjas. Syftet är att säkerställa stabil och förutsägbar kvalitet oavsett originalformat.

Förbehandlingen kan omfatta:

  • Konvertering till standardiserat internt format (WAV, mono, 16-bit)
  • Normalisering av ljudnivåer
  • Filtrering av brus när det behövs (t.ex. SNR-analys med automatisk tröskel)

2. Transkribering (Inferens)

Efter förbehandling körs själva tal-till-text-steget med den modell som är bäst lämpad för det aktuella språket (t.ex. KB-Whisper eller NB-Whisper). Modellen genererar:

  • Ord- eller segmentnivåtext
  • Tidsstämplar

3. Efterbearbetning

Efter transkriberingen bearbetas resultatet i ett antal pipeline-moduler. Idag omfattar dessa:

  • Diarisering – identifierar när olika talare kommer in och ut. Diariseringen är baserad på Pyannote community-1: https://huggingface.co/pyannote/speaker-diarization-community-1
  • Segmentering – delar upp texten i logiska block baserat på pauser och talrytm.
  • Blockindelning för undertexter – anpassar textblock för SRT/VTT med läsbarhet, radlängder och tidsregler.
  • Metadata – genererar strukturerad metadata som kan användas av UI och API (språk, modell, längd, talare etc).

Pipeline-stegen är fristående, vilket gör att vi kan aktivera eller inaktivera dem per filtyp eller användningsfall (t.ex. diarisation vid fulltexttranskribering men inte för undertextning).

Språkmodeller som används i Sunet Scribe

Den modulära uppbyggnaden av tjänstens transkriberingspipeline innebär att språkmodeller enkelt kan bytas ut eller kompletteras när bättre alternativ dyker upp, oavsett språk. Detta gör att transkriberingskvaliteten successivt kan förbättras utan att befintliga användare påverkas, och utan att förändra driftarkitekturen.

Primära modeller i produktion:


Contact us

Please contact info@sunet.se