syv.ai Driving AI 2026
Dansk tale-AI · open source

Plapre & Hviske.

Naturlig dansk tale, syntese og transkription. Kørt lokalt, frigivet åbent.

Mads Henrichsen 20 min
01 · Kontekstsyv.ai
Hvem vi er

Specialister i dansk sprog-AI.

Vi bygger sprogmodeller og AI-agenter skræddersyet til danske virksomheders behov, fra kommune-jura til kontaktcenter-transkription.

Hjemme i København, åbne på Hugging Face, brugt i produktion hos kunder over hele landet.

København Ø
01 · KontekstProblem
Problemet

De store amerikanske modeller behandler dansk som en fodnote.

~6M
Dansktalende
Mindre end 0,1 % af verdens internet-tekst. Dialekter, sammensatte ord, retskrivnings­reform. Alt sammen out-of-distribution.
One size fits all
En model trænet på engelsk lærer aldrig de ægte fonemer, kollokationer eller den prosodiske rytme der gør dansk til dansk.
Dansk i et globalt landskab
01 · KontekstMission
Sådan arbejder vi

Tre principper bag alt vi udgiver.

  1. Åben. Vægte og kode på Hugging Face og GitHub, Apache-2.0 / fri kommerciel brug.
  2. Lokal. Kører på dansk hardware, ingen data forlader maskinen, ingen telemetri.
  3. Dansk først. Trænet på dansk data, evalueret mod danske benchmarks, finetunet til danske use cases.
Åben · Lokal · Dansk først
02 · ProdukterOversigt
To modeller, ét tale-stack

Tale ind, tale ud. Begge veje, helt åbent.

Speech → Text · ASR

Hviske

State-of-the-art dansk transkription. Finetunet fra Cohere Transcribe på CoRal v3.
2B paramsv5.3Open source
Text → Speech · TTS

Plapre

Naturlig dansk tale-syntese med stemmekloning. Kører på CPU via GGUF.
135M · 360MPico · NanoOpen source
Hviske + Plapre
03 · HviskeSpeech → Text
Del 1 af 2

Hviske.

Dansk tale ind, tekst ud. Trænet på 17.000 timer dansk audio. Forstår dialekter, talt tempo og sammensatte ord.

Automatic Speech Recognition
03 · HviskeModel
Sådan blev Hviske bygget

Tre lag oven på et stærkt internationalt fundament.

01
cohere-transcribe-03-2026
2B params · Conformer encoder-decoder · 14 sprog
Cohere's open ASR-fundament. #1 på Hugging Face Open ASR Leaderboard, men kan ikke dansk.
+
02
Hviske v5.1
1,7 mio. klip · ~17.000 timer dansk audio
Vores første pretraining-runde med store, blandede danske datasæt — radio, podcasts, oplæsning.
+
03
Hviske v5.3
446.504 samples · CoRal v3 · LLRD
Finetuning på CoRal's annoterede read-aloud + samtale-splits. Layer-wise LR decay (encoder = 0,75 × decoder).
OutputTransformer-tekst · BF16 · max 31 s pr. chunk
Cohere → v5.1 → v5.3
03 · HviskeMetric
Sådan måler vi fejl

Word og Character Error Rate.

Referencejeg går ned til bageren for at købe brød
Hypotesejeg går ned til bagen for at købe brød
WERWord Error Rate
WER = (S + D + I) / N
Ssubstitutioner · ord byttet ud (1)
Ddeletions · ord der mangler (0)
Iinsertions · ord der er for meget (0)
Nord i reference (9)
= 1 / 9 = 11,1 %
CERCharacter Error Rate
CER = (S + D + I) / Ntegn
Samme formel, men talt på tegn-niveau i stedet for ord.
bagerenbagen · 2 deletions (e + r)
N = 33 tegn i reference (ekskl. mellemrum)
= 2 / 33 = 6,1 %
Lavere er bedre · 0 % = perfekt transkription
03 · HviskeBenchmarks
Resultater på CoRal v3 · fuldt testsæt

