Files
Brancheneinstufung2/docs/TRANSCRIPTION_TOOL.md

5.3 KiB

Meeting Assistant (Transcription Tool)

Version: 0.6.0 Status: Beta (AI Insights Integration)

Der Meeting Assistant ist eine leistungsstarke Suite zur Transkription und Bearbeitung von Audio-Aufnahmen. Er kombiniert lokale FFmpeg-Verarbeitung mit der Gemini 2.0 Flash AI.


1. Architektur & Stack

  • FFmpeg Engine: Automatisches Splitting großer Dateien in 30-Minuten-Segmente.
  • Gemini 2.0 Flash: AI-Transkription mit Fokus auf JSON-Struktur (Sprecher, Timestamps) und zur Generierung von Meeting-Analysen.
  • Prompt Library: Eine Sammlung von Vorlagen zur Steuerung der KI-Analyse.
  • Structured Storage: SQLite speichert jedes Segment als editierbares JSON-Array und die Ergebnisse der KI-Analyse.
  • Unified UI: Das Frontend fügt alle Segmente zu einem nahtlosen Dokument zusammen und bietet interaktive Analyse-Funktionen.

2. Key Features (v0.6.0)

🚀 NEU: AI Insights & Translation

  • Übersetzung (DE/EN): Übersetzt das gesamte Transkript mit einem Klick ins Englische.
  • Meeting-Protokoll: Erstellt automatisch ein formelles Protokoll (Meeting Minutes) mit Agenda, Entscheidungen und nächsten Schritten.
  • Action Items: Extrahiert eine Aufgabenliste mit Verantwortlichen und Fälligkeiten direkt aus dem Gespräch.
  • Rollenbasierte Zusammenfassungen: Generiert spezifische Zusammenfassungen, z.B. eine "Sales Summary", die sich auf Kundenbedürfnisse, Kaufsignale und nächste Schritte für das Vertriebsteam konzentriert.

🎙️ Intelligente Transkription

  • Unterstützt MP3/WAV bis 500MB.
  • Native Sprechererkennung und Zeitstempel-Normalisierung über Segmentgrenzen hinweg.

👥 Globales Sprecher-Management

  • Speaker Bar: Eine Übersicht aller im Dokument gefundenen Sprecher.
  • Global Rename: Mit einem Klick kann ein Sprecher (z.B. "Speaker A") im gesamten Dokument dauerhaft umbenannt werden (z.B. "Thomas").

✂️ Präzises Schneiden (Trimming)

  • Trim Start: Löscht alles vor einer ausgewählten Zeile (ideal zum Entfernen von Vorgesprächen).
  • Trim End: Löscht alles nach einer ausgewählten Zeile (entfernt Verabschiedungen).
  • Single Line Delete: Einzelne Zeilen oder Störgeräusche können individuell entfernt werden.

📝 Editor & Export

  • Inline-Edit: Jeder Textblock und jeder Sprechername kann durch direktes Anklicken korrigiert werden.
  • Copy Full Transcript: Kopiert das gesamte, bereinigte Transkript inkl. Timestamps in die Zwischenablage.
  • Copy Insights: Jedes Analyse-Ergebnis kann einfach in die Zwischenablage kopiert werden.

3. API Endpunkte

Methode Pfad Beschreibung
GET /meetings Liste aller Meetings.
POST /upload Audio-Upload & Prozess-Start.
POST /meetings/{id}/insights Neu: Generiert eine Analyse (z.B. Protokoll, Action Items).
POST /meetings/{id}/translate Neu: Übersetzt das Transkript in eine Zielsprache (aktuell: 'English').
POST /meetings/{id}/rename_speaker Globale Umbenennung in der DB.
PUT /chunks/{id} Speichert manuelle Text-Korrekturen.
DELETE /meetings/{id} Vollständiges Löschen.

4. Roadmap

  • v0.7: Search: Globale Suche über alle Transkripte hinweg.
  • v0.8: Q&A an das Meeting: Ermöglicht, Fragen direkt an das Transkript zu stellen ("Was wurde zu Thema X beschlossen?").
  • v0.9: Export-Formate: Export der Ergebnisse in verschiedene Formate (z.B. PDF, DOCX).

5. Development Notes & Troubleshooting

Bei der Implementierung der AI-Insights-Funktion (v0.6.0) traten mehrere Probleme auf, deren Lösungen für die zukünftige Entwicklung wichtig sind:

  • Isolierung von Microservices: Der Versuch, eine zentrale helpers.py-Datei aus dem transcription-app-Container zu importieren, schlug mit einem ModuleNotFoundError fehl.
    • Lösung: Kritische Funktionen (wie der Gemini-API-Client) wurden in eine lokale Bibliothek (/lib/gemini_client.py) innerhalb des Service-Backends dupliziert, um den Service eigenständig zu machen.
  • API-Schlüssel in Docker: Der neue, isolierte Service konnte den API-Schlüssel nicht aus einer Datei lesen.
    • Lösung: Der GEMINI_API_KEY wurde als Umgebungsvariable über die docker-compose.yml-Datei an den Container übergeben. Dies ist die Best Practice für die Bereitstellung von "Secrets" für containerisierte Anwendungen. Wichtig: Ein docker-compose restart reicht nicht aus, um die Änderung zu übernehmen; ein docker-compose up -d --force-recreate <service_name> ist erforderlich.
  • Modell-Kompatibilität: API-Aufrufe schlugen mit 404 NOT_FOUND fehl, weil versucht wurde, ein nicht zum API-Schlüssel passendes Modell (gemini-1.5-flash) zu verwenden.
    • Lösung: Der Modellname wurde auf das im Projekt etablierte und funktionierende Modell gemini-2.0-flash korrigiert.
  • Datenformatierung: Die KI lieferte generische Antworten, weil das an sie übergebene Transkript leer war.
    • Lösung: Die Analyse des rohen JSON-Outputs aus der Datenbank (debug_chunks-Endpunkt) zeigte, dass die Formatierungslogik die absolute_seconds zur korrekten chronologischen Sortierung verwenden muss. Die _format_transcript-Funktion wurde entsprechend angepasst.