Tontaube V1.1: Open TTS with voice cloning, German as a core language, and CPU support

Craitech has released Tontaube V1.1, a text-to-speech model with downloadable weights. It clones a voice from a few seconds of audio, is built for long-form text like audiobooks, and treats German as a main language alongside English. The 4-bit version needs about 4 to 6.5 GB of VRAM and runs at roughly real-time speed on a desktop CPU.

Model releases Try it yourself Nov 13, 2026 8 min read Source: Reddit rising: KI-Szene
Illustrative image, AI-generated

What's new

The Craitech team has released Tontaube V1.1, an open-weights text-to-speech (TTS) model that turns written text into spoken audio. Its main strengths are voice cloning, long-form text like audiobooks, and low-latency streaming. English and German are the main languages, and the model also handles Spanish, French, Italian, Dutch and Portuguese. A German project that treats German as a first-class language is unusual among open TTS models.

The GitHub repository github.com/craitech/tontaube contains the inference server, the software that runs the model and exposes an API. The weights are hosted separately on Hugging Face: a 4-bit version (TontaubeAI/TontaubeV1.1-int4) and a full-precision version (TontaubeAI/TontaubeV1.1). The server downloads them automatically the first time it starts. According to the docs, the repositories may be private or gated for now. In that case you'll need a Hugging Face token with read access. The source doesn't say which license applies. The project also points to a technical report on the previous version and an online demo.

How Tontaube works

The model splits speech into four streams called codebooks. It does this with the DualCodec audio codec, which turns audio into a sequence of discrete tokens, a bit like how text is made of letters. Each second of audio becomes 12.5 of these steps. The bottom stream (CB0) generates the "semantic" audio tokens. It decides what gets said and how long each piece lasts. It works autoregressively, meaning piece by piece, with each new element building on the ones before it. The other three streams (CB1 to CB3) then fill in the acoustic detail.

Here's the trick: the acoustic chunks don't depend on the previous acoustic chunks. That means they can be computed in parallel, and the developers say the voice stays stable even across long texts. In many TTS systems, a cloned voice slowly shifts over time, a problem known as voice drift.

CB0 is based on Qwen3-1.7B, while CB1 to CB3 use the smaller Qwen3-0.6B. A stripped-down version of VibeVoice re-encodes part of the output and also decodes the stream. The model reads text character by character and knows 168 characters in total. Accents on other Latin letters are stripped. Other scripts, emojis and control characters are removed.

Component Job Transformer blocks Parameters
CB0 Semantics and duration 28 1.85B
CB1 Acoustic refinement 16 449M
CB2 Acoustic refinement 8 327M
CB3 Acoustic refinement 4 269M
Total 56 2.9B

You can optionally turn on a "verbalizer". This separately trained model rewrites English text into a speakable form before synthesis, so digits and abbreviations become spelled-out words. It only works for English, needs about 1.9 GB of extra VRAM and is off by default.

What the model can do

  • Zero-shot voice cloning: A reference recording with 5 to 60 seconds of clean speech from one speaker is enough. The developers say longer recordings usually give better results, but anything past one minute isn't used.
  • 46 built-in voices: 39 standard voices across all seven languages plus seven legacy voices. The default is "Marcus".
  • Three speaking styles: audiobook, conversational and "agentic", meant for AI assistants.
  • Five style controls: speaking rate (5 levels), pauses (5 levels), pitch range from monotone to very expressive (6 levels), pitch level from low to high (5 levels) and articulation from crisp and clipped to normal (3 levels). You can set the controls differently for individual sections of text.
  • Long-form text: Text and audio are split at sensible boundaries so you don't hear cuts at the transitions.
  • Streaming as MP3 over Server-Sent Events or as Opus over WebSocket. That's useful for voice assistants that should start talking before the full text is ready.
  • Continue and regenerate from any point in existing audio, for example to replace a botched sentence.
  • Self-checking: If a chunk comes out too fast or too slow, or text is missing, the server regenerates it automatically, up to five times.

Output is generated at 24 kHz. For regular non-streaming requests, the MossFormer2 enhancer upscales audio to 48 kHz by default and shortens long pauses. The enhancer is an extra model of about 420 MB that's downloaded on first use. The project also ships a web UI with controls, reference-voice upload and downloads, plus OpenAPI documentation.

Speed and benchmarks

