Annie is a playful, voice-controlled differential-drive robot powered by local LLMs.
She listens to you, talks back using offline text-to-speech, and moves around by sending motion commands to an ESP-based robot.
If the ESP is unavailable, Annie continues running without crashing.
The “brain” of Annie is a locally hosted Ollama model (bot_annie) that generates:
- conversational responses
- motion commands in the format:
[linear_velocity, angular_velocity, duration]
-
🎤 Voice-controlled
Offline speech recognition using Whisper (faster-whisper). -
🔊 Speaks back locally
Uses Piper TTS (fully offline, no cloud APIs). -
🛞 Robot movement
Sends motion commands to an ESP8266 / ESP32 over Wi-Fi. -
🧠 Local LLM reasoning
Powered by Ollama — no OpenAI, no internet required after setup. -
🔌 Graceful fallback
If the ESP is unreachable, Annie continues running without crashing. -
🖥️ Cross-platform
Works on Linux and Windows (minor audio setup differences).
Annie has three kinds of dependencies:
- Python libraries (installed via
pip) - System / audio libraries (installed via OS package manager)
- External binaries (manual install)
Create and activate a virtual environment (recommended):
python -m venv .venvsource .venv/bin/activate.venv\Scripts\Activate.ps1Install Python dependencies:
pip install -r requirements.txtsudo apt update
sudo apt install -y \
libportaudio2 \
portaudio19-dev \
libportaudiocpp0No manual system packages are required.
-
Make sure your microphone is enabled:
- Settings → Privacy → Microphone
- Allow apps to access microphone
-
If audio playback fails, install:
- Microsoft Visual C++ Redistributable (x64)
No additional system libraries are required on Windows.
Download Piper manually from:
https://github.com/rhasspy/piper/releases
Place the extracted piper/ directory inside the project root.
Download a voice model from:
https://github.com/rhasspy/piper/blob/master/VOICES.md
Place it in:
piper-voices/
cd models
ollama pull mistral
ollama create bot_annie -f ./bot_annie_model_filepython mind.py- Wi-Fi SSID: Annie
- Password: 12345678
Press CTRL + Z or CTRL + C on linux
Press CTRL + C on windows
- faster-whisper
- Piper TTS
- Ollama