Futhark Hugin
Hugin is a small, fast Swedish text-to-speech model that also reads English, both on its own and mixed into Swedish sentences. It is a 15 M parameter non-autoregressive Transformer (phonemes -> durations -> mel in one pass, no sampling, no diffusion) with an 8 M parameter Vocos vocoder, and outputs 24 kHz audio. It ships with one voice, B1 (w), a synthetic voice designed with VoxCPM2, and with hugin-finetune, which makes your own voice from about 500 recorded sentences. The text front-end handles numbers, dates, abbreviations, acronyms, homographs, word stress and English detection. The packaged version is v0.8-en.
Listen
Generated with this package on CPU, voice B1, no editing.
Greeting: Hej och välkommen! Jag heter Hugin, och jag läser svensk text högt.
Times, prices, phone numbers: Tåget mot Göteborg avgår kl. 19:05 från spår 3, och biljetten kostar 245 kr. Ring 08-123 45 67 om du har frågor.
Story: Det var en tidig morgon i slutet av augusti. Dimman låg fortfarande kvar över sjön, och någonstans långt borta hördes en båtmotor.
News: Under natten väntas kraftiga vindar längs kusten, och flera färjeturer kan bli inställda redan i morgon bitti.
Tongue twister: Sju sjösjuka sjömän sköljde skjortorna, medan Rolf ringde runt till rektorerna.
Particle verbs and a long compound: Hon tog upp frågan på mötet, men chefen höll inte med. Det kan jag inte berätta eftersom det råder förundersökningssekretess.
English: Could you send me the updated report before lunch tomorrow? The meeting starts at 10:30.
Swedish with English words: Vi har en deadline på fredag, så jag bokar ett kort meeting med vårt product team. Alla kortkunder får cashback.
| Size | 15 M (acoustic model) + 8 M (vocoder); weights about 150 MB including lexicon and G2P |
| Speed | ~40× real time on a 6-thread desktop CPU, ~250–500× on an RTX 4070 |
| Quality (Whisper letter error, in-house bench) | Swedish 0.4 %, English 0.0 %, mixed Swedish/English 0.3 % |
| Own voice | ~500 sentences (35–45 min) -> about 10–60 min of training on one NVIDIA GPU (guide) |
Install and use
pip install -U huggingface_hub
hf download codah80/futhark-hugin --local-dir futhark-hugin
pip install -e "./futhark-hugin[prominence]" && python -c "import stanza; stanza.download('sv', processors='tokenize,pos')"
python -m hugin "Hej och välkomna! Klockan är 18:30." -o hej.wav
from hugin import Hugin
tts = Hugin.from_pretrained() # or voice="my_voice.pt" for your own voice
audio, sr = tts.tts("Det var en tidig morgon i slutet av augusti.")
import soundfile as sf; sf.write("morgon.wav", audio, sr) # float32, 24 kHz
Stanza (word stress) is optional but recommended. Without it, install with pip install -e . and add --no-prominence.
More
- docs/DETAILS.md: all options, the text front-end, the pronunciation dictionary, word timestamps, the HTTP server, performance figures and files.
- docs/FINETUNE.md: record and train your own voice (
hugin-finetune prepare | train | export). Use only your own voice or a voice you have explicit permission to use. - VERSIONS.md (training history) · ATTRIBUTION.md (data, models, licences).
Code and weights: Apache License 2.0. Training data and third-party models keep their own licences (see ATTRIBUTION.md); CC BY sources are credited there.