Doku

Dokumentation

Vier Abschnitte, in der Reihenfolge, in der die meisten sie brauchen.

Nextcloud-App installieren

Die App ist die Nextcloud-Hälfte des Systems: Meeting-Liste, Einstellungen, Chat-Befehle und Dateien. Selbst nimmt sie nichts auf – das erledigt der Connector, und beide finden sich über einen gemeinsamen Schlüssel.

Bevor Sie beginnen

  • Nextcloud 30 oder neuer, mit installiertem Talk.
  • Ein High Performance Backend für Talk. Das ist Pflicht: Nur mit separatem Audio pro Sprecher kann ein Transkript sagen, wer gesprochen hat, und ohne HPB gibt es dieses Audio nicht.
  • Ein Konto bei diesem Dienst – von dort kommt der Schlüssel.
  • Shell-Zugriff, um occ auszuführen, oder ein Administrator, der ihn hat.

1. App installieren

Entpacken Sie das Release in das Verzeichnis apps/ Ihrer Nextcloud und aktivieren Sie die App:

tar -xzf voxonta-3.0.0.tar.gz -C /path/to/nextcloud/apps/
sudo -u www-data php occ app:enable voxonta

In der oberen Leiste erscheint der Eintrag Meetings. Er bleibt leer, bis der erste Anruf transkribiert ist.

2. Schlüssel hinterlegen

Fügen Sie unter Verwaltungseinstellungen → Voxonta den Dienstschlüssel aus Ihrem Konto ein. Die App prüft ihn sofort und meldet es, wenn der Dienst nicht antwortet.

Derselbe Schlüssel kommt in Schritt 3 in den Connector. Ein Schlüssel gilt für beide Richtungen: Der Connector fragt die App, welche Anrufe gerade laufen, und die App fragt den Dienst, was ein beendeter Anruf ergeben hat.

3. Aufnahmedienst anbinden

Der Connector läuft außerhalb von Nextcloud, auf derselben Maschine wie Ihr Talk High Performance Backend. Er braucht drei Angaben:

NEXTCLOUD_URLAdresse Ihrer Nextcloud, z. B. https://cloud.example.com
APP_SERVICE_TOKENDerselbe Schlüssel wie in Schritt 2
GATEWAY_TOKENIhr Dienstschlüssel aus Ihrem Konto

Wie Sie ihn selbst betreiben, steht in einem eigenen Abschnitt. Wenn wir den Connector für Sie hosten, ist dieser Schritt bereits erledigt.

4. Testanruf führen

Starten Sie in einer beliebigen Unterhaltung einen Anruf, sagen Sie ein paar Sätze und legen Sie auf. Nach ein bis zwei Minuten sollte das Transkript unter Meetings erscheinen. Zusammenfassung und Analyse kommen später – meist innerhalb einer Stunde, bei langen Meetings auch später.

Wenn nichts erscheint, prüfen Sie in dieser Reihenfolge:

  1. Das Log des Connectors – steht dort Call monitor started, und sieht er den Anruf?
  2. Verwaltungseinstellungen → Voxonta – meldet sich der Dienst als kürzlich aktiv?
  3. Ob überhaupt jemand gesprochen hat. Ein stiller Anruf ergibt ein leeres Transkript, und das ist ein korrektes Ergebnis, kein Fehler.

Chat-Befehle

/no-recordDiesen Anruf nicht mehr transkribieren
/recordFortsetzen

Die Befehle muss ein Administrator in der Unterhaltung aktivieren, unabhängig davon, wer dem Raum beitritt. In der Praxis funktionieren sie in Gruppen- und öffentlichen Unterhaltungen, in denen sie aktiviert wurden, und nicht in Einzelgesprächen, wo sie es normalerweise nicht sind. Bis zu fünf Minuten vor einem Anruf gesendet, verhindert /no-record, dass die Transkription überhaupt startet.

Wo die Dateien landen

Transkripte und Analysen schreibt ein Dienstkonto in eigene Ordner und teilt sie anschließend mit den Teilnehmenden des Anrufs. In einer Gruppenunterhaltung postet die App die Links zusätzlich in den Chat; in einem Einzelgespräch geht das nicht, dort ist die Freigabe selbst die Benachrichtigung.

So funktioniert es

Drei Teile. Ein Connector auf Ihrer Seite, der den Anruf mithört, eine Engine auf unserer, die Sprache in Text verwandelt, und Ihr eigener Speicher, in dem das Ergebnis landet.

Während des Anrufs

Der Connector tritt Ihrem Meeting so bei, wie es der Browser eines weiteren Teilnehmers tun würde – nur spricht er nicht und erscheint nicht im Raum. Bei Nextcloud Talk verbindet er sich als interner Client mit Ihrem High Performance Backend und erhält einen Audiostream pro Person. Genau deshalb kann ein Transkript sagen, wer was gesagt hat: Die Stimmen werden nie zu einer Spur gemischt.

Das Audio fließt zur Engine, solange der Anruf läuft. Niemand drückt auf Aufnahme, und hinterher gibt es keine Aufnahme – siehe Ihre Daten.

