This is a project attempting to make an offline voice assistant using the vosk library for voice-to-text parsing. I want to have an extensive selection of commands which can be executed through voice.
Teddy can support the following commands:
- Shutdown
- Reboot
- Logout
- Lock screen
- open terminal
- open browser
- open VS Code
- close active window
- Works only for xorg/xwayland windows currently
- Mute/Unmute speakers
- Increase/Decrease volume
- Increase/Decrease brightness
- Turn Wi-Fi on/off
- Turn bluetooth on/off
- Says the battery level out loud
Teddy listens for a wake word using:
Porcupine (Picovoice) — highly accurate wake-word engine
Vosk (vosk-model-small-en-us-0.15) — low-memory offline speech-to-text model ideal for command recognition
No cloud processing. No internet required.
Hey-Teddy/
├── models/
│ └── vosk-model-small-en-us-0.15/
├── app
│ ├── commands.py
│ ├── config.py
│ ├── main.py
│ ├── nlu.py
│ ├── recognizer.py
│ └── tts.py
├── assets
│ └── logo.png
├── Requirements
│ ├── linux_requirements.txt
│ └── requirements_python.txt
├── Hey-Teddy.desktop
├── .gitignore
├── LICENSE
└── README.md
- Clone the repo
git clone https://github.com/<your-username>/Hi-Teddy.git
cd Hi-Teddy- Install dependencies
pip install -r Requirements/Requirements/requirements_python.txt
sudo dnf install wmctrl brightnessctl nmcli- Download Vosk model
Place the following model in the models/ folder:
vosk-model-small-en-us-0.15- Run Teddy
python app/main.pyI have added a desktop launcher so that it can be run as a regular application
- Make the .desktop file executable
chmod +x Hey-Teddy.desktop- Install to system applications menu
cp Hey-Teddy.desktop ~/.local/share/applications/- Update the desktop to see it quick
update-desktop-database ~/.local/share/applications/Now we can see it as an app.
It is quite nice to have a friendly companion in you laptop or desktop. It gives it a certain personality.
Teddy is not meant to compete with online cloud assistants. It is a offline, extendable buddy.
This project is licensed under the MIT License. See the LICENSE file for details.
-
Close Window
close_window only works for Xorg / XWayland windows using wmctrl. Wayland-native apps cannot be closed externally due to GNOME security restrictions.
-
Microphone Must Be Active
Vosk requires continuous access to the microphone. If the mic is blocked by permissions or another app, Teddy will not hear commands.