# m-saad-k/basic-voice-based-ai-assistant architecture

> Architecture diagram of the GitHub repository m-saad-k/basic-voice-based-ai-assistant, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/m-saad-k/basic-voice-based-ai-assistant
- Repository: https://github.com/m-saad-k/basic-voice-based-ai-assistant

## Overview

Klara is a small voice-based AI assistant. The principal loop captures speech, recognizes text, asks Gemini for a short reply, and speaks that reply; the integration module owns the calls between stages. The README documents Vosk, Gemini, and TTS, while the sampled source confirms their runtime roles. The Vosk model directory is present, but its contents and configuration are not shown; the source contains a placeholder model path and API key.

Main entry points: [`Klara/software/AI_speech_integretion.py`](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/AI_speech_integretion.py) (Assistant loop), [`Klara/software/speech_to_text.py`](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/speech_to_text.py) (Speech recognition), [`Klara/software/AI_models.py`](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/AI_models.py) (Response generation), [`Klara/software/imp_text_to_speech.py`](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/imp_text_to_speech.py) (Text to speech)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_capture["Speech capture"]
  node_integration["Assistant loop"]
  node_recognition["Speech recognition<br/>[speech_to_text.py]"]
  node_vosk["Vosk model"]
end

subgraph group_response["AI response"]
  node_ai["Response generation<br/>[AI_models.py]"]
  node_gemini{{"Gemini API"}}
end

subgraph group_playback["Speech playback"]
  node_tts["Text to speech"]
  node_audiofile["Generated audio<br/>[output.wav]"]
end

node_user(("User"))
node_microphone(("Microphone"))
node_speaker(("Speaker"))

node_user -->|"speaks"| node_microphone
node_microphone -->|"audio input"| node_recognition
node_integration -->|"calls"| node_recognition
node_recognition -->|"recognizes with"| node_vosk
node_recognition -->|"returns text"| node_integration
node_integration -->|"sends prompt"| node_ai
node_ai -->|"requests response"| node_gemini
node_gemini -->|"returns response"| node_ai
node_ai -->|"returns text"| node_integration
node_integration -->|"passes reply"| node_tts
node_tts -->|"writes audio"| node_audiofile
node_tts -->|"plays audio"| node_speaker

click node_integration "https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/AI_speech_integretion.py"
click node_recognition "https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/speech_to_text.py"
click node_vosk "https://github.com/m-saad-k/basic-voice-based-ai-assistant/tree/main/Klara/packages/vosk_model"
click node_ai "https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/AI_models.py"
click node_tts "https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/imp_text_to_speech.py"
click node_audiofile "https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/output.wav"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_integration,node_recognition,node_vosk,node_user toneBlue
class node_ai,node_gemini toneAmber
class node_tts,node_audiofile toneMint
class node_microphone,node_speaker toneIndigo
```

## Components

### Speech capture

- [Assistant loop](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/AI_speech_integretion.py): `Klara/software/AI_speech_integretion.py`
- [Speech recognition](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/speech_to_text.py): `Klara/software/speech_to_text.py`
- [Vosk model](https://github.com/m-saad-k/basic-voice-based-ai-assistant/tree/main/Klara/packages/vosk_model): `Klara/packages/vosk_model`

### AI response

- [Response generation](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/AI_models.py): `Klara/software/AI_models.py`
- **Gemini API**

### Speech playback

- [Text to speech](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/imp_text_to_speech.py): `Klara/software/imp_text_to_speech.py`
- [Generated audio](https://github.com/m-saad-k/basic-voice-based-ai-assistant/blob/main/Klara/software/output.wav): `Klara/software/output.wav`

### Other components

- **User**
- **Microphone**
- **Speaker**

## Connections

- User → Microphone: speaks
- Microphone → Speech recognition: audio input
- Assistant loop → Speech recognition: calls
- Speech recognition → Vosk model: recognizes with
- Speech recognition → Assistant loop: returns text
- Assistant loop → Response generation: sends prompt
- Response generation → Gemini API: requests response
- Gemini API → Response generation: returns response
- Response generation → Assistant loop: returns text
- Assistant loop → Text to speech: passes reply
- Text to speech → Generated audio: writes audio
- Text to speech → Speaker: plays audio