According to the developers, the 4-bit version on an Nvidia GeForce RTX 5090 reaches a median of 192 milliseconds to first audio when streaming. A single request runs about 13 times faster than real time, and batched requests together run 21 to 23 times faster. On a 12-core desktop CPU with dual-channel DDR4, the model manages roughly real time. That means long streams can have short gaps between chunks.

So far, quality measurements exist only for the previous version, TontaubeV1, not for V1.1. The developers ran an LLM-as-a-judge test, where a language model acts as the referee. Gemini 3.1 Pro Preview compared pairs of recordings across 400 English audiobook passages, in both orders. It rated prosody (stress, rhythm and intonation) and word accuracy. 50 percent means a tie.

Compared with Prosody (preference for Tontaube) Word accuracy
ElevenLabs Flash v2.5 50.1% 48.9%
Fish Audio S2 Pro 82.1% 49.6%
Gradium API (April 2026) 86.2% 54.6%
Cartesia Sonic 3 82.3% 60.8%

The developers point out the test's weaknesses themselves. ElevenLabs, Gradium and Cartesia used fixed vendor voices, while Tontaube used a cloned reference, which could favor Tontaube. The test also only measures English reading prosody and text accuracy. It says nothing about voice similarity, audio quality, other languages, stability over long texts or streaming quality.

What you need to try it

  • Operating system: Officially Linux only, with Python 3.12. Windows works through WSL2 with CUDA. macOS and non-Nvidia GPUs are not supported.
  • GPU: An Nvidia GPU from the Ampere generation onward (RTX 30 series or newer). The 4-bit model loads in about 4 GB of VRAM and peaks at around 6.5 GB, for example with long texts, when ingesting a reference voice or with the enhancer. So an 8 GB card is enough. Older Pascal cards like the GTX 10 series also work. For those, the server automatically sets up a separate environment that takes about 9 GB of disk space.
  • No GPU: The 4-bit model also runs on an x86-64 CPU with AVX2, FMA and F16C plus a C++ compiler. A 12-core CPU gets you roughly real time. The verbalizer and enhancer aren't available in that mode.
  • Full precision: The vLLM backend needs at least 24 GB of VRAM, or 32 GB for the high-throughput mode.
  • Software: The uv package manager, FFmpeg and the Opus library. You install with git clone, then uv run --python 3.12 --frozen tontaube serve starts the server. A Docker image is also available.

Limits and risks

The developers are upfront about the weaknesses. Because the model is autoregressive, it can skip, repeat or alter text and stop too early or too late. When cloning, it can pick up quirks of the recording, such as room reverb, and may not match the voice perfectly. Pronunciation of German sounds can be off. No native speaker has checked the other five languages, so the developers make no quality claims about them. By their own account, audiobooks work more reliably than conversations.

The project also explicitly warns about misuse:

Voice cloning can enable identity fraud, deception, non-consensual speech synthesis and misleading media.

If you want to use someone else's voice, get their permission first. Out of the box, the server is only reachable from your own machine and isn't secured. Before exposing it to a network, you should enable API keys, TLS encryption and rate limiting. The developers plan to release fine-tuning code later.

Our take

Tontaube fills a real gap. Good open TTS models with voice cloning are usually focused on English or Chinese. Here, German is a main language from day one, and the model already runs on a mid-range GPU or even just a CPU. That makes it a good fit for audiobook experiments, read-aloud projects and local voice assistants, with no data going to the cloud.

Some questions remain, though. The quality numbers come from the previous version, cover only English and don't measure voice similarity. The comparison with commercial services like ElevenLabs is methodologically skewed in Tontaube's favor, and there are no independent tests yet. It's also unclear what the license is and whether the weights are freely available or still need approval. The installation hurdles are fairly high: Linux only, no Mac, and a carefully pinned dependency chain you can't reproduce with a simple pip install. If you have a Linux machine with an Nvidia card, it's still worth a try, especially for the German voice output.

Sources

#text-to-speech#voice cloning#open weights#german#audio
Read the original source

Try it yourself: Tontaube V1.1

Explained step by step, no prior knowledge needed – on your own computer or free in your browser.

What can I do with it?

Tontaube reads any text aloud with natural intonation. It works best in German and English and also supports five other European languages. With a short sample of 5 to 60 seconds, you can clone a voice without any training. The model is designed for long-form text like audiobooks and aims to keep the voice stable for many minutes. Five controls adjust rate, pauses, expressiveness, pitch and articulation. You can pick from audiobook, conversational and assistant styles. In the developers' English read-aloud test, even the previous version matched ElevenLabs Flash v2.5 on prosody and clearly beat Fish Audio, Gradium and Cartesia. There are no independent tests yet, though. Limits: the model can skip or repeat words, German pronunciation isn't always perfect, and no native speaker has checked the secondary languages.