Wenn der Anruf endet

  1. Die Engine erkennt, was noch im Puffer liegt, und erstellt das Transkript, nach Sprechern getrennt und mit Zeitstempeln.
  2. Das Gateway speichert es und übergibt es an den Analyser, der Zusammenfassung, Entscheidungen, offene Fragen und Aufgaben schreibt. Das dauert je nach Länge des Meetings einige Minuten bis ein paar Stunden.
  3. Die App in Ihrer Nextcloud fragt das Gateway, was vorliegt, holt es ab, schreibt die Dateien in Ihren Speicher und teilt sie mit den Teilnehmenden des Anrufs.

Was die Grenze überschreitet

Ihre Seite → unsereDas Audio des Anrufs, solange das Meeting läuft; die Namen der Teilnehmenden, damit das Transkript Zeilen zuordnen kann; Name und Kennung der Unterhaltung.
Unsere → Ihre SeiteTranskript, Zusammenfassung und Analysedateien; Sprechstatistik pro Anruf.
NieIhre Dateien, Ihre Chats außerhalb des Anrufs, Ihre Benutzerliste oder irgendetwas über Unterhaltungen, die nicht transkribiert wurden.

Sprecherzuordnung

Das Audio jedes Teilnehmers kommt in einem eigenen Stream an, von der Meeting-Plattform bereits gekennzeichnet. Die Zuordnung ist also eine Tatsache und kein Raten. Wo eine Plattform weniger liefert – eine gemeinsame Spur, ein Gast ohne Namen –, wird die Zeile als nicht identifizierter Teilnehmer markiert, statt sie jemandem zuzuschreiben, der plausibel erscheint.

Die Teile im Einzelnen

ConnectorLäuft auf Ihrer Seite. Hört den Anruf mit, sendet Audio, fragt die App, welche Anrufe laufen. Open Source.
Nextcloud-AppLäuft in Ihrer Nextcloud. Einstellungen, Meeting-Liste, Chat-Befehle; holt beendete Meetings ab und legt sie ab. Open Source.
EngineBei uns. Sprache zu Text, ein Puffer pro Sprecher.
GatewayBei uns. Hält die Ergebnisse, bis Ihre Seite sie abholt, trennt Mandanten voneinander, misst die Nutzung.
AnalyserBei uns. Zusammenfassung, Entscheidungen, Aufgaben, Sprecherporträts.

Ihre Daten

Kurz gesagt: Die Ergebnisse gehören Ihnen und liegen in Ihrem Speicher. Unsere Kopien sind Arbeitskopien, und sie verfallen nach einer Frist, die wir Ihnen zeigen können.

Wie lange wir Daten aufbewahren

Audio des AnrufsWird nicht aufbewahrt. Es wird beim Eintreffen erkannt und nie als Aufnahme gespeichert.
Transkript, Zusammenfassung, Analyse – unsere Kopie7 Tage ab Ende des Anrufs, danach gelöscht. Lang genug, damit Ihre Seite sie abholen kann, auch wenn sie ein paar Tage offline war.
Arbeitskopie des Analysers30 Tage, danach gelöscht, samt allem, was daraus entstanden ist.
SprecherprofileBleiben erhalten, solange mindestens ein Meeting dieser Person noch gespeichert ist. Verfällt das letzte, verschwindet auch das Profil.
In Ihrer NextcloudSo lange, wie Sie es möchten. Diese Dateien gehören Ihnen; wir löschen sie nicht und können es auch gar nicht.

Zum Audio

Die Erkennung geschieht nicht sofort, daher wird Sprache während der Verarbeitung in kurzen Stücken im Arbeitsspeicher gehalten. Wird der Speicher knapp, kann ein Stück kurz auf die Festplatte ausgelagert werden; es wird gelöscht, sobald es erkannt ist – Reste ebenso, beim Neustart. Was nie passiert: dass eine Aufnahme gespeichert wird. Es gibt bei uns nirgends eine Datei Ihres Meetings und keine Möglichkeit, nachträglich eine zu erzeugen.

Wer was sehen kann

  • Zwischen Kunden – jedes Meeting gehört zu genau einem Workspace, und eine Anfrage mit dem Schlüssel eines Workspace erreicht immer nur die Meetings dieses Workspace.
  • Innerhalb Ihrer Nextcloud – Dateien werden mit den Teilnehmenden des Anrufs geteilt, den Rest regeln die Berechtigungen von Nextcloud. Wir wissen nicht, wer Ihre Benutzer sind; das weiß nur Ihre Nextcloud.
  • Sprecherporträts – die Analysedatei einer Person wird wie der Rest mit den Teilnehmenden dieses Meetings geteilt.

Früher löschen

Ein Meeting kann bei uns vor Ablauf der sieben Tage entfernt werden – die Kopie in Ihrer Nextcloud bleibt davon unberührt, denn was dort gelöscht wird, entscheiden Sie, nicht wir. Schreiben Sie an hello@voxonta.com, mit dem Workspace und dem, was weg soll. Einen Self-Service-Knopf dafür gibt es noch nicht, und so zu tun, als gäbe es ihn, wäre schlechter, als es offen zu sagen.

