The problem
To doWrite the real story behind Luna in one short paragraph: what made you want a voice assistant that never leaves your laptop?
Luna is privacy-first by design. Every step, from hearing the wake word to speaking the answer, runs on my own machine with no cloud calls.
What it does
- Wakes on its name. Say "Luna" and it starts listening.
- Knows who is talking. Speaker recognition tells voices apart.
- Answers locally. A local Llama model (llama3.2:3b) replies, and Kokoro turns the reply into natural speech.
- Controls the laptop. Volume, apps, and Spotify.
- Remembers. Past conversations are embedded for semantic search, so Luna can recall what was said before.
- Keeps its data fresh. Apache Airflow pipelines pull financial data, and a live local dashboard shows what is happening.
How it works
- 1Wake word"Luna"
- 2Speaker recognition
- 3Llama 3.2 3Blocal model
- 4Kokoro speech
Alongside the voice loop, Airflow pipelines keep financial data up to date, and every utterance is embedded into a semantic memory that the model can search.
To doAdd the full architecture diagram (voice loop, memory store, Airflow pipelines, dashboard) and a short explanation.
What was hard and how I solved it
To doDescribe the hardest problem (for example, keeping response time low on a laptop GPU) and how you solved it.
Results
- llama3.2:3b on an RTX 3050 Ti laptop GPU
- 59 tokens/s
- llama3.2:3b on an RTX 3050 Ti laptop GPU
- Airflow pipeline runs succeeded across 3 pipelines
- 7 of 7
- Airflow pipeline runs succeeded across 3 pipelines
- of logged utterances embedded for semantic memory
- 100%
- of logged utterances embedded for semantic memory
To doLog response latency for a day and add the median "hear you to first sound" time.
To doRecord a 30 to 60 second demo video and add a dashboard screenshot. Never publish household audio or conversation logs.
Stack
- Python
- Llama 3.2 (local)
- Kokoro TTS
- Speaker recognition
- Apache Airflow
- Semantic memory
Links
To doGitHub link. Repo is clean (only .env.example tracked) but has no remote yet.To doDemo video