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:
- Scribe UI – det fristående webbgränssnittet för uppladdning, beställning och redigering av transkriptioner.
- Scribe Backend – backend-API, jobbstyrning, säkerhet, köhantering samt integrationer mot Drive och Sunet Play/REACH.
- Scribe Worker – bearbetar mediefiler, kör transkribering, diarisation, översättning och övriga moduler.
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:
- KB-Whisper (svenska)
- Svensk storskalig modell framtagen av Kungliga biblioteket och tränad på ca 50 000 timmar svenskt ljudmaterial. Ger högst träffsäkerhet för svenskt tal.
- HuggingFace: https://huggingface.co/KBLab/kb-whisper-large
- NB-Whisper (norska bokmål)
- Specialiserad norsk modell som ger avsevärt bättre resultat för norskt tal än standard-Whisper.
- HuggingFace: https://huggingface.co/NbAiLab/nb-whisper-large
- OpenAI Whisper Large-v3
- Standardmodell för engelska och majoriteten av övriga språk.
- HuggingFace: https://huggingface.co/openai/whisper-large-v3
Contact us
Please contact info@sunet.se