Who is it worth it for?

Worth it if you want local, cloud-free German speech output on a Linux machine with an Nvidia card (about 8 GB or more) or a strong x86 CPU: audiobook hobbyists, podcasters, voice-assistant developers or accessibility projects. Not a good fit for Mac users, Windows users without WSL2, or anyone who doesn't want to deal with the command line.

Ideas: What you can do with it

Make your own audiobook

Load your own manuscript or a public-domain classic into the web UI chapter by chapter and pick the 'audiobook' style. The server splits long texts on its own and produces finished MP3 or WAV files you can play back to back.

Bedtime stories in a family member's voice

With their permission, record a minute of Grandma or Dad reading aloud and use it as the reference voice. That way, the familiar voice can read new stories even when that person isn't around.

Local voice assistant

Connect Tontaube to a local language model through the streaming interface (WebSocket with Opus). Your home assistant then answers in German within a fraction of a second, and not a single word goes to the cloud.

Voice a podcast intro and jingles

Write a short intro and try out different versions with the pitch, expressiveness and rate controls. Then download the 48 kHz file and edit it into your podcast.

Learning materials and accessibility

Turn worksheets, club newsletters or website text into audio, for example for people with low vision or for learning on the go. The continue-from-a-point feature lets you regenerate individual botched sentences.

Foreign-language practice

Have the same sentences read in Spanish, French or Italian at a slow rate to train your listening skills. Keep in mind that, according to the developers, native speakers haven't checked these languages.

Size2.9 B parameters
Download1.5 GB (about 2 min at 100 Mbit/s)
Licensecustom license (see Model Card)
TypeSpeech output (text to speech)

What your computer needs

Graphics card (NVIDIA) at least 6.5 GB VRAMDeveloper figures: the 4-bit model needs about 4 GiB of VRAM to load and about 6.5 GiB at peak. The optional English verbalizer (which rewrites text into spoken form, e.g. numbers as words) needs about 1.9 GiB more. The full version on the vLLM backend needs at least 24 GiB.
Mac (Apple Silicon M1–M5) not supportedAccording to the developers, macOS isn't supported, not even on Apple Silicon. To try it, use the online demo ("Try Tontaube online" on tontaube.ai). Alternatively, run it on a Linux machine with an NVIDIA GPU or a compatible x86 processor.
CPU only (no graphics card) Runningusable without a graphics card, according to the developers – a regular PC or laptop is enough
Storage approx. 3.5 GB freeModel download plus programs
In the browser Online demo availabletry it on Hugging Face, no installation needed

The default is the 4-bit model (TontaubeAI/TontaubeV1.1-int4) with the Lite backend. It suits Nvidia cards from Ampere onward with at least 8 GB (peak usage around 6.5 GB) as well as CPUs without a GPU. Older Pascal cards like the GTX 1070 or 1080 work via the automatically selected CUDA 12.6 build. The full-precision version (TontaubeAI/TontaubeV1.1) with the vLLM backend only makes sense from 24 GB of VRAM, or 32 GB for the high-throughput mode, so mainly for servers handling many concurrent requests. If you want something in between, you can build an int8 version yourself. That takes a one-time run on a card with about 12 GB of VRAM.

  • 4-bit default model: loads in about 4 GB of VRAM and peaks at about 6.5 GB. The optional English verbalizer adds another 1.9 GB.
  • Supported: Nvidia GPUs from Ampere (RTX 30 series) with bf16. Pascal (GTX 10 series) runs via a separate CUDA 12.6 build that needs about 9 GB of extra disk space.
  • CPU mode works on x86-64 with AVX2, FMA and F16C plus a C++ compiler. A 12-core CPU with DDR4 manages about real time, and speed depends mostly on memory bandwidth.
  • The full-precision vLLM backend needs at least 24 GB of VRAM, or 32 GB in the high-throughput profile.
  • Only Linux is supported. Windows works via WSL2 with CUDA. macOS and AMD or Intel GPUs don't work.
  • On an RTX 5090, the median time to first audio is 192 ms, and a single request runs about 13 times faster than real time.
