Skip to main content

A private and fully offline Voice Assistant

Project description

Privo Logo

🧠 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:

  1. Audio-Input – Aufnahme von Sprache über das Mikrofon
  2. Wakeword-Modul – Erkennung des definierten Aktivierungswortes
  3. Utterance-Recorder – Aufnahme der Nutzereingabe, bis keine Sprache mehr erkannt wird
  4. Speech-to-Text-Modul – Lokale Transkription der aufgenommenen Sprache
  5. LLM-Modul – Lokale Antwortgenerierung
  6. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

privo-0.1.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

privo-0.1.0-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

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

Hashes for privo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3cbbceef2eaa0e713767e11e66ae1b0dd4a94a09353c545e86382669c8262fd7
MD5 b811b9199377f0fa6b2fdae2099de86b
BLAKE2b-256 264f172f6a4dea310d6aa6731a7159b72ae281c1a3fdc986baaebf2cd14cb7f8

See more details on using hashes here.

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

Hashes for privo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a00100ae60d70265631566b77b6d04391350c0a9bcfc40811ca2c7a4f7d6dd45
MD5 c1abe7cc6b1cf44387fc920f1592a4c5
BLAKE2b-256 5558a48fdcc8cd8f99fa8906bfe5b436036c622fe1b0eea64249d640a58fa259

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page