Fully offline AI NPCs for Unity 6: speech in → local language model → speech out. No internet, no cloud API, no per-call cost. Nothing leaves the player's machine.
WHAT MAKES IT DIFFERENT
IS THIS FOR YOUR GAME?
Built for: a small cast of characters, conversation the player starts, desktop, offline, and a game that can absorb a second or two before a character answers.
Not built for: mobile or web, crowds of NPCs talking among themselves, real-time combat barks, or dialogue that must be word-for-word what a writer authored.
A buyer who reads that and walks away has saved us both a refund.
FEATURES
VERIFICATION, DESCRIBED EXACTLY
Voices verify without running the game: speak one line from the editor, per language, per voice. Dialogue verification runs in Play mode, because the language-model integration cannot start outside it.
That boundary is real and it is written this way on purpose. The speech half is where every failure in this project actually happened — a broken voice reference, a wrong-gender voice, an encoding bug that silently killed an entire language — and no competitor offers verification tooling at all.
WHAT THE NUMBERS ARE, AND WHERE THEY CAME FROM
Measured on an RTX 3060 Laptop (6 GB), Qwen3-4B Q4_K_M, all 36 layers on the GPU.
Time to first audio — streamed run of 21 warm turns on a cleared history, 2026-08-16:
About two seconds, not always two seconds: the spread is real and printed above.
Speech recognition is a second wait, and it is the larger one. Every figure above starts when text is submitted. If your player speaks, transcription happens first: Whisper-small took 7908 ms and 8004 ms on one short phrase while the language model held the same GPU (measured in the interview demo, 2026-08-16). Smaller Whisper models are several times faster and get more words wrong — the choice is yours, and it is a real trade, because the transcript is what the character answers.
Several characters generating at once serialise. They share one local model server. In a scene where background characters hold ambient conversations, a player's reply was measured at 12.7 s against 2.4 s with nothing else generating — both whole-reply figures from an earlier run, which is the only pair that holds the measurement mode constant. The mitigation is a few lines of your code: gate ambient dialogue while a player request is pending. Design a tavern of twenty talking NPCs around this and it will not work.
Switching language mid-session costs one cold prompt, because a new system prompt is a new prefix and the cache is invalidated. That cost is not quantified here; no measurement of it exists in this repository, so no figure is printed.
WHAT STATE DOES, STATED AS MEASURED
Deterministic, claimed without hedging: threshold events fire once on the crossing; traits are different numbers per character and produce different decay; state saves and loads exactly; the model is structurally unable to modify a need — it can only be told about one.
Probabilistic, claimed as measured: characters colour their replies with what they feel. Ask a tired character how she is and she mentions being tired in roughly 6 cases out of 10; with the state system switched off, 0 out of 10.
What is not claimed: that a character spontaneously behaves differently without the topic being raised. That was not demonstrated, so it is not sold.
Brief adherence: 320 turns across 20 sessions, on both the 1.7B and the 4B model, produced zero departures from the authored facts. The small model holds a brief as reliably as the large one; what it loses is manner, not memory.
WHY LOCAL, STRUCTURALLY
A cloud solution is a subscription to somebody else's service, with their rules, their latency and their lifetime. This is a library you own.
LANGUAGES, PRECISELY
Dialogue and speech recognition are genuinely multilingual — the language model and Whisper handle all five. Bundled voices are not the same set, and this is where other listings round up:
Where no voice with a clean, verifiable licence exists, the slot is empty and says why. Every voice that does ship has had its model card read and a dated copy kept in LICENSES/. Supplying your own engine is documented and proven by a worked example.
BEFORE YOU BUY
ROADMAP
No dates. In the order buyers ask for it: