Authentic Tunisian Darija speech recognition and text-to-speech system with Billy personality mode
# NOVA OS 🔮
> Your personal Jarvis-style AI voice assistant. Runs 100% locally. No cloud. No subscriptions.
## Features
- 🎙️ **Voice control** — Press `Ctrl+Space` to wake NOVA
- 🧠 **Custom LLM** — Fine-tuned Phi-3.5 Mini, served by Ollama locally
- 🔊 **Fish Audio TTS** — Your local Fish Speech server
- 🌐 **Browser control** — "Search for…" / "Go to YouTube"
- 📱 **App launching** — "Open Chrome", "Launch Spotify", etc.
- 👁️ **Screen vision** — "What's on my screen?" uses LLaVA locally
- ✨ **Particle sphere** — Three.js animated sphere reacts to voice
- 💥 **Antigravity burst** — Particle explosion on every spoken sentence
---
## Setup
### 1. Prerequisites
| Requirement | Install |
|---|---|
| Node.js 18+ |
nodejs.org |
| Python 3.10+ |
python.org |
| Ollama |
ollama.ai |
| Fish Speech | Already installed |
### 2. Install dependencies
```bash
cd nova-os
npm install
```
### 3. Pull Ollama vision model (for screen awareness)
```bash
ollama pull llava
```
### 4. Train & register the NOVA model
> Skip this if you want to use a pre-existing Ollama model.
> Set `OLLAMA_MODEL=llama3.2` in `.env` and jump to step 5.
```bash
# Install Python training deps
pip install unsloth trl transformers datasets torch
# Run fine-tuning (~30-60 min on RTX 3050)
python training/train.py
# Register the model in Ollama
ollama create nova -f training/Modelfile
# Test it
ollama run nova "Hey, who are you?"
```
### 5. Start Fish Speech server
Make sure your Fish Speech local server is running on port 8888:
```bash
# In your fish-speech directory:
python tools/api_server.py --listen 0.0.0.0:8888
```
### 6. Launch NOVA OS
```bash
npm run dev
```
---
## Usage
| Action | How |
|---|---|
| Wake NOVA | `Ctrl+Space` or click 🎙 |
| Open an app | "Open Chrome" / "Launch Discord" |
| Search web | "Search for Python tutorials" |
| Go to URL | "Open YouTube" / "Go to Reddit" |
| See screen | "What's on my screen?" |
| Chat | Type in the chat box or sp …