Word- og Character Error Rate, beam search.

Split N samples Raw WER Strict WER Raw CER Strict CER
Read aloud 9.122 9,86 % 9,01 % 3,98 % 3,63 %
Conversation 8.438 20,89 % 19,21 % 11,90 % 11,35 %
Vægtet snit 17.560 15,16 % 13,91 % 7,78 % 7,34 %

Strict = lowercase + tegnsætning fjernet + tal skrevet ud (num2words(da)). Apples-to-apples mod publicerede Whisper-tal.

17.560 testsamples
03 · HviskeSammenligning
Hviske vs. de store kommercielle

På dansk er specialiseret bedre end stort.

Read aloud Conversation Strict WER · lavere er bedre
Hviske v5.3
9,01 %
19,21 %
ElevenLabs scribe_v2
18,62 %
31,38 %
OpenAI gpt-4o-transcribe
26,34 %
55,24 %
Hviske evalueret på fuldt testset · API-tal pr. /v1 endpoints
03 · HviskeØkonomi
Hvad koster det?

Selvhostet er ~100× billigere pr. time.

OpenAI
gpt-4o-transcribe
2,52kr/time
$0,006/min via /v1 API
ElevenLabs
Scribe v2
2,80kr/time
$0,40/audio-time
Hviske · selvhostet
RTX 3090 + vLLM
0,025kr/time
$1,50/GPU-time ÷ 425× realtime
Scenario: 10.000 timer audio / måned
25.200 krOpenAI
28.000 krElevenLabs
247 krHviske selvhostet
RTX 3090 · vLLM · ~425× realtime · USD/DKK = 7
03 · HviskeUse cases
Hvor giver det mening

Fra journalføring til borgerservice.

01 · Sundhed

Diktering & journalføring

Læger og terapeuter dikterer direkte ind i journalsystemet. Data forlader aldrig kommunens eller regionens netværk.

02 · Kontaktcenter

Real-time samtale-transkription

Kundeservice får live-transskript og automatiske resumeer uden at sende lyd til amerikanske API'er.

03 · Medier

Undertekstning af arkiver

TV- og radioarkiver transkriberes batch-vis på egen GPU. Strict WER på < 14 % giver brugbare førsteudkast.

04 · Offentlig

Møde- og udvalgsreferater

Kommuner og styrelser får søgbare referater fra byrådsmøder og høringer.

Hviske i produktion
03 · HviskeMultilingual
Sprog · dansk plus 14

Dansk-first, men taler stadig 14 andre sprog.

Vi finetunede ovenpå cohere-transcribe-03-2026. Det betyder Hviske arver alle de sprog base-modellen blev trænet på. Dansk er bare det sprog vi er bedre på end alle andre.

Dansk
DA · syv.ai
Engelsk
EN
Tysk
DE
Fransk
FR
Italiensk
IT
Spansk
ES
Portugisisk
PT
Hollandsk
NL
Græsk
EL
Polsk
PL
Arabisk
AR
Vietnamesisk
VI
Kinesisk
ZH
Japansk
JA
Koreansk
KO
15 sprog total · dansk er det specialiserede
04 · PlapreText → Speech
Del 2 af 2

Plapre.

Skriv en sætning, få naturlig dansk tale tilbage. Klon en stemme fra 30 sekunders rent lydklip.

Text-to-Speech
04 · PlapreArkitektur
Pipelinen

Decoder-LLM + neural audio-codec.

Input
Tekst
prefix: speaker_emb
Transformer
Audio-tokens
Kanade decoder
Output
24 kHz tale

En decoder-only transformer (Llama-stil) forudsiger diskrete audio-tokens autoregressivt. En 128-dim taler-embedding indsættes som første token og betinger genereringen.

Tokens dekodes til 24 kHz waveform af Kanade-codec'en. Inference kører i vLLM, så batched generering skalerer som almindelig LLM-inference.

Tekst → tokens → lyd
04 · PlapreAudio tokens
Den fundamentale idé

Tale som en sekvens af diskrete tokens.

