So transkribieren Sie eine Zoom-, Meet- oder Teams-Aufzeichnung samt Sprechern

Exportieren Sie Ihre Aufzeichnung als MP4 oder M4A und senden Sie die URL mit include_diarization auf true an POST /transcribe. Sie erhalten für jeden Abschnitt Start- und Endzeit sowie ein speaker-Label zurück. Dieses Transkript können Sie anschließend an Ihr LLM weitergeben, um ein Protokoll und offene Aufgaben (Action Items) herauszuziehen. Hinweis: Die API verarbeitet fertige Aufzeichnungen, sie klinkt sich nicht live in laufende Besprechungen ein.

API-Schlüssel holen Schnellstart Unterstützte Sprachen

Zuletzt aktualisiert: · Markdown

Aufzeichnung mit Sprechererkennung transkribieren

Laden Sie Ihre Datei über POST /upload hoch (maximal 100 MiB; bei längeren Aufzeichnungen extrahieren Sie vorher das Audio mit ffmpeg) oder geben Sie eine öffentliche URL an. Starten Sie anschließend den Auftrag. Der Parameter num_speakers ist optional. Setzen Sie ihn, wenn Sie wissen, wie viele Personen gesprochen haben.

curl https://app.kolwrite.com/transcribe \
  -H "x-api-key: $KOLWRITE_API_KEY" -H "Content-Type: application/json" \
  -d '{"audio_url": "https://example.com/weekly-sync.mp4", "model": "oracle", "language": "auto",
       "include_diarization": true, "num_speakers": 4, "output_format": "json"}'

Fragen Sie den Status regelmäßig über GET /transcribe/{jobId} ab oder hinterlegen Sie eine webhook_url, damit unser System Ihren Server benachrichtigt, sobald eine längere Aufzeichnung fertig verarbeitet ist.

Jeder Abschnitt enthält das Sprecherlabel, die Zeitstempel und die einzelnen Wörter:

{
  "jobId": "34c63d45-4cb5-473b-bc60-25c175e69c57",
  "status": "COMPLETED",
  "result": {
    "language": "en",
    "segments": [
      {
        "start": 1.0,
        "end": 3.75,
        "text": "Hello everyone and welcome to the show.",
        "speaker": "Speaker 1",
        "words": [
          { "start": 1.0, "end": 1.35, "word": "Hello" },
          { "start": 1.4, "end": 1.75, "word": "everyone" }
        ]
      }
    ]
  }
}

Sprecherlabels durch echte Namen ersetzen

Die Sprecherlabels sind neutral gehalten (Speaker 1, Speaker 2). Wer hinter welchem Label steckt, legen Sie selbst fest, zum Beispiel über die Teilnehmerliste oder anhand dessen, wer sich zuerst vorstellt. Mit einer kleinen Zuordnung im Code halten Sie das fest:

minutes.py

# minutes.py — turn the diarized result into text an LLM can summarize
NAMES = {"Speaker 1": "Dana", "Speaker 2": "Omar", "Speaker 3": "Lee"}  # you decide who is who


def clock(seconds):
    m, s = divmod(int(seconds), 60)
    h, m = divmod(m, 60)
    return f"{h}:{m:02}:{s:02}" if h else f"{m}:{s:02}"


def meeting_text(result):
    lines = []
    for segment in result["segments"]:
        who = NAMES.get(segment.get("speaker"), segment.get("speaker", "Unknown"))
        lines.append(f'[{clock(segment["start"])}] {who}: {segment["text"]}')
    return "\n".join(lines)


PROMPT = """Below is a meeting transcript with timestamps. Write: (1) a five-line summary,
(2) decisions, (3) action items as "owner - task - [timestamp]". Use only what is in the transcript.

"""
# Send PROMPT + meeting_text(result) to the model you use.

Protokoll und Aufgaben erstellen

KolWrite liefert das rohe Transkript mit Zeitstempeln und Sprechern. Für die Zusammenfassung und die Aufgabenliste nutzen Sie einfach Ihr gewohntes LLM. Lassen Sie die Zeitstempel im Text stehen, damit das Modell bei jeder Aufgabe angeben kann, an welcher Stelle im Gespräch sie vereinbart wurde. Weisen Sie das LLM außerdem an, sich strikt an das Transkript zu halten.

