Files
Brancheneinstufung2/TRANSCRIPTION_TOOL.md
Floke da00d461e1 feat(transcription): v0.4.0 with structured json, inline editing and deletion
- Backend: Switched prompt to JSON output for structured data
- Backend: Added PUT /chunks/{id} endpoint for persistence
- Backend: Fixed app.py imports and initialization logic
- Frontend: Complete rewrite for Unified View (flattened chunks)
- Frontend: Added Inline Editing (Text/Speaker) and Row Deletion
- Docs: Updated TRANSCRIPTION_TOOL.md with v0.4 features
2026-01-24 20:43:33 +00:00

3.5 KiB

Meeting Assistant (Transcription Tool)

Version: 0.4.0 Status: Beta (Functional with Editing)

Der Meeting Assistant ist ein lokaler Micro-Service zur Transkription und Analyse von Audio-Dateien (Meetings, Calls, Interviews). Er kombiniert die Datensicherheit einer lokalen Datenhaltung mit der Leistungsfähigkeit von Googles Gemini 2.0 Flash Modell für kostengünstige, hochqualitative Speech-to-Text Umwandlung.


1. Architektur

Der Service folgt dem "Sidecar"-Pattern im Docker-Stack und ist vollständig in das Dashboard integriert.

  • Frontend: React (Vite + Tailwind) unter /tr/.
  • Backend: FastAPI (Python) unter /tr/api/.
  • Processing:
    • FFmpeg: Zerlegt große Audio-Dateien (> 2 Stunden) in verarbeitbare 30-Minuten-Chunks.
    • Gemini 2.0 Flash: Führt die Transkription durch und liefert strukturiertes JSON (Sprecher, Zeitstempel, Text).
    • SQLite: Speichert Metadaten, Status und die bearbeitbaren JSON-Segmente.
  • Storage: Lokales Docker-Volume für Audio-Uploads.

Datenfluss

  1. Upload: User lädt MP3 hoch -> Speicherung in /app/uploads_audio.
  2. Chunking: Backend startet Background-Task -> FFmpeg erstellt Segmente.
  3. Transkription: Loop über Chunks -> Upload zu Gemini -> JSON-Extraktion -> Offset-Berechnung -> DB-Speicherung.
  4. Assemblierung: Das Frontend lädt alle Chunks eines Meetings und stellt sie als eine durchgehende Liste dar.

2. API Endpunkte

Basis-URL: /tr/api

Methode Pfad Beschreibung
GET /meetings Liste aller Meetings inkl. Status.
POST /upload Upload einer Audio-Datei (multipart/form-data).
GET /meetings/{id} Lädt Meeting-Details inklusive aller Text-Chunks (JSON).
DELETE /meetings/{id} Löscht ein Meeting inkl. Dateien komplett.
PUT /chunks/{id} Aktualisiert den Inhalt (Text/Sprecher) eines spezifischen 30-Min-Chunks.

3. Datenbank Schema (SQLite)

Datei: transcripts.db

meetings

  • id: PK
  • title, status, duration_seconds, file_path.

transcript_chunks

  • id: PK
  • meeting_id: FK
  • chunk_index: 0, 1, 2...
  • raw_text: Backup des rohen Gemini-Outputs.
  • json_content: JSON (Editierbar). Struktur: [{ "time": "MM:SS", "absolute_seconds": 120, "speaker": "A", "text": "..." }]

4. Features & Bedienung

Transkription

  • Upload von MP3/WAV Dateien (bis 500MB).
  • Automatische Erkennung von Sprechern (Speaker A, Speaker B).

Editor-Modus (v0.4)

  • Inline Editing: Klicken Sie auf einen Sprechernamen oder Text, um ihn direkt zu bearbeiten. Änderungen werden sofort gespeichert.
  • Zeilen Löschen: Fahren Sie mit der Maus über eine Zeile und klicken Sie auf das rote "X", um irrelevante Teile (z.B. Smalltalk) zu entfernen.
  • Sprecher-Aliasing (Ansicht): Klicken Sie auf den blauen Sprechernamen ("Speaker A"), um ihn für die aktuelle Sitzung umzubenennen (z.B. in "Thomas"). Hinweis: Dies ändert aktuell nur die Ansicht, nicht die Datenbank für alle Zeilen.

5. Roadmap / Next Steps

  • v0.5: Global Rename: Button "Alle 'Speaker A' dauerhaft in DB umbenennen".
  • v0.6: AI Analysis: "Erstelle Meeting Notes" Button basierend auf dem korrigierten Transkript.
  • v0.7: Export als Word/PDF.

6. Troubleshooting

  • Legacy Format: Bei Dateien, die vor v0.3 hochgeladen wurden, erscheint ein Warnhinweis. Bitte neu hochladen, um die Editier-Funktionen zu nutzen.
  • Upload bricht ab: Prüfen Sie die Dateigröße (< 500MB).