Een spraakassistent die je mails laat samenvatten of een tekst laat herschrijven, zonder dat er één opname je computer verlaat: dat bouw je tegenwoordig met drie gratis onderdelen. Whisper zet je stem om naar tekst, Gemma bedenkt het antwoord via Ollama en Piper spreekt het uit. Geen cloud, geen abonnement, en na de downloads ook geen internet.
Hoe de keten werkt
De opbouw is altijd hetzelfde: microfoon → spraakherkenning → taalmodel → spraaksynthese → luidspreker. Elk onderdeel kun je later vervangen door een beter exemplaar zonder de rest om te gooien. Dat maakt dit een opstelling die je jaren kunt blijven gebruiken.
Gemma is de familie open modellen van Google. Het 12B-model is volgens Google klein genoeg om lokaal te draaien met ongeveer 16 GB geheugen, en valt onder de Apache 2.0-licentie, dus ook commercieel gebruik mag (Bron: Google). Google bouwde zelfs audio-invoer in het model zelf (Bron: Hugging Face). Toch gebruik je hier een losse spraakherkenner, want in de Ollama-library staat bij elke Gemma-variant alleen tekst en beeld als invoer (Bron: Ollama).
💡 Beginner-tip: STT staat voor speech-to-text (spraak naar tekst), TTS voor text-to-speech (tekst naar spraak). Samen zijn ze de oren en de mond van je assistent; Gemma is het brein ertussen. Nog nooit een lokaal model gedraaid? Begin dan met onze gids Ollama installeren.
Stap 1: installeer Ollama en haal Gemma binnen
Ollama is er voor macOS, Windows en Linux. Op Mac en Linux installeer je het met curl -fsSL https://ollama.com/install.sh | sh, op Windows met de installer of via PowerShell (Bron: Ollama). Daarna typ je in een terminal:
ollama run gemma4:12b
Ollama downloadt het model eenmalig en opent een chat. Werkt dat, dan staat het brein van je assistent. Sluit af met /bye; het model blijft beschikbaar voor andere programma’s. Heb je minder dan 16 GB geheugen, kies dan een kleinere variant uit de tabel onderaan.
Stap 2: spraakherkenning met faster-whisper
Voor het luisterwerk gebruik je faster-whisper, een snellere herbouw van OpenAI’s Whisper die ook op een gewone processor draait (Bron: faster-whisper). Whisper verstaat Nederlands; je geeft dat met language="nl" mee zodat hij niet hoeft te raden.
pip install faster-whisper ollama sounddevice piper-tts
Dit installeert in één keer ook de Python-bibliotheek van Ollama (Bron: ollama-python), sounddevice voor de microfoon en Piper voor de stem. Liever C++ dan Python? Dan is whisper.cpp het alternatief. Dat project heeft een whisper-stream-voorbeeld dat je microfoon continu uitschrijft (Bron: whisper.cpp). Meer over Whisper zelf lees je op de Whisper-toolpagina.
Stap 3: een Nederlandse stem met Piper
Piper is een lichte, lokale spraaksynthesizer, tegenwoordig onderhouden door de Open Home Foundation onder een GPL-3.0-licentie (Bron: Piper). Er zijn Nederlandse stemmen voor Nederland en voor Vlaanderen (Bron: Piper voices). Download er een in de map waar je script komt te staan en test hem:
python3 -m piper.download_voices nl_NL-pim-medium
python3 -m piper -m nl_NL-pim-medium -- 'Hallo, ik draai helemaal offline.'
Direct afspelen vraagt ffplay (onderdeel van FFmpeg) op je systeem (Bron: Piper CLI). Hoor je niets, installeer dan eerst FFmpeg.
Stap 4: knoop het aan elkaar
Dit script neemt vijf seconden op, laat Whisper uitschrijven, stuurt de tekst naar Gemma en laat Piper het antwoord uitspreken. Het onthoudt het gesprek, dus je kunt doorvragen.
import subprocess
import sounddevice as sd
from faster_whisper import WhisperModel
from ollama import chat
stt = WhisperModel("small", device="cpu", compute_type="int8")
gesprek = [{"role": "system", "content": "Je bent een behulpzame assistent. Antwoord kort en in het Nederlands."}]
while True:
input("Druk op Enter en praat vijf seconden...")
audio = sd.rec(5 * 16000, samplerate=16000, channels=1, dtype="float32")
sd.wait()
segmenten, _ = stt.transcribe(audio.flatten(), language="nl")
vraag = " ".join(s.text for s in segmenten).strip()
print("Jij:", vraag)
gesprek.append({"role": "user", "content": vraag})
antwoord = chat(model="gemma4:12b", messages=gesprek).message.content
gesprek.append({"role": "assistant", "content": antwoord})
print("Gemma:", antwoord)
subprocess.run(["python3", "-m", "piper", "-m", "nl_NL-pim-medium", "--", antwoord])
De WhisperModel-aanroep met device="cpu" en compute_type="int8" komt rechtstreeks uit de faster-whisper-documentatie; met een NVIDIA-kaart zet je device="cuda" (Bron: faster-whisper). Het eerste gebruik downloadt het Whisper-model, daarna kan de wifi uit.
⚡ Gevorderden: Piper laadt zijn stem bij elke aanroep opnieuw, wat merkbare vertraging geeft. De Piper-docs raden voor herhaald gebruik de ingebouwde webserver aan (Bron: Piper CLI). Wil je Gemma de audio rechtstreeks laten horen, dan kan dat via Hugging Face Transformers, tot 30 seconden per fragment (Bron: Hugging Face).
Wat je realistisch mag verwachten
Hoe snel het voelt, hangt vooral af van je geheugen en je GPU. Op een laptop krijg je eerder een kort denkmoment dan een vlot gesprek; korte vragen, samenvattingen en herschrijfwerk gaan prima. Een groter Whisper-model verstaat je beter maar rekent langer, dus begin met small en schuif op als je merkt dat hij woorden mist.
De winst zit in controle: geen maandbedrag, geen limieten en gevoelige gegevens die thuis blijven. Wil je een stap verder, kijk dan naar een AI-agent die je data nooit verlaat. Zoek je juist stemklonen of dubben, dan is VoiceStudio de lokale route, en Transformers.js laat spraakherkenning zelfs in de browser draaien. Wat Gemma 12B als model kan en waarom het voor je privacy uitmaakt, lees je bij Het Laatste AI Nieuws. Welke andere open modellen lokaal goed draaien, staat in ons overzicht van open-weight modellen.
Stand van zaken — bijgewerkt 2026-10-07
Alles hierboven blijft staan, ongeacht welk model er draait. De cijfers en versies hieronder zijn de bederfelijke laag.
| Onderwerp | Stand |
|---|---|
| Nieuwste Gemma-taalmodel | Gemma 4 12B (3 juni 2026); geen opvolger, alleen EmbeddingGemma 2 (6 oktober 2026) (Bron: Google) |
| Gemma-varianten in Ollama | gemma4:e2b, e4b, 12b, 26b, 31b; 12b is 7,7 tot 8,0 GB met 256K context (Bron: Ollama) |
| Invoer in Ollama | Tekst en beeld, geen audio (Bron: Ollama) |
| Geheugenrichtlijn Gemma 4 12B | Ongeveer 16 GB VRAM of unified memory (Bron: Google) |
| Licentie Gemma 4 | Apache 2.0 |
| faster-whisper-modellen | Onder meer small, turbo, large-v3, distil-large-v3 |
| Piper | pip install piper-tts, GPL-3.0, repo OHF-Voice/piper1-gpl |
| Nederlandse Piper-stemmen | nl_NL: alex, mls, pim, ronnie; nl_BE: nathalie, rdh (Bron: Piper voices) |