How do I find out what my computer has?
  • Windows: Press Ctrl + Shift + Esc → Task Manager → Performance tab → click GPU on the left. At the bottom you'll see Dedicated GPU memory (that's your VRAM). You'll find system memory under Memory.
  • Mac: Apple menu at the top left → About This Mac. You'll see your chip (e.g. M2) and memory (e.g. 16 GB). On Apple chips, graphics and processor share this memory.
  • Linux: Type nvidia-smi in the terminal (shows your graphics card and its memory) and free -h for system memory.

Guide

This model runs with its developers' own program (craitech/tontaube on GitHub). The commands below come from the Model Card and the developers' instructions.

In the browser (no installation)

The developers have an online demo on Hugging Face. You can try the model right away there without installing anything. Sometimes you have to wait a moment for the demo to wake up.

Open online demo

Windows 10 / 11

Windows 10 / 11: not supported. According to the developers, Tontaube doesn't run natively on Windows. You can use WSL2, though: a Linux environment that runs inside Windows and can use your NVIDIA GPU via CUDA. Inside it, follow the Linux instructions. If you'd rather skip the install, you can try the model in the "Try Tontaube online" demo on tontaube.ai.

macOS

macOS: not supported. According to the developers, macOS isn't supported, not even on Apple Silicon. To try it, use the online demo ("Try Tontaube online" on tontaube.ai). Alternatively, run it on a Linux machine with an NVIDIA GPU or a compatible x86 processor.

Linux

Linux: supported. Linux is the officially supported system, ideally Debian or Ubuntu. It runs on NVIDIA GPUs from the Ampere generation onward (RTX 30 and newer). Older cards like the GTX 10 series also work, and a matching build is set up automatically. Without a GPU, it runs on x86-64 processors that support AVX2, FMA and F16C. AMD and Intel GPUs aren't supported.

  1. Install the prerequisites. You need Git and uv. uv is a tool that sets up Python 3.12 and all extra packages automatically. You'll find the uv install guide on Astral's uv website (docs.astral.sh/uv). You also need FFmpeg (an audio tool) and the Opus library. Install both with the commands below. With an NVIDIA GPU, the current NVIDIA driver must be installed. Without a GPU, you need a C++ compiler, a program that turns source code into executables.
    sudo apt-get update
    sudo apt-get install -y ffmpeg libopus0
  2. Download the software. This downloads the server at exactly version v1.1.0, which matches the model files. Don't mix versions. Then switch into the new "tontaube" folder.
    git clone --branch v1.1.0 --depth 1 https://github.com/craitech/tontaube.git
    cd tontaube
  3. Start the server (GPU). This command creates the Python environment, installs everything at the pinned versions and starts the server. On first launch it downloads the model (about 1.8 GB) and other components, which can take a while. Keep this terminal window open while you use the server.
    uv run --python 3.12 --frozen tontaube serve
  4. Alternative: run the server on the CPU only. If you don't have a GPU, the server uses the CPU automatically. LITE_DEVICE=cpu forces CPU mode even on a machine with a GPU. On a 12-core processor, generation runs at about the same speed as the speech itself.
    LITE_DEVICE=cpu uv run --python 3.12 --frozen tontaube serve
  5. Check that it's ready. Open a second terminal window. This command asks whether the server has finished loading. If there's no error message, it's ready. If you get an error, wait a bit and try again.
    curl --fail http://127.0.0.1:8080/readyz
  6. Generate your first audio file. This command sends the sample sentence "Welcome to Tontaube." to the server and writes the response to welcome.wav. It's spoken by the built-in English voice "Marcus" in the "conversational" style.
    curl --silent --show-error --fail http://127.0.0.1:8080/predict \
      -H 'content-type: application/json' \
      -d '{"text":"Welcome to Tontaube.","language":"english","tag":"conversational","format":"wav"}' \
    | python3 -c 'import base64,json,sys; sys.stdout.buffer.write(base64.b64decode(json.load(sys.stdin)["audio_b64"]))' \
    > welcome.wav
  7. Listen to the result. The current folder now contains welcome.wav. Open it in any audio player. If the file is empty, check the first terminal for error messages.
  8. Result. The tontaube folder now contains welcome.wav, in which an English voice says "Welcome to Tontaube."

