Skip to main content

Overview

Welcome!

Stewart logotype

Stewart is a voice assistant built with Python 3.11, designed specifically for Linux systems.

Originally created for personal use by @ilyamiro, this project does not include official support for deployment. If you choose to run Stewart on your own system, please note that you're doing so at your own risk and responsibility.

Development of Stewart began in 2023. Over time, the project has grown significantly — so much so that it became difficult to keep track of all its parts. This documentation serves as a personal reference and guide for my future self, but you're welcome to use it too if you'd like to explore or adapt the project.

note

While Stewart was not developed with a support of Windows 10/11 in mind, it is theoretically possible to make it work on with some effort. If you're seriously interested in adapting it for Windows, feel free to reach out to me on Telegram: @sacrificeit

Features

Out of the box, stewart supports:

  • Voice recognition using VoskAPI local model with sleep mode supported.
  • Voice activity detection using Silero VAD models.
  • Text-to-speech using voice synthesis models provided by Silero TTS. Relies on a self-contained library voicesynth
  • Complex plugin system that can be easily utilized by users
  • Powerful API that allows flexible commands and protocols to be created, offering a wide range of tools and utils
  • A very nuanced and efficient command recognition system supporting context separation and capable of precise extracting of commands
  • Caching of TTS, Music and runtime data to avoid overloading your system.
  • Highly versatile configuration system, general and language-dependent
  • General language localisation system for plugins using config files.
  • Commands and protocols are easy to define using config.yaml files.