Gemma added a generation that never lived. My code turned it into a ghost.
Description and use
A pipeline that records a family story, transcribes it, extracts genealogical links with Gemma 4 12B, and verifies each link against the audio to prevent invented relatives.
Problem
A family tree built from recorded oral histories can contain invented relatives if the model’s output is not verified against the source audio.
Outcome
On 60 test families, Gemma 4 12B produced 85.5 % correct links before verification; the verification step caught all 118 wrong links, yielding 100 % correct verified links.
Workflow
- Record audio of a family story
- Transcribe with faster‑whisper
- Run Gemma 4 via Ollama on the transcript to generate JSON claims
- Verify each claim with shezhire/verify.py: check name presence, quote match, person naming, kinship word, and additional rules
- Draw verified links in ink, ghost links dashed in red, and output a single HTML page
- Optionally test on synthetic families to tune rules
Evidence
Gemma 4 12B read it and answered, confidently, with a quote: "Сәкен is the grandfather of Данияр."
On 60 test families, Gemma 4 12B got 85.5% of its links right. Every one of the 118 wrong links was caught, so 100% of what reached the page was right.
The check asks four questions: Is this person in the recording at all? Is the quote really there? Are both people in that sentence? Is there a kinship word of the right kind?
- Record date: 2026-11-01T08:44:38.835Z