E.D.I. (pronounced Edie) is a local-first, multi-modal social AI assistant that combines computer vision, speaker recognition, and a persistent relational memory system.
This project is not just a runtime application โ it builds a personal AI database over time, storing biometric encodings and long-term knowledge locally on disk.
- Real-time object detection using YOLOv8 (GPU / CUDA)
- Face recognition without storing raw images
- Voice authentication using speaker embeddings
- Active speaker detection (vision + audio)
- Persistent memory using a Neo4j-style knowledge graph
- Fully local biometric storage (no cloud uploads)
E.D.I. continuously builds a structured โbrainโ inside the data/ directory.
Understanding this layout is essential for backups, migrations, and privacy.
data/
โโโ faces/
โ โโโ face_clusters.json
โโโ voice/
โ โโโ voice_clusters.json
โโโ memory/
โ โโโ knowledge_graph.json
โโโ temp/
Biometric Face Database
Stores numerical face encodings (no raw images)
Each person has a cluster of vectors captured from:
Front
Left
Right
Up
Down
Tracks quality and confidence scores to prevent learning blurry frames
Used for long-term identity recognition
Speaker Recognition Database
Stores 256-dimensional voice embeddings
Generated during vocal authorization
Allows identity recognition even when the user is off-camera
Used by the VoiceAuth module
Persistent Relational Memory (Edieโs โSoulโ)
Neo4j-style relational graph stored as JSON
Stores:
Facts (e.g., Parth โ LIKES โ Coffee)
Relationships (e.g., User โ WORKS_ON โ Project)
Episodic summaries of past interactions
Enables long-term personalization across sessions
Temporary Runtime Storage
Used for:
Generated .wav files (Text-to-Speech)
Short-lived intermediate runtime data
Automatically cleared by the system
Safe to delete at any time
๐ ๏ธ System Requirements Hardware NVIDIA GPU (recommended for YOLOv8)
CUDA-compatible drivers
Webcam and microphone
Software Python 3.10
Conda (recommended)
NVIDIA drivers + CUDA toolkit
๐ฆ requirements.txt (Version-Pinned) Due to compatibility issues between MediaPipe and NumPy 2.x, strict version pinning is required.
numpy==1.26.4
mediapipe==0.10.11
opencv-python==4.8.0.74
protobuf==3.20.3
ultralytics
google-generativeai
resemblyzer
face-recognition
1๏ธโฃ Clone the Repository
git clone https://github.com/yourusername/EDI.git
cd EDI
2๏ธโฃ Create Conda Environment
conda create -n ai_lab python=3.10
conda activate ai_lab
3๏ธโฃ Install Dependencies
pip install -r requirements.txt
4๏ธโฃ Hardware Check Ensure NVIDIA drivers are installed and CUDA is available:
nvidia-smi
5๏ธโฃ Run E.D.I.
python main.py
๐ฎ First-Run Onboarding When E.D.I. detects a new person, it initiates identity calibration.
Captures five head orientations
Builds a face encoding cluster
Records a short authorization phrase
Generates a 256-dimensional speaker embedding
Creates a persistent identity node
Links future memories and preferences
This project stores biometric data locally on disk.
If you plan to publish your fork or make the repository public:
DO NOT commit the data/ directory
DO NOT commit .env files
Your face data, voice data, and memory graph should remain private.
.env .venv ai_lab/
data/
pycache/ *.pyc
.DS_Store Thumbs.db ๐งฉ Project Philosophy E.D.I. is designed as a stateful, embodied AI system, not a stateless chatbot. Its intelligence emerges over time through perception, memory, and interaction.