Jarvis is a voice-activated, conversational AI assistant powered by a local LLM (Qwen via Ollama). It listens for a wake word, processes spoken commands using a local language model with LangChain, and responds out loud via TTS. It supports tool-calling for dynamic functions like checking the current time.
- 🗣 Voice-activated with wake word "Jarvis"
- 🧠 Local language model (Qwen 3 via Ollama)
- 🔧 Tool-calling with LangChain
- 🔊 Text-to-speech responses via
pyttsx3
- 🌍 Example tool: Get the current time in a given city
- 🔐 Optional support for OpenAI API integration
-
Startup & local LLM Setup
- Initializes a local Ollama model (
qwen3:1.7b
) viaChatOllama
- Registers tools (
get_time
) using LangChain
- Initializes a local Ollama model (
-
Wake Word Listening
- Listens via microphone (e.g.,
device_index=0
) - If it hears the word "Jarvis", it enters "conversation mode"
- Listens via microphone (e.g.,
-
Voice Command Handling
- Records the user’s spoken command
- Passes the command to the LLM, which may invoke tools
- Responds using
pyttsx3
text-to-speech (with optional custom voice)
-
Timeout
- If the user is inactive for more than 30 seconds in conversation mode, it resets to wait for the wake word again.
-
Install Dependencies
Make sure you have installed all required dependencies listed inrequirements.txt
:pip install -r requirements.txt
-
Set Up the Local Model
Ensure you have theqwen3:1.7b
model available in Ollama. -
Run Jarvis
Start the assistant by running:python main.py