# kishoreaarya/local_voice-_agent architecture

> Architecture diagram of the GitHub repository kishoreaarya/local_voice-_agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kishoreaarya/local_voice-_agent
- Repository: https://github.com/kishoreaarya/local_voice-_agent

## Overview

Local_Voice-_Agent is a prototype for a local voice assistant: audio is transcribed, a local LLM maps the transcript to a tool payload, and the pipeline looks up that tool for execution. The excerpts also show a separate STT bridge and weather/action helpers, but do not show how they connect to the pipeline. Although the intent prompt lists messaging, calendar, browser, and file tools, their implementations are not present in the sampled runtime. These gaps limit confidence about tool dispatch and several advertised actions.

Main entry points: [`run_pipeline.py`](https://github.com/kishoreaarya/local_voice-_agent/blob/main/run_pipeline.py) (Voice pipeline), [`agent_brain.py`](https://github.com/kishoreaarya/local_voice-_agent/blob/main/agent_brain.py) (Intent parser), [`live_agent.py`](https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py) (Action executor), [`stt_bridge.py`](https://github.com/kishoreaarya/local_voice-_agent/blob/main/stt_bridge.py) (STT bridge)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Voice workflow"]
  node_pipeline["Voice pipeline<br/>[run_pipeline.py]"]
  node_whisper_cli["Whisper CLI"]
  node_stt_bridge["STT bridge<br/>[stt_bridge.py]"]
end

subgraph group_intent["Intent parsing"]
  node_brain["Intent parser<br/>[agent_brain.py]"]
  node_normalizer["Parameter normalizer<br/>[agent_brain.py]"]
  node_local_llm["Local Qwen model"]
end

subgraph group_actions["Actions and integrations"]
  node_tool_registry["Tool registry<br/>[live_agent.py]"]
  node_action_executor["Action executor<br/>[live_agent.py]"]
  node_weather["Weather lookup<br/>[live_agent.py]"]
  node_wttr["wttr.in"]
  node_speech_output["Speech output<br/>[live_agent.py]"]
  node_tts_platforms["Platform TTS"]
end

node_user(("Voice user"))

node_user -->|"provides audio"| node_pipeline
node_pipeline -->|"transcribes with"| node_whisper_cli
node_pipeline -->|"parses transcript"| node_brain
node_brain -->|"requests completion"| node_local_llm
node_brain -->|"normalizes parameters"| node_normalizer
node_pipeline -->|"looks up tool"| node_tool_registry
node_stt_bridge -->|"runs transcription"| node_whisper_cli
node_action_executor -->|"fetches weather"| node_weather
node_weather -->|"requests forecast"| node_wttr
node_action_executor -->|"speaks result"| node_speech_output
node_speech_output -->|"invokes platform TTS"| node_tts_platforms

click node_pipeline "https://github.com/kishoreaarya/local_voice-_agent/blob/main/run_pipeline.py"
click node_stt_bridge "https://github.com/kishoreaarya/local_voice-_agent/blob/main/stt_bridge.py"
click node_brain "https://github.com/kishoreaarya/local_voice-_agent/blob/main/agent_brain.py"
click node_normalizer "https://github.com/kishoreaarya/local_voice-_agent/blob/main/agent_brain.py"
click node_tool_registry "https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py"
click node_action_executor "https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py"
click node_weather "https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py"
click node_speech_output "https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py"

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_pipeline,node_whisper_cli,node_stt_bridge,node_user toneBlue
class node_brain,node_normalizer,node_local_llm toneAmber
class node_tool_registry,node_action_executor,node_weather,node_wttr,node_speech_output,node_tts_platforms toneMint
```

## Components

### Voice workflow

- [Voice pipeline](https://github.com/kishoreaarya/local_voice-_agent/blob/main/run_pipeline.py): `run_pipeline.py`
- **Whisper CLI**
- [STT bridge](https://github.com/kishoreaarya/local_voice-_agent/blob/main/stt_bridge.py): `stt_bridge.py`

### Intent parsing

- [Intent parser](https://github.com/kishoreaarya/local_voice-_agent/blob/main/agent_brain.py): `agent_brain.py`
- [Parameter normalizer](https://github.com/kishoreaarya/local_voice-_agent/blob/main/agent_brain.py): `agent_brain.py`
- **Local Qwen model**

### Actions and integrations

- [Tool registry](https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py): `live_agent.py`
- [Action executor](https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py): `live_agent.py`
- [Weather lookup](https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py): `live_agent.py`
- **wttr.in**
- [Speech output](https://github.com/kishoreaarya/local_voice-_agent/blob/main/live_agent.py): `live_agent.py`
- **Platform TTS**

### Other components

- **Voice user**

## Connections

- Voice user → Voice pipeline: provides audio (evidence: `run_pipeline.py`)
- Voice pipeline → Whisper CLI: transcribes with (evidence: `run_pipeline.py`)
- Voice pipeline → Intent parser: parses transcript (evidence: `run_pipeline.py`)
- Intent parser → Local Qwen model: requests completion (evidence: `agent_brain.py`)
- Intent parser → Parameter normalizer: normalizes parameters (evidence: `agent_brain.py`)
- Voice pipeline → Tool registry: looks up tool (evidence: `run_pipeline.py`)
- STT bridge → Whisper CLI: runs transcription (evidence: `stt_bridge.py`)
- Action executor → Weather lookup: fetches weather (evidence: `live_agent.py`)
- Weather lookup → wttr.in: requests forecast (evidence: `live_agent.py`)
- Action executor → Speech output: speaks result (evidence: `live_agent.py`)
- Speech output → Platform TTS: invokes platform TTS (evidence: `live_agent.py`)
