voice-agent/need.md
root 5321c8602e feat: voice-agent MVP — LXC web frontend + Mac AI worker
LXC-Frontend (FastAPI + HTML/JS):
- Audio-Upload (MP3/WAV/M4A/MP4/OGG/FLAC, max. 500 MB)
- SQLite Job-Store, BackgroundTask-Pipeline
- Job-Liste mit Live-Status, Downloads (DOCX + JSON)
- Mac-Health-Indicator im UI

Mac-Worker (FastAPI):
- /api/transcribe (lightning-whisper-mlx | faster-whisper | mock)
- /api/summarize + /api/protocol via Ollama (llama3.1:8b)
- /api/export/docx via python-docx

Deploy:
- systemd-Service, Nginx Reverse-Proxy
- deploy/install.sh: idempotentes LXC-Setup

Doku: README.md, lxc-frontend/README.md, mac-worker/README.md
2026-05-13 15:33:53 +00:00

367 lines
5.1 KiB
Markdown

# Lastenheft / Umsetzungskonzept
# Self-hosted AI-Transkriptionssystem für Sitzungsaufzeichnungen
## Ziel
Eine Firma lädt regelmäßig Audioaufzeichnungen von Sitzungen hoch.
Das System transkribiert die Aufnahme automatisch, erkennt mehrere Sprecher, erstellt Zusammenfassungen und exportiert fertige Protokolle.
---
# 1. Architektur
```text
Benutzer
Webfrontend im LXC-Container
REST/API-Aufruf
Mac-Rechner als AI-Backend
├─ Whisper / MLX-Whisper / whisper.cpp
├─ Ollama
├─ optionale Speaker-Diarization
└─ Export DOCX/PDF/TXT
```
---
# 2. Systemaufteilung
## 2.1 LXC-Container (ohne GPU)
### Aufgaben
- Weboberfläche
- Datei-Upload
- Benutzerverwaltung
- Jobverwaltung
- Statusanzeige
- Downloadbereich
- Speicherung der Ergebnisse
### Der LXC führt keine AI-Verarbeitung durch.
---
## 2.2 Mac-Rechner (mit Ollama)
### Aufgaben
- Speech-to-Text
- Audioanalyse
- Sprechererkennung
- Zusammenfassung
- Protokollgenerierung
- Exporterstellung
---
# 3. Komponenten
## 3.1 Webfrontend im LXC
### Empfohlene Technologien
- FastAPI oder Flask
- HTML/CSS/JavaScript
- SQLite oder PostgreSQL
- Nginx Reverse Proxy
- Optional Docker
### Funktionen
- Upload von MP3/WAV/M4A
- Anzeige laufender Jobs
- Download fertiger Ergebnisse
- Benutzerverwaltung optional
---
## 3.2 AI-Backend auf dem Mac
### Empfohlene Technologien
- Ollama
- whisper.cpp
- lightning-whisper-mlx
- optional WhisperX
- optional pyannote.audio
- FastAPI
### Empfehlung für Apple Silicon
```text
lightning-whisper-mlx
```
### Alternative
```text
whisper.cpp
```
---
# 4. Datenfluss
```text
1. Benutzer lädt Audio im Webfrontend hoch
2. LXC speichert Datei temporär
3. LXC sendet Datei oder Dateipfad an Mac-API
4. Mac transkribiert Audio
5. Mac erkennt optional Sprecher
6. Mac sendet Transkript an Ollama
7. Ollama erzeugt:
- Zusammenfassung
- Beschlüsse
- Aufgaben
- offizielles Protokoll
8. Ergebnis wird gespeichert
9. Benutzer lädt Ergebnis herunter
```
---
# 5. API-Design
## Endpunkte auf dem Mac
### Transkription starten
```http
POST /api/transcribe
```
### Zusammenfassung erzeugen
```http
POST /api/summarize
```
### Protokoll generieren
```http
POST /api/protocol
```
### Jobstatus abrufen
```http
GET /api/job/{job_id}
```
### Ergebnis abrufen
```http
GET /api/result/{job_id}
```
---
# 6. Ausgabeformate
## Das System erzeugt
- Rohtranskript
- Zeitgestempeltes Transkript
- Sprecherzuordnung
- Zusammenfassung
- Beschlussliste
- Aufgabenliste
- Sitzungsprotokoll
---
## Exportformate
- TXT
- DOCX
- PDF
---
# 7. Beispielausgabe
```text
Sitzungsprotokoll
Datum: 13.05.2026
Thema: Monatsbesprechung
Teilnehmer:
- Sprecher 1
- Sprecher 2
- Sprecher 3
Zusammenfassung:
In der Sitzung wurden Budget, Personalplanung und IT-Migration besprochen.
Beschlüsse:
- Budget für Q3 wird freigegeben.
- Servererneuerung wird vorbereitet.
Aufgaben:
- Herr Müller holt Angebote ein.
- Frau Schneider koordiniert den nächsten Termin.
Transkript:
[00:00:01] Sprecher 1: Guten Morgen zusammen.
[00:00:07] Sprecher 2: Ich beginne mit dem Budgetbericht.
```
---
# 8. Ollama-Konfiguration
## Ollama im Netzwerk erreichbar machen
```bash
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
```
### Test vom LXC
```bash
curl http://MAC-IP:11434/api/tags
```
---
# 9. Empfohlener Firmenworkflow
```text
1. Sitzung wird aufgenommen
2. Datei wird im Webportal hochgeladen
3. System verarbeitet die Datei automatisch
4. Sekretariat prüft Ergebnis
5. Protokoll wird final gespeichert oder verteilt
```
---
# 10. Prioritäten
## Priorität 1 (MVP)
- Upload-Webfrontend
- Mac-API
- Audio-Transkription
- Ollama-Zusammenfassung
- DOCX-Export
---
## Priorität 2
- Sprechererkennung
- PDF-Export
- Benutzerverwaltung
- Protokollvorlagen
---
## Priorität 3
- Active Directory / LDAP
- Nextcloud-/SharePoint-Integration
- automatische E-Mail-Verteilung
- Übersetzungen
---
# 11. Technische Empfehlung
## MVP-Architektur
### LXC
```text
- FastAPI Webfrontend
- SQLite
- Upload-Verzeichnis
- Ergebnis-Verzeichnis
```
### Mac
```text
- FastAPI Worker
- lightning-whisper-mlx
- Ollama
- python-docx
```
---
# 12. Ziel der ersten Version
Die erste Version soll können:
- Audiodatei hochladen
- Datei an den Mac senden
- Audio automatisch transkribieren
- Zusammenfassung mit Ollama erzeugen
- Sitzungsprotokoll als DOCX exportieren
- Ergebnis im Webfrontend herunterladen
---
# 13. Erweiterungsmöglichkeiten
## Später mögliche Funktionen
- Live-Transkription
- automatische Sprechererkennung mit Namen
- Meeting-Kalenderintegration
- Teams-/Zoom-Import
- automatische E-Mail-Protokolle
- Mehrsprachigkeit
- Übersetzung
- Suchfunktion
- Archivierung
- Rechte- und Rollensystem
---
# 14. Sicherheitsanforderungen
- vollständiger lokaler Betrieb
- keine Cloud-Anbindung
- DSGVO-konforme Verarbeitung
- Zugriffsschutz
- HTTPS
- Benutzerrechte
- Audit-Logging optional
---
# 15. Empfohlene Open-Source-Komponenten
## Speech-to-Text
- Whisper
- whisper.cpp
- lightning-whisper-mlx
## Speaker-Diarization
- pyannote.audio
- WhisperX
## LLM / Zusammenfassung
- Ollama
## Dokumentenerstellung
- python-docx
- reportlab
## Webfrontend
- FastAPI
- Flask
- Nginx
---