Embodied 3D AI desktop companion powered by Ollama, dual voice synthesis (Fish Audio S2.1 & local GPT-SoVITS), real-time lip-sync, and custom VRM avatar support.
See the code
An intelligent, expressive, and embodied AI desktop companion powered by Ollama, Dual Voice Synthesis (Fish Audio & GPT-SoVITS), and Unity.
Miko is a real-time, interactive AI companion designed to live on your Windows desktop. She pairs local Large Language Models (via Ollama) with two first-class voice synthesis engines:
Miko features an animated borderless 3D Unity desktop avatar (Miko_desktop), persistent human-like conversation memory, smart-home IoT control, lip-sync, and physical turntable hardware integration (OASIS).
graph TD
User([User Voice / Text]) --> STT[RealtimeSTT / Whisper]
STT --> Core[Miko Assistant Engine]
subgraph Brain & Intelligence
Core --> Ollama[Local Ollama LLM / Qwen 2.5]
Core --> Memory[memory_enhanced.py<br/>Temporal Memory & VectorDB]
Core --> NLI[Zero-Shot Intent Classification]
end
subgraph Dual Voice Synthesis Options
Core -->|Option A: Cloud WebSocket| FishAudio[Fish Audio S2.1 Pro<br/>fish_audio_helpers.py]
Core -->|Option B: Local Neural| GPTSoVITS[GPT-SoVITS v2pro<br/>streaming_tts_helpers.py]
end
subgraph Audio Streaming & IPC
FishAudio --> AudioStreamer[audio_streamer.py]
GPTSoVITS --> AudioStreamer
AudioStreamer --> Server[app.py<br/>HTTP & WebSocket Server :8000]
end
subgraph Embodiment & Avatar
Server --> Unity[Miko_desktop / Unity Standalone<br/>Real-Time Lip-sync & Motion Gestures]
Core --> SmartHome[Tuya IoT Device Control]
end
OneReality/
├── 🚀 Launchers & Setup
│ ├── start.bat # Default launcher (GPT-SoVITS local + Miko_desktop + Ollama)
│ ├── start_fishaudio.bat # 1-Click launcher for Fish Audio S2.1 Pro Free
│ ├── start_gptsovits.bat # Explicit launcher for local GPT-SoVITS v2pro
│ ├── setup.bat # Environment bootstrap & dependency installer
│ ├── OneReality.bat # Quick launch shortcut (delegates to start.bat)
│ ├── requirements.txt # Python dependencies
│ └── setup.py # Setuptools package configuration
│
├── 🧠 Core Python Application
│ ├── Miko.py # Main assistant engine with local GPT-SoVITS
│ ├── Miko_FishAudio.py # Main assistant engine with Fish Audio S2.1 Pro
│ ├── app.py # Multi-threaded HTTP & WebSocket server for avatar IPC (:8000)
│ ├── audio_streamer.py # Real-time chunked audio streaming client
│ ├── fish_audio_helpers.py # Fish Audio S2.1 API client & WebSocket streaming worker
│ ├── streaming_tts_helpers.py # GPT-SoVITS streaming inference helpers
│ ├── memory_enhanced.py # Temporal decay, vector importance scoring & memory recall
│ ├── conversation.jsonl # Persisted conversation memory history
│ ├── .env.example # Example configuration template
│ └── .env # Local configuration (excluded from git)
│
├── 👗 3D Avatar & Unity Desktop
│ ├── Miko_desktop/ # Standalone Unity desktop avatar application
│ │ ├── Miko_desktop.exe # Borderless transparent avatar executable
│ │ ├── Miko_desktop_Data/ # Unity player data & runtime assets
│ │ └── Assets/ # Unity source scripts, shaders, and animations
│ └── MikoAudioReceiver.cs # Unity C# audio stream receiver & lip-sync driver
│
├── 🎵 Reference Audio & Sound FX
│ ├── Kokomi_0.wav # Default voice reference sample
│ ├── clap.wav # Motion trigger sound effect
│ ├── nodding.wav # Motion trigger sound effect
│ ├── shaking head.wav # Motion trigger sound effect
│ ├── thumbs-up.wav # Motion trigger sound effect
│ └── wave.wav # Motion trigger sound effect
│
├── 📦 Local Neural Models
│ └── GPT_SoVITS/ # GPT-SoVITS runtime modules & pre-trained weights
│
├── 🤖 Hardware Integration
│ └── OASIS/ # Physical 3D-printable motorized turntable & face tracking mount
│
└── 🧪 Testing & Verification
├── test_refactor_clean.py # Core regression test suite
├── test_fish_audio_integration.py # Fish Audio API & streaming test suite
└── test_gptsovits_v2pro.py # Local GPT-SoVITS inference verification
pipollama pull qwen2.5:7b
(Or ollama pull llama3:latest / dolphin-llama3)Run the automated setup script in PowerShell or Command Prompt:
setup.bat
This script will:
.\venv.pip and install pre-compiled PyAV wheels.requirements.txt..env.example to .env if not already present..env)Open .env in any text editor and adjust your preferences:
.env:
FISH_API_KEY=your_actual_fish_audio_api_key_here
FISH_AUDIO_MODEL=s2.1-pro-free
FISH_AUDIO_REFERENCE_ID=344d8217dee64170a58b6a0cf80d0e95
FISH_AUDIO_STREAMING=true
Ensure the model paths point to your local checkpoints in GPT_SoVITS:
GPT_SOVITS_CONFIG_PATH=GPT_SoVITS\configs\tts_infer.yaml
GPT_SOVITS_T2S_CKPT=GPT_SoVITS\pretrained_models\s1v3.ckpt
GPT_SOVITS_VITS_PTH=GPT_SoVITS\pretrained_models\v2Pro\s2Gv2ProPlus.pth
GPT_SOVITS_REF_AUDIO=Kokomi_0.wav
GPT_SOVITS_PROMPT_LANG=en
Choose the voice engine that best fits your hardware:
Launch with real-time WebSocket voice streaming (requires free Fish Audio API key, no local GPU load for voice):
start_fishaudio.bat
Or directly via Python:
venv\Scripts\python.exe Miko_FishAudio.py
Launch with local neural voice cloning:
start.bat
(Or start_gptsovits.bat / venv\Scripts\python.exe Miko.py)
Miko_desktop)Miko_desktop is a borderless transparent overlay that displays Miko on your screen with real-time lip-sync, blinking, and gesture animations.
The settings menu in Miko_desktop is hidden by default to preserve a clean desktop aesthetic:
Left Alt + Ctrl simultaneously on your keyboard.Left Alt + Ctrl.http://localhost:8000/audio_stream and works out of the box with app.py.http://192.168.1.50:8000) of the machine running app.py..vrm 3D model file from your computer to instantly swap Miko's avatar in real time!Left Alt + Ctrl + B: Toggle between transparent overlay background and solid black background.Left Alt + Ctrl or hovering over UI elements temporarily disables click-through so you can interact with controls.When running Miko, you can interact through two modes:
p to speak to Miko. The high-accuracy STT engine listens, detects speech boundaries, and responds.memory_enhanced.py)Miko features a human-like memory system that goes beyond simple context windows:
audio_streamer.py & app.py)MikoAudioReceiver.cs for instantaneous playback and viseme/lip-sync generation.Run the test suites to verify system components:
:: Test core memory, audio streamer, and IPC server
venv\Scripts\python.exe -m unittest test_refactor_clean.py
:: Test Fish Audio API client, WebSocket workers, and boundary detection
venv\Scripts\python.exe -m unittest test_fish_audio_integration.py
This project is licensed under the GNU General Public License v3.0 (GPL-3.0) — see the LICENSE file for details. All model weights, voices, and external assets belong to their respective creators.
Embodied 3D AI desktop companion powered by Ollama, dual voice synthesis (Fish Audio S2.1 & local GPT-SoVITS), real-time lip-sync, and custom VRM avatar support.
See the code
An intelligent, expressive, and embodied AI desktop companion powered by Ollama, Dual Voice Synthesis (Fish Audio & GPT-SoVITS), and Unity.
Miko is a real-time, interactive AI companion designed to live on your Windows desktop. She pairs local Large Language Models (via Ollama) with two first-class voice synthesis engines:
Miko features an animated borderless 3D Unity desktop avatar (Miko_desktop), persistent human-like conversation memory, smart-home IoT control, lip-sync, and physical turntable hardware integration (OASIS).
graph TD
User([User Voice / Text]) --> STT[RealtimeSTT / Whisper]
STT --> Core[Miko Assistant Engine]
subgraph Brain & Intelligence
Core --> Ollama[Local Ollama LLM / Qwen 2.5]
Core --> Memory[memory_enhanced.py<br/>Temporal Memory & VectorDB]
Core --> NLI[Zero-Shot Intent Classification]
end
subgraph Dual Voice Synthesis Options
Core -->|Option A: Cloud WebSocket| FishAudio[Fish Audio S2.1 Pro<br/>fish_audio_helpers.py]
Core -->|Option B: Local Neural| GPTSoVITS[GPT-SoVITS v2pro<br/>streaming_tts_helpers.py]
end
subgraph Audio Streaming & IPC
FishAudio --> AudioStreamer[audio_streamer.py]
GPTSoVITS --> AudioStreamer
AudioStreamer --> Server[app.py<br/>HTTP & WebSocket Server :8000]
end
subgraph Embodiment & Avatar
Server --> Unity[Miko_desktop / Unity Standalone<br/>Real-Time Lip-sync & Motion Gestures]
Core --> SmartHome[Tuya IoT Device Control]
end
OneReality/
├── 🚀 Launchers & Setup
│ ├── start.bat # Default launcher (GPT-SoVITS local + Miko_desktop + Ollama)
│ ├── start_fishaudio.bat # 1-Click launcher for Fish Audio S2.1 Pro Free
│ ├── start_gptsovits.bat # Explicit launcher for local GPT-SoVITS v2pro
│ ├── setup.bat # Environment bootstrap & dependency installer
│ ├── OneReality.bat # Quick launch shortcut (delegates to start.bat)
│ ├── requirements.txt # Python dependencies
│ └── setup.py # Setuptools package configuration
│
├── 🧠 Core Python Application
│ ├── Miko.py # Main assistant engine with local GPT-SoVITS
│ ├── Miko_FishAudio.py # Main assistant engine with Fish Audio S2.1 Pro
│ ├── app.py # Multi-threaded HTTP & WebSocket server for avatar IPC (:8000)
│ ├── audio_streamer.py # Real-time chunked audio streaming client
│ ├── fish_audio_helpers.py # Fish Audio S2.1 API client & WebSocket streaming worker
│ ├── streaming_tts_helpers.py # GPT-SoVITS streaming inference helpers
│ ├── memory_enhanced.py # Temporal decay, vector importance scoring & memory recall
│ ├── conversation.jsonl # Persisted conversation memory history
│ ├── .env.example # Example configuration template
│ └── .env # Local configuration (excluded from git)
│
├── 👗 3D Avatar & Unity Desktop
│ ├── Miko_desktop/ # Standalone Unity desktop avatar application
│ │ ├── Miko_desktop.exe # Borderless transparent avatar executable
│ │ ├── Miko_desktop_Data/ # Unity player data & runtime assets
│ │ └── Assets/ # Unity source scripts, shaders, and animations
│ └── MikoAudioReceiver.cs # Unity C# audio stream receiver & lip-sync driver
│
├── 🎵 Reference Audio & Sound FX
│ ├── Kokomi_0.wav # Default voice reference sample
│ ├── clap.wav # Motion trigger sound effect
│ ├── nodding.wav # Motion trigger sound effect
│ ├── shaking head.wav # Motion trigger sound effect
│ ├── thumbs-up.wav # Motion trigger sound effect
│ └── wave.wav # Motion trigger sound effect
│
├── 📦 Local Neural Models
│ └── GPT_SoVITS/ # GPT-SoVITS runtime modules & pre-trained weights
│
├── 🤖 Hardware Integration
│ └── OASIS/ # Physical 3D-printable motorized turntable & face tracking mount
│
└── 🧪 Testing & Verification
├── test_refactor_clean.py # Core regression test suite
├── test_fish_audio_integration.py # Fish Audio API & streaming test suite
└── test_gptsovits_v2pro.py # Local GPT-SoVITS inference verification
pipollama pull qwen2.5:7b
(Or ollama pull llama3:latest / dolphin-llama3)Run the automated setup script in PowerShell or Command Prompt:
setup.bat
This script will:
.\venv.pip and install pre-compiled PyAV wheels.requirements.txt..env.example to .env if not already present..env)Open .env in any text editor and adjust your preferences:
.env:
FISH_API_KEY=your_actual_fish_audio_api_key_here
FISH_AUDIO_MODEL=s2.1-pro-free
FISH_AUDIO_REFERENCE_ID=344d8217dee64170a58b6a0cf80d0e95
FISH_AUDIO_STREAMING=true
Ensure the model paths point to your local checkpoints in GPT_SoVITS:
GPT_SOVITS_CONFIG_PATH=GPT_SoVITS\configs\tts_infer.yaml
GPT_SOVITS_T2S_CKPT=GPT_SoVITS\pretrained_models\s1v3.ckpt
GPT_SOVITS_VITS_PTH=GPT_SoVITS\pretrained_models\v2Pro\s2Gv2ProPlus.pth
GPT_SOVITS_REF_AUDIO=Kokomi_0.wav
GPT_SOVITS_PROMPT_LANG=en
Choose the voice engine that best fits your hardware:
Launch with real-time WebSocket voice streaming (requires free Fish Audio API key, no local GPU load for voice):
start_fishaudio.bat
Or directly via Python:
venv\Scripts\python.exe Miko_FishAudio.py
Launch with local neural voice cloning:
start.bat
(Or start_gptsovits.bat / venv\Scripts\python.exe Miko.py)
Miko_desktop)Miko_desktop is a borderless transparent overlay that displays Miko on your screen with real-time lip-sync, blinking, and gesture animations.
The settings menu in Miko_desktop is hidden by default to preserve a clean desktop aesthetic:
Left Alt + Ctrl simultaneously on your keyboard.Left Alt + Ctrl.http://localhost:8000/audio_stream and works out of the box with app.py.http://192.168.1.50:8000) of the machine running app.py..vrm 3D model file from your computer to instantly swap Miko's avatar in real time!Left Alt + Ctrl + B: Toggle between transparent overlay background and solid black background.Left Alt + Ctrl or hovering over UI elements temporarily disables click-through so you can interact with controls.When running Miko, you can interact through two modes:
p to speak to Miko. The high-accuracy STT engine listens, detects speech boundaries, and responds.memory_enhanced.py)Miko features a human-like memory system that goes beyond simple context windows:
audio_streamer.py & app.py)MikoAudioReceiver.cs for instantaneous playback and viseme/lip-sync generation.Run the test suites to verify system components:
:: Test core memory, audio streamer, and IPC server
venv\Scripts\python.exe -m unittest test_refactor_clean.py
:: Test Fish Audio API client, WebSocket workers, and boundary detection
venv\Scripts\python.exe -m unittest test_fish_audio_integration.py
This project is licensed under the GNU General Public License v3.0 (GPL-3.0) — see the LICENSE file for details. All model weights, voices, and external assets belong to their respective creators.