Telefonate mit getrennten Tonspuren pro Sprecher

Wenn ein Gespräch in Stereo vorliegt (etwa Support-Mitarbeiter links, Kunde rechts), brauchen Sie keine künstliche Sprechererkennung. Lassen Sie die Sprecher stattdessen einfach nach Tonspur trennen. Das klappt mit 2 bis 8 Kanälen, lässt sich allerdings nicht mit include_diarization kombinieren.

{
  "audio_url": "https://example.com/support-call.wav",
  "model": "oracle",
  "channel_speaker_separation": "standard",
  "channel_labels": { "0": "Agent", "1": "Customer" },
  "output_format": "json"
}

Wenn die Gesprächspartner häufig gleichzeitig sprechen, wählen Sie overlap statt standard. Abgerechnet wird zum regulären Modellpreis, und zwar nach dem höheren der beiden Werte: entweder der Gesamtdauer der Datei oder der Summe der erkannten Sprechzeit über alle Kanäle hinweg.

Kosten

AufgabeModellKosten
Einstündige Besprechung mit Sprechererkennungoracle1,44 US$
Dieselbe Besprechung mit Pro-Diarisierung bei schwierigem Tonoracle + pro_diarization1,68 US$
30 Minuten, schwieriger Ton, Pro-Diarisierungoracle_max + pro_diarization1,92 US$

Die normale Sprechererkennung und die Standard-Kanaltrennung kosten keinen Aufpreis. Alle Details finden Sie unter /llms/pricing.md.

Worauf Sie in der Praxis achten sollten

  • In Besprechungen fallen personenbezogene Daten an. Weisen Sie die Teilnehmer darauf hin, dass Sie aufzeichnen und transkribieren, und verwahren Sie die Transkripte genauso sorgfältig wie die Aufnahmen selbst.
  • Wenn Teilnehmer durcheinanderreden, ähnlich klingen oder schlechte Mikrofone nutzen, stößt die Sprechererkennung am ehesten an ihre Grenzen. Weichen Sie bei schwierigen Aufnahmen auf pro_diarization oder die Kanaltrennung aus.
  • Wenn in einem Meeting nur eine Sprache gesprochen wird, übergeben Sie diese fest über den Parameter language. Die automatische Spracherkennung legt sich immer auf eine einzige Sprache pro Datei fest.
  • Ein Mensch sollte Namen, Zahlen und Beschlüsse noch einmal gegenprüfen, bevor jemand nach dem Protokoll handelt.

Fragen und Antworten

Wie transkribiere ich eine Zoom-Aufzeichnung mit Sprechernamen?

Laden Sie die Aufzeichnung herunter und senden Sie sie mit include_diarization: true an POST /transcribe. In Ihrem Code ersetzen Sie dann Speaker 1, Speaker 2 usw. durch echte Namen. Die API trennt und nummeriert die Sprecher nur, die Zuordnung zu Personen übernehmen Sie selbst.

Kann sie meinem Google-Meet- oder Teams-Anruf beitreten?

Nein. KolWrite verarbeitet fertige Aufzeichnungen, die Sie hochladen. Einen Dienst für Echtzeit-Transkription oder laufende Meetings gibt es nicht.

Schreibt sie Protokoll und Aufgaben?

Sie liefert Ihnen das Transkript samt Zeitstempeln und Sprecherlabels. Das Protokoll und die Aufgaben erstellt anschließend Ihr eigenes LLM auf Basis dieses Transkripts.

Wie werden Telefonate mit zwei Sprechern behandelt?

Falls jeder Sprecher auf einer eigenen Tonspur liegt, nutzen Sie statt der Diarisierung einfach channel_speaker_separation zusammen mit channel_labels.

Welche Sprachen funktionieren bei Besprechungen?

Alle 100 Sprachen aus der Sprachliste, einschließlich Hebräisch und Arabisch. Wenn in der Besprechung nur eine Sprache gesprochen wird, geben Sie diese über den Parameter language an.