A smart, local-first voice assistant that listens for the wake word "Hey Nova," transcribes voice input using OpenAI Whisper, responds with dynamic memory-driven conversations via GPT, and stores facts in Supabase and local storage.
- Wake-word detection with Porcupine
- Long-term memory saved in Supabase and
user_memory.json - Responses powered by OpenAI GPT
- Voice transcription using Whisper
- Text-to-speech response via pyttsx3
- Offline fallback with JSON-based memory store
- Python 3.10 or newer
- OpenAI API key
- Supabase project + API credentials
- Porcupine
.ppnwake-word model (included)
git clone https://github.com/yourusername/nova-voice-assistant.git
cd nova-voice-assistantpython -m venv agentEnv
.\agentEnv\Scripts\activatepip install -r requirements.txtMake sure FFmpeg is installed and added to System PATH Add to system environment variables
Download from: https://www.gyan.dev/ffmpeg/builds/
Add the /bin folder path (e.g., C:\ffmpeg\bin) to your system environment variables.Create a .env file and add
OPENAI_API_KEY=your-openai-key
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-or-service-role-keypython assistant.pyIf successful, you should see:
🔊 Porcupine wake word engine listening for 'Hey Nova'...
🔁 Press [Enter] to ask something or type 'exit' to quit:- Say "Hey Nova"
- Press [ENTER]
- Speak to Nova
- Nova will transcribe, respond using GPT, and speak back the reply.