
Klankhelden
The brief
How can I use AI to turn the words I learn in class into a better way to study them?
A pronunciation trainer that lets Portuguese speakers hear a Dutch word, say it out loud and see which sounds need more work.
Klankhelden: a Dutch pronunciation trainer built from my class notes
I'm learning Dutch in Rotterdam. Every week I left class with a page of new words, and a few days later half of it was gone. Klankhelden, Dutch for “sound heroes”, lets Portuguese speakers hear a Dutch word, say it out loud and see which sounds need more work. Every word in it comes from my own lessons.

Type
Personal project, solo.
My role
Research, product definition, design and prototype.
Timeline
October 2026. Version one took one weekend in Lovable.
Tools
NotebookLM, Gemini, Google Docs, Lovable, then Flutter for the mobile app.
Outcome
A working prototype with 7 sound levels and 38 words and phrases from my own lessons.
The question
How can I use AI to turn the words I learn in class into a better way to study them?
The question left the format open. The answer could have been a flashcard deck, a quiz or something I hadn't thought of yet, and I wanted the research to point the way before I picked one.
01 — The problem
Words that didn't stay
Class gave me plenty of new words. Keeping them was the hard part. I wrote them down, went over the list before the next lesson and still lost many of them within days. Most of the advice I found came down to more repetition, usually more flashcards or more time in an app. Rereading a list kept the spelling fresh for a day or so. It didn't help me say the word when I needed it.
Dutch also has a few traps for someone whose first language is Portuguese. Spelling alone kept sending me the wrong way. Guess how these sound, then flip them.
02 — Research
From memory to listening
I used NotebookLM as my research notebook. I added articles and papers on memory, spaced repetition and learning words in context, then asked questions across all of them at once. It answers from the sources you give it, so I could trace each claim back to where it came from. At this stage I wanted to understand what was going wrong for me. Choosing a method could wait.
Forgetting is fastest in the first days.
Reviewing at growing intervals slows it down, which is the idea behind spaced repetition.
Saying a word helps you keep it.
Saying it out loud beats reading it silently. Researchers call this the production effect.
Words stick when they're attached to something.
A sound, an image, a sentence you've actually used.
Finding 01, drawn
The dashed line was my week: one lesson, then a quiet slide. Each review sets memory back up, and it falls slower every time.
The first finding described my week exactly. The second matched my routine, which was almost completely silent: the words I wasn't sure how to pronounce were the ones I avoided saying in class. Then one sentence changed how I saw the problem.
From the research
“Dutch requires explicit listening training: sounds like ui, eu and g/ch are not picked up by dyslexic learners through passive exposure alone.”
It's about dyslexic learners, but it fit me too. In class I heard each word a few times and expected it to stick. Nothing in my routine trained my ear on purpose.
03 — Raw material
Turning class notes into lessons
Holandês · aula · notas
- ringring
- jongenmenino
- jasim
- Rotterdama cidade
- schoolescola
- fantastischfantástico · SCH = S
- vispeixe
- blauwazul
- roodvermelho · D = T
- ik hebeu tenho · B = P
- theechá · TH = T
- ingenieurengenheiro · G = J
- aangenaamagradável · N|G
My notes from class lived in a Google Doc. I cleaned them up so each word had its meaning in Portuguese and a short note on how it sounds, then grouped everything by sound. Pick one.
Exceptions got their own notes
A rule only helps if you know where it breaks. In ingenieur the G sounds like the J in “janela”. In aangenaam the N and the G belong to different syllables, so it isn't the NG from ring. In fantastisch and romantisch the SCH at the end is just an S.
That doc became the content layer for everything that followed. When I wanted more levels in the app, I gave Lovable the file and told it the next levels were these words, as written.
04 — Building it
A weekend in Lovable
I chose Lovable because the core interactions were audio: hearing a native voice and recording my own. I needed to test them on my phone, with a real microphone, and a static prototype can't listen to anyone.
Version one had one job: let me hear a word from class, say it and know whether it came out right. Five things had to work.
- 1Listening at normal speed or slowed down to 0.75x
- 2The target letters underlined, with a short tip on where the tongue and lips go
- 3A microphone button that records one attempt and returns a score
- 4Feedback in three states, with unlimited free retries
- 5A results screen with the strongest sound and the one to practise
The spec also described a progress page, mascot outfits, accessibility settings and a daily mystery word. When Lovable asked what to build next, I fixed the content first and left those for later.
Decisions that changed during the weekend
A trainer for generic words would have been one more app, which is the thing I'd decided not to make.
The best tips compare Dutch sounds to Portuguese words, like “the Dutch J sounds like the start of iate”. They only work in Portuguese.
The built-in voice read Dutch words with an English accent, which teaches exactly the wrong thing.
Pairs make contrasts part of the lesson, like hearing blauw next to blauwe, where the W gets clearer before the final E.
05 — The prototype
Hear it, say it, try again for free
After the weekend I took version one to a mobile app in Flutter, built with Claude Code from my Lovable prototype and spec. Same levels, same fox, same loop, plus an ear check and a challenge word at the end of each level. Try level 1 below.














Tap the screen, or jump to a step · sound on
Real screens of the Flutter app, level 1. Scores are simulated in this demo, and the app says so on screen.
Seven levels, 38 words and phrases, all from class
- Level 1 · CH, GA aventura do CH & GChristine, gek, licht · 7 words
- Level 2 · NGO caminho do NGring, jongen, ingenieur · 6 words
- Level 3 · J, RA dupla J & Rja, jij, Rotterdam · 6 words
- Level 4 · SCHO mar do SCHschool, schrift, fantastisch · 6 words
- Level 5 · V, WA dupla V & Wvis, wit, blauw · 5 words
- Level 6 · final D, final BD & B no finalrood, hond, ik heb · 6 words
- Level 7 · THO segredo do THthee, thuis · 2 words
06 — What I learned
Six things I'd tell myself before starting
About learning languages
I now treat pronunciation as part of remembering a word. A word I'm unsure how to say is a word I won't use, and a word I don't use fades. Instructions belong in the language you think in: at A2, an explanation of where the tongue goes only lands in Portuguese.
About AI
AI tools fill gaps with defaults. Lovable's first word list was correct and generic, and when I asked for the fox to look “more Dutch, like a king”, I got a crown and an orange cape. A photo of a traditional Dutch costume got it right on the first try. My own words and a reference photo did more than any description I wrote.
About trust
A confident answer can still be wrong. Pronunciation tips written by AI sound authoritative, and I'd want a teacher to check them before anyone else relies on the app.
About research
The research changed the question. I started by asking how to remember more words, and one line about passive exposure turned it into a question about listening.
About rapid prototyping
Some problems only show up when you use the thing. I wouldn't have caught an English voice reading Dutch words in a spec or a Figma file. In a working prototype I heard it the moment I pressed play, and fixed it the same afternoon.
About personal projects
Being the user made the feedback loop very short: I could try a change minutes after asking for it. It also means the app fits one person very well. Finding out whether it fits anyone else is the next job.
Final reflection
I built Klankhelden because I kept losing the words from my Dutch class and wanted to fix that for myself, with no plan to turn it into a product. Along the way the process became as interesting as the result: reading about memory in NotebookLM, pushing back on Gemini's first answers, hearing an English voice read my Dutch words and replacing it the same afternoon.
I'm still at A2, and the app is still early. The words from class now have somewhere to go after the lesson, and a fox in a lace cap waiting for me to say them out loud.