--- language: - sv - en library_name: pytorch pipeline_tag: text-to-speech license: apache-2.0 tags: - text-to-speech - tts - swedish - english - non-autoregressive - voice-adaptation --- # 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](docs/FINETUNE.md)) | ## Install and use ```bash 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 ``` ```python 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](docs/DETAILS.md): all options, the text front-end, the pronunciation dictionary, word timestamps, the HTTP server, performance figures and files. - [docs/FINETUNE.md](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](VERSIONS.md) (training history) · [ATTRIBUTION.md](ATTRIBUTION.md) (data, models, licences). Code and weights: [Apache License 2.0](LICENSE). Training data and third-party models keep their own licences (see ATTRIBUTION.md); CC BY sources are credited there.