Rå lyd er kontinuert: 24.000 samples i sekundet. For en transformer er det uframkommeligt.

En neural audio codec lærer et "alfabet" af typisk 1.024–4.096 lydsymboler. Hver token ≈ 40 ms tale.

Resultat: tale bliver til en token-sekvens. Præcis hvad en transformer er bygget til at modellere.

Sammenligning
Modalitet Rate Vokabular
Tekst (BPE) ~3 tok/s ~50k
EnCodec 2022 600 tok/s 1024 × 8 lag
SNAC 2024 86 tok/s 4096 × 3 lag
Kanade 2025 25 tok/s 12.800
Lyd som tokens
04 · PlapreTokenizer
Vores tokenizer

Kanade. Lyd ud, to ting tilbage.

Input
Rå lyd
Encoder
Kanade
Content tokens
HVAD der siges · 25 tokens/s
Global embedding
HVEM der taler · 128-dim vektor
Vokabular
12.800 tokens · 341 bps bitrate · single-stream
Token rate
25 Hz · én token pr. 40 ms tale
Konsekvens
Samme content tokens + ny embedding = stemmekloning gratis
Plapre kobling
nn.Linear(128 → 576/960) projicerer embedding ind som første token i sekvensen
Kanade · disentangled output
04 · PlapreVokabular
Tekst og lyd i ét alfabet

Plapres tokenizer: 20.802 tokens.

BPE · 8.000
Audio · 12.800
8.000
BPE text tokens
Trænet fra bunden på de danske transskriptioner i NST-DA og FTSpeech.
2
Separator tokens
<text> og <audio> markerer hvor tekst slutter og lyd starter.
12.800
Lydtokens · atomiske
<audio_0> til <audio_12799>, én per Kanade codebook-entry. Tilføjet som special tokens så BPE'en ikke splitter dem.

SmolLM2 har 49.152 tokens. Vi kører kun med 20.802. Mindre embedding-tabel, samme transformer-vægte. Det er derfor Pico ender på 118M og Nano på 327M i stedet for de oprindelige 135M og 360M.

One vocab, two modalities
04 · PlapreTiming
Hvorfor først nu

Tre kurver der krydsede i 2024–25.

01
Codecs blev kompakte
SoundStream (2021) → EnCodec (2022) → SNAC (2024) → Kanade (2025). Fra 600 tok/s til 25 tok/s. En LLM kan endelig generere et sekunds tale på et håndtag tokens.
02
LLM-stacken modnede
vLLM, FlashAttention, GGUF og llama.cpp. Det samme værktøjssæt der kører tekst-LLM'er kører nu også tale-LLM'er. Real-time inference på en bærbar.
03
Åbne danske data
NST-DA, FTSpeech og CoRal er endelig samlet, kurateret og frit tilgængelige. Uden dem ingen dansk-først model.
Codecs + stack + data
04 · PlapreModeller
To modelstørrelser

Vælg efter hardware og kvalitetsbehov.

Pico · 118M

Hurtig · CPU

Hidden dim 576, 16 lag. Til laptop, Raspberry Pi og embedded. GGUF-kvantiseret. Real-time tale på alm. CPU.
118M paramsdim 576GGUF Q4 / Q8
Nano · 327M

Højere kvalitet

Hidden dim 960, 24 lag. Mere naturlig prosodi og klarere stemmekloning. CUDA-GPU anbefales.
327M paramsdim 960vLLM batched
Pico + Nano
04 · PlapreVoice cloning
Stemmekloning på 30 sekunder

Ingen finetuning. Ingen træning. Tre linjer kode.

# Reference: 10–30 s rent lydklip
from plapre import Plapre

tts = Plapre("syvai/plapre-nano")
tts.speak(
    "Velkommen til konferencen.",
    output="out.wav",
    speaker_wav="reference.wav",
)

Modellen ekstraherer en stemme-embedding fra referencen og betinger generering på den. Det fungerer for alle stemmer, ikke kun dem fra træningssættet.

Anbefaling: 10–30 sekunders rent klip uden baggrundsstøj, gerne læst tekst.

plapre · speaker_wav=
04 · PlapreUse cases
Hvor giver det mening

Når tekst skal høres.

01 · Privacy-projekter

Lokal AI-assistent

Stemme til hjemmeautomation, offline-værktøjer og Raspberry Pi-projekter. Uden data der forlader hjemmet.

02 · Indlæsning

Artikler, e-bøger, podcasts

Generér audio-version af indhold uden licens-omkostning pr. ord. Vælg én stemme for hele kataloget.

03 · Tilgængelighed

Naturlige skærmoplæsere

Dansk talesyntese der lyder som dansk, for både private apps og offentlige tjenester.

04 · Spil & apps

Voice-overs & in-app feedback

Lokal TTS til danske spil og produkter uden at sende dialog til eksterne tjenester.

Plapre i felten
05 · SammenEt samlet stack
Hviske + Plapre

Tale ind. Tale ud. Helt lokalt.

Bruger
Talt dansk
hviske
Din applikation
LLM · logik
plapre
Svar
Talt dansk

Sammen med DanskGPT i midten har I et fuldt dansk voice-stack der aldrig forlader jeres infrastruktur.

Stemme i, stemme ud
05 · KundecaseOS2 · Memoctopus
I produktion

Memoctopus.

Møde-til-referat for danske kommuner. Helt lokalt. Hele vejen igennem.

PARTNER
OS2
Kommunernes fælles
open source-organisation
LICENS
MPL-2.0
Open source
github.com/OS2sandbox
ROLLE
syv.ai
Bygger den danske
tale-AI under motorhjelmen
Open source · MPL-2.0
05 · KundecaseArkitektur
Sådan kører det

Lyd ind. Referat ud. Intet forlader kommunen.

Input
Møde-lyd
transkribér
syv.ai
Hviske
resumer
syv.ai
DanskGPT
strukturer
Output
Referat
Stack
Next.js · UI
FastAPI · backend
PostgreSQL · historik
vLLM · LLM-serving
Docker Compose · deploy
Hvorfor det betyder noget

Mødelyd indeholder personnavne, CPR-numre, social- og personalesager. Med Memoctopus rammer den aldrig en amerikansk server.

Memoctopus erstatter Whisper-API'et med Hviske og kører LLM'en lokalt via vLLM. Kommunerne kan dele opskriften, ikke deres data.

github.com/OS2sandbox/memoctopus-mvp
05 · SuverænitetManifest

Dansk sprog hører hjemme på dansk hardware.

Når infrastrukturen er åben og lokal, behøver borgere, kunder og medarbejdere ikke at vælge mellem moderne AI og deres egne data.

Open · Local · Sovereign
05 · RecapTallene samlet
På én side

Performance og pris. På én side.

13,9%
Hviske · strict WER
Vægtet snit på CoRal v3.
100%
Lokal kørsel
Ingen API-kald. Ingen telemetri.
0kr
Pr. ord
Selvhostet og open source.
CPU
Plapre Pico
Real-time på laptop & Pi.
Hviske + Plapre · tal
06 · Kom i gangInstallation
Tre kommandoer

Prøv det selv inden du går herfra.

Plapre · TTS
$ pip install plapre

from plapre import Plapre
tts = Plapre("syvai/plapre-nano")
tts.speak("Hej med dig.", output="out.wav")
Hviske · ASR
from transformers import AutoModelForSpeechSeq2Seq

model = AutoModelForSpeechSeq2Seq.from_pretrained(
    "syvai/hviske-v5.3",
    trust_remote_code=True,
)
model.transcribe(audio_arrays=[audio], language="da")
github.com/syv-ai/plapre
huggingface.co/syvai
pip install plapre
syv.ai Tak
Prøv det. Det er åbent.

Hent på Hugging Face.

Hviske · ASR
huggingface.co/syvai/hviske-v5.3
Plapre · TTS
huggingface.co/syvai/plapre-nano
Kommerciel
mads@syv.ai

Tak. Spørgsmål?

syv.ai · København Ø