Skip to content

NoB0T21/MyFriend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Misaki (みさき) β€” Offline Voice Assistant (Python + Whisper + Ollama + Piper)

Misaki is a lightweight offline desktop voice assistant built in Python that runs smoothly even on low-end laptops.

Idle Listening Thinking Talking
Idle Listening Thinking Talking

It listens for a wake word ("Hey Misaki"), understands speech, thinks using a local LLM, and replies with a natural voice β€” all without internet.

It also includes a cute animated robot face GUI that changes expressions while:

  • Idle 😴
  • Listening 🎧
  • Thinking πŸ€”
  • Speaking πŸ—£οΈ

✨ Features

βœ… Wake word detection
βœ… Real-time mic streaming
βœ… Silence detection (auto stop recording)
βœ… Offline Speech-to-Text ( Whisper )
βœ… Local LLM brain ( Ollama – phi3 mini )
βœ… Offline Text-to-Speech ( Piper TTS )
βœ… Animated GUI with GIF expressions
βœ… Works on low-end CPU laptops
βœ… No cloud / no API cost
βœ… Take Photos and Screenshots (say take picture / screenshot)
βœ… Can access internet when ever she want
βœ… Mikami also has memory to keep information


🧠 Tech Stack

Part Library
GUI Tkinter
STT OpenAI Whisper
TTS Piper (fast + offline)
Brain Ollama (phi3:mini)
Audio sounddevice
picture cv2
screenshort pyautogui
GIF Pillow
Language Python 3.10+

πŸ“‚ Project Structure

MyFriend/
β”‚
β”œβ”€β”€ main.py                   # CLI assistant
β”œβ”€β”€ gui_main.py               # GUI version
β”‚
β”œβ”€β”€ πŸ“‚brain/
β”‚   β”œβ”€β”€ cerebrum.py           # LLM logic (Ollama)
β”‚   β”œβ”€β”€ πŸ“‚stt/
β”‚   β”‚   β”œβ”€β”€ auditoryCortex.py # Speech β†’ text (Whisper)
β”‚   └── πŸ“‚tts/
β”‚       └── motorCortex.py    # Text β†’ speech (Piper)
β”œβ”€β”€ πŸ“‚face/                  # GIF animations
β”‚   β”œβ”€β”€ Idle.gif
β”‚   β”œβ”€β”€ listening.gif
β”‚   β”œβ”€β”€ thinking.gif
β”‚   └── Talking1.gif
β”œβ”€β”€ πŸ“‚ears/
β”‚   β”œβ”€β”€ mic.py               # record until silence
β”‚   └── mic_small.py         # wake word chunk recorder
β”œβ”€β”€ πŸ“‚ears/
β”‚   β”œβ”€β”€ gif.py               # GifPlayer
β”‚   └── get_path.py          # resource path helper
β”œβ”€β”€ voice/                   # Piper voices
β”‚
└── README.md

πŸ’» Minimum Requirements

Processor (CPU): 2 GHz or faster.
Memory (RAM): 8 GB or higher.
Storage: 3 GB.

βš™οΈ Installation

1️⃣ Install Python packages

pip install -r requirements.txt

2️⃣ Install Ollama

Download: πŸ‘‰ https://ollama.com

Then:

ollama pull phi3:mini

3️⃣ Download Piper voice

Download voice files if you want different voice:
πŸ‘‰ https://Piper.com
Example:

en_US-amy-medium.onnx
en_US-amy-medium.onnx.json

Put inside:

voice/

▢️ Run

GUI (recommended)

python gui_main.py

CLI version

python main.py

🎀 Usage

Say:

Hey Misaki

Then speak your command.

Example:

Hey Misaki
What time is it?

Buddy will:

  1. Wake
  2. Listen
  3. Think
  4. Speak reply

πŸ–₯️ Performance Tips (important)

If animations lag:

Reduce GIF size

Use:

200x200 px

Or convert GIF β†’ PNG frames for faster rendering

Or use constant delay (40ms)


🧩 How it works

Flow:

Mic β†’ Whisper (STT)
     β†’ Ollama (Brain)
     β†’ Piper (TTS)
     β†’ Speaker

GUI states:

Idle β†’ Listening β†’ Thinking β†’ Talking β†’ Idle

πŸš€ Build EXE (Windows)

You can share Buddy with friends.

Install:

pip install pyinstaller

Build:

pyinstaller --onefile --noconsole gui_main.py

EXE will be in:

dist/gui_main.exe

πŸ”’ Offline Privacy

Buddy runs:

  • locally
  • no internet
  • no data sent anywhere

Safe for personal use.


πŸ‘¨β€πŸ’» Author

Aryan Gawade


About

Misaki is a lightweight offline desktop voice assistant built in Python that runs smoothly even on low-end laptops.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages