A private and fully offline Voice Assistant
Project description
🧠 Offline-Sprachassistent – Prototyp
📌 Übersicht
Dieser Prototyp wurde im Rahmen der Bachelorarbeit zum Thema
„Privacy by Design: Entwicklung und Bewertung eines Offline-Sprachassistenten als Alternative zu Cloud-basierten Systemen“ entwickelt.
Privo ist ein modular aufgebauter Sprachassistent, der vollständig lokal (offline) arbeitet. Alle Verarbeitungsschritte – von der Audioaufnahme bis zur Antwortausgabe – erfolgen direkt auf dem Endgerät, ohne externe Server oder Cloud-Dienste zu verwenden und ohne Informationen länger als ein Gespräch zu speichern.
👉 Ziel ist es, eine datenschutzfreundliche Alternative zu Systemen wie Amazon Alexa oder Google Assistant zu schaffen.
🎯 Zielsetzung
- Entwicklung eines vollständig offlinefähigen Sprachassistenten
- Umsetzung des Konzepts Privacy by Design
- Vermeidung jeglicher Cloud-Kommunikation
- Aufbau einer modularen, erweiterbaren Architektur
- Evaluation hinsichtlich:
- Datenschutz
- Performance (Latenz, Durchsatz)
- Nutzererlebnis
⚙️ Funktionen
Der Prototyp unterstützt aktuell folgende Funktionen:
-
🗣️ Wakeword-Erkennung (OpenWakeWord)
Aktivierung des Sprachassistenten durch ein definiertes Wakeword -
🎙️ Spracherkennung (Faster-Whisper)
Lokale Umwandlung von Sprache in Text -
🧠 LLM-Verarbeitung (llama.cpp + Qwen 2.5)
Antwortgenerierung basierend auf ausgewählten lokalen LLM-Modellen -
🔊 Sprachausgabe (Piper)
Lokale Generierung gesprochener Antworten -
📊 Benchmark-Modul
Durchführung von Messungen zur Bewertung von Latenz, Verarbeitungszeit und Ressourcenverbrauch einzelner Verarbeitungsschritte -
🐞 Debugger
Speicherung und Ausgabe von Debug-Informationen, um Abläufe, Fehler und Zwischenergebnisse während der Entwicklung nachvollziehbar zu machen
🏗️ Architektur
Der Prototyp besteht aus mehreren Modulen:
- Audio-Input – Aufnahme von Sprache über das Mikrofon
- Wakeword-Modul – Erkennung des definierten Aktivierungswortes
- Utterance-Recorder – Aufnahme der Nutzereingabe, bis keine Sprache mehr erkannt wird
- Speech-to-Text-Modul – Lokale Transkription der aufgenommenen Sprache
- LLM-Modul – Lokale Antwortgenerierung
- Text-to-Speech-Modul – Umwandlung der Antwort in Sprache
Alle Komponenten arbeiten vollständig lokal auf dem Gerät.
💻 Installation
Voraussetzungen
- Python 3.11
- Mikrofon
- Unterstütztes Betriebssystem:
- Windows
- Linux
- macOS
- C/C++-Compiler bzw. Build-Tools:
- macOS: Xcode bzw. Xcode Command Line Tools
- Windows: Visual Studio Build Tools oder MinGW
- Linux: GCC oder Clang
- Optional bei NVIDIA-Grafikkarten:
- CUDA-Treiber bzw. CUDA Toolkit für GPU-beschleunigte Whisper-Berechnung
Setup
pip install git+https://github.com/Splix123/privo.git
Danach den Setup-Assistenten starten:
privo install
Damit werden einmalig die benötigten lokalen Modelle heruntergeladen.
Der Privo kann dann mit
privo run
gestartet werden.
📊 Evaluation
Im Rahmen der Bachelorarbeit wird der Prototyp hinsichtlich folgender Kriterien bewertet:
- Datenschutzvorteile gegenüber Cloud-Lösungen
- Erkennungsgenauigkeit
- Reaktionszeit
- Ressourcenverbrauch
Das Benchmark-Modul unterstützt diese Evaluation, indem es definierte Testabläufe ausführt und Messwerte zur Performance des Systems erfasst.
⚠️ Einschränkungen
- Hardwareabhängige Performance
- Lokale Modelle benötigen je nach Größe ausreichend Speicherplatz und Arbeitsspeicher
- GPU-Beschleunigung ist optional, kann die Verarbeitungsgeschwindigkeit jedoch deutlich verbessern
- Den Sprachassistenten auf Englisch zu betreiben verbessert die LLM-Antwort und SST-Ausgabe wesentlich
Lizenz
Der Quellcode von Privo steht unter der Apache License 2.0.
Externe Modelle und Bibliotheken unterliegen jeweils ihren eigenen Lizenzen. Die mitgelieferten oder herunterladbaren Modelle sind nicht automatisch von der Apache-2.0-Lizenz dieses Projekts abgedeckt. Bitte beachte die jeweiligen Lizenzbedingungen der Modellanbieter.
👨💻 Autor
Prototyp zur Bachelorarbeit von: Moritz Rühm
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file privo-0.1.0.tar.gz.
File metadata
- Download URL: privo-0.1.0.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.3 CPython/3.14.3 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cbbceef2eaa0e713767e11e66ae1b0dd4a94a09353c545e86382669c8262fd7
|
|
| MD5 |
b811b9199377f0fa6b2fdae2099de86b
|
|
| BLAKE2b-256 |
264f172f6a4dea310d6aa6731a7159b72ae281c1a3fdc986baaebf2cd14cb7f8
|
File details
Details for the file privo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: privo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 32.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.3 CPython/3.14.3 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a00100ae60d70265631566b77b6d04391350c0a9bcfc40811ca2c7a4f7d6dd45
|
|
| MD5 |
c1abe7cc6b1cf44387fc920f1592a4c5
|
|
| BLAKE2b-256 |
5558a48fdcc8cd8f99fa8906bfe5b436036c622fe1b0eea64249d640a58fa259
|