Was wir nicht tun

  • Modelle mit Ihren Meetings trainieren.
  • Ihre Transkripte lesen, außer Sie bitten uns, uns etwas Bestimmtes anzusehen.
  • Irgendetwas verkaufen oder an irgendwen weitergeben. Im Produkt gibt es keine Werbeintegrationen und keine Analytics.

Wo es läuft

Die Spracherkennung läuft auf unseren eigenen Servern, mit einem Modell, das wir selbst hosten. Ihr Audio geht an keine Sprach-API eines Drittanbieters.

Für die Analyse wird ein Sprachmodell genutzt, angebunden über OpenRouter. Zum Zusammenfassen wird der Text des Meetings gesendet – nie das Audio. Zwei Dinge begrenzen, wer ihn sehen kann:

  • Infrage kommen nur Anbieter, deren Richtlinie lautet, Anfragedaten weder aufzubewahren noch damit zu trainieren; alle anderen werden auf Ebene der Anfrage ausgeschlossen, nicht im Vertrauen auf eine Einstellung irgendwo.
  • Anbieter, die wir gezielt ausgeschlossen haben – wegen Qualität oder Verfügbarkeit –, erhalten ebenfalls nie etwas.

Welcher der verbleibenden Anbieter eine Anfrage bedient, wird pro Anfrage entschieden, daher können wir Ihnen vorab keinen bestimmten Namen zusagen. Zusagen können wir die Regel, die alle erfüllen. Wenn Ihre Sicherheitsverantwortlichen statt der Regel die aktuelle Liste brauchen, fragen Sie, und wir schicken sie – sie ändert sich, wenn Anbieter hinzukommen oder wegfallen.

Connector selbst betreiben

Der Teil, der Ihre Anrufe mithört, ist der Teil, den man am ehesten auf eigener Hardware behalten will. Er ist Open Source, läuft neben Ihrem Talk High Performance Backend und baut ausschließlich ausgehende Verbindungen auf.

Was er ist

Ein kleiner Python-Dienst. Er fragt die Nextcloud-App, welche Anrufe laufen, tritt ihnen über Ihr High Performance Backend als interner Client bei und streamt das Audio jedes Teilnehmers zur Engine. Er tritt nicht als sichtbarer Teilnehmer bei, spricht nicht und erscheint nicht im Raum.

Was er braucht

WoDieselbe Maschine wie Ihr Talk High Performance Backend. So nimmt das Audio den kürzesten Weg, und nirgends muss ein zusätzlicher Port geöffnet werden.
DockerEr wird als Image ausgeliefert; in das Python des Hosts wird nichts installiert.
Ausgehender ZugriffZu Ihrer Nextcloud und zu unserem Gateway auf 443. Nichts Eingehendes: kein Port-Forwarding, keine zusätzliche Regel.
RessourcenBescheiden – er leitet Audio weiter, statt es zu erkennen. Die Erkennung passiert bei uns.

Einstellungen

NEXTCLOUD_URLIhre Nextcloud, z. B. https://cloud.example.com
APP_SERVICE_TOKENDer Schlüssel aus den Admin-Einstellungen der App
GATEWAY_TARGETgw.voxonta.com:443
GATEWAY_TOKENIhr Workspace-Schlüssel aus Ihrem Konto
NC_APP_IDOptional. Die ID der App, standardmäßig voxonta – nur nötig, wenn Sie sie umbenannt haben

Alles Weitere – welche Unterhaltungen transkribiert werden, wie sich der Connector bei Nextcloud anmeldet, wie lange Ergebnisse aufbewahrt werden – kommt aus den Admin-Einstellungen der App. So wird es an einer Stelle konfiguriert statt an zwei.

Prüfen, ob er läuft

Beim Start sollte er in dieser Reihenfolge melden, dass er die Einstellungen aus Ihrer Nextcloud geladen hat, dass er zum Gateway streamt und dass der Call-Monitor gestartet ist. Wiederholt er stattdessen could not read live calls, antwortet die App nicht – falsche URL, falscher Schlüssel oder die App ist nicht aktiviert.

Was bei uns bleibt

Spracherkennung, das Gateway, das die Ergebnisse hält, und der Analyser sind nicht Open Source und laufen auf unserer Infrastruktur. Wir werden nicht so tun, als wäre es anders: Selbst hosten können Sie heute den Aufnahmepfad und die Nextcloud-Seite – also den Teil, der Ihre Anrufe und Ihre Benutzer berührt. Die Erkennung braucht Hardware und ein Modell, das wir pflegen; sie selbst zu betreiben, ist ein Gespräch mit uns und kein Download.

Noch nicht hier

Andere Quellen als Nextcloud Talk und die API, mit der Sie Meetings aus Ihren eigenen Tools auslesen. Beides existiert in irgendeiner Form; keines ist gut genug dokumentiert, um es zu veröffentlichen, und eine Seite, die etwas fast richtig beschreibt, ist schlechter als gar keine.

Fehlt etwas oder stimmt etwas nicht? hello@voxonta.com

Wir zeigen Ihnen, wie es funktioniert

Schreiben Sie uns, und wir vereinbaren eine Demo.