What to do after your first result

  • Your own text: change the "text" value in the command. For German, set "language" to "german". Available styles ("tag") are "audiobook", "conversational" and "agentic" (voice assistant).
  • Clone a voice: record 5 to 60 seconds of clear speech from a single person as a WAV file, for example on your phone. Ask that person for permission first. Then send the file using the cloning command from the docs and the voice_audio_b64 field.
  • Style controls: use "controls" to set rate, pauses (pause), melody (pitch_range), pitch level (pitch_level) and articulation (legato), e.g. {"rate":1,"pause":3} for slow speech. GET /controls shows the available controls.
  • Browser UI: keep the server running and start "uv run tontaube ui" in a second terminal. Then open http://127.0.0.1:3000/ in your browser. There you can pick voices, upload your own recordings, use the controls and download the results.

Try it

Welcome to Tontaube. Today I'm going to read you a short story.
Once upon a time, a little lighthouse stood on the North Sea coast, patiently watching over the dark water every night – until one evening a strange ship appeared on the horizon.
Good morning! Your next appointment is at half past nine, and it's twelve degrees outside with light drizzle. Should I add an umbrella to your shopping list?
Chapter one. The train left the station half an hour late. Anna rested her head against the cool window and counted the power pylons disappearing into the fog. She hadn't told her sister she was coming.
Good evening and welcome back. Tonight we are talking about lighthouses, storms, and the people who kept the lights burning.

Tips for better results

  • For voice cloning, record 30 to 60 seconds of clean speech with no reverb, music or second voices. The developers say longer references give stronger results, but one minute is the cap.
  • Temperature defaults to 0.7. Lower it, for example to 0.55 as in the benchmarks, and the output sticks closer to the text. Higher values sound more expressive but raise the risk of errors.
  • For long texts and read-aloud projects, pick the 'audiobook' style. The developers describe it as more reliable than the conversational and assistant styles.
  • Try the controls in the web UI at http://127.0.0.1:3000, for example a slower rate (rate 1) with more pauses (pause 3) for calm narration.
  • In German text, spell out numbers, abbreviations and special characters. The verbalizer only works for English, and unsupported characters are removed.

If something goes wrong

As long as the Hugging Face repositories are private or gated, you need to set a read token as HF_TOKEN, or the download will fail.

Don't install with a plain 'pip install .'. Because of a conflict between the protobuf versions required by vLLM and AudioTools, only 'uv sync --frozen' or the bundled requirements-pip.lock with '--no-deps' works.

Don't mix code and model files from different versions. For V1.1, the Git tag v1.1.0 and model revision v1.1.0 belong together.

FFmpeg and libopus must be installed. On Debian or Ubuntu, use 'sudo apt-get install -y ffmpeg libopus0'.

The first non-streaming request takes longer because the MossFormer2 enhancer (about 420 MB) has to be downloaded first. The first CPU start also compiles native kernels.

The verbalizer only works for English and only with a GPU. On CPU-only machines, leave out ENABLE_VERBALIZATION.

“out of memory,” a crash, or your computer freezes

The model is too big for your VRAM (video memory). Pick a smaller variant from the table above and close other programs, especially games and browsers with lots of tabs.

It runs, but extremely slowly

Your CPU is probably doing the work instead of your graphics card. In Ollama, the PROCESSOR column of ollama ps shows how much runs on the GPU. If it says "100% CPU", update your graphics driver or pick a smaller variant that fits entirely into VRAM (video memory).

“ollama” or “python” is not found

Close the terminal window and open it again so it recognizes the newly installed program. For Python on Windows: reinstall it and check Add python.exe to PATH.

Windows: "Running scripts is disabled on this system"

Run the script with exactly the command above: powershell -ExecutionPolicy Bypass -File try_windows.ps1. This allows execution for this one time only.

Error message when loading the model (version, "trust_remote_code", unknown architecture)

Brand-new models often need the latest software version. With Ollama: update Ollama. With Python: pip install -U transformers in the activated environment. The Model Card usually lists the exact version.

Tokenstrom generates the scripts and notebook automatically. Please take a quick look before running them – they're plain, readable text. Mind the model's license: custom license (see Model Card).

Ask the AI assistant

Questions about this article, installation or background? Our assistant knows this page and runs on our own machine, not in someone else's cloud.

Connecting …

The Assistant is an AI (Gemma 4) and can make mistakes – please check important details against the source. Questions are used only to generate an answer and are deleted after one hour. Please don't enter any personal data.

Comments

What do you think? Already tried it? Write it here, no sign-up needed.

  1. Loading comments …

Comments are public. Links aren't allowed, and we delete abusive posts. You can delete your own comment at any time in this browser. Learn more in the Privacy Policy.