Skip to main content
Glama

dialogue-transcriber

Transkribieren Sie Gespräche und finden Sie heraus, wer was gesagt hat.

CI PyPI License: Apache-2.0 Python

Richten Sie es auf ein Interview, eine Podiumsdiskussion, eine Besprechungsaufnahme oder eine YouTube-URL, und Sie erhalten ein Transkript, bei dem jede Zeile einem Sprecher zugeordnet ist – plus eine Weboberfläche, um die Sprecher-Cluster zu inspizieren, Segmente anzuhören und Beschriftungen von Hand zu korrigieren.

Die Review-Oberflprüfung: Sprecher-Cluster, Wellenform, Zeitleiste und durchsuchbares Transkript

So funktioniert es

audio  ──►  transcribe  ──►  segment  ──►  extract_clips  ──►  embed  ──►  cluster
              (Whisper)        (sentence-       (ffmpeg)       (TitaNet)    (UMAP +
                               level)                                       KMeans +
                                                                            silhouette)

Whisper erzeugt Wort-Zeitstempel; Wörter werden zu Satzsegmenten gruppiert; die Segmente werden mit NVIDIA NeMo TitaNet eingebettet; die Embeddings werden auf einer UMAP-Projektion geclustert; und das Transkript kommt als Sprecher 1, Sprecher 2, … beschriftet heraus. Jede Stufe wird auf Basis des Inhalts-Hash zwischengespeichert, sodass Wiederholungen und Konfigurationsänderungen günstig sind.

Related MCP server: AssemblyAI MCP Server

Schnellstart

ffmpeg und ffprobe müssen sich im PATH befinden (brew install ffmpeg unter macOS).

# No install needed:
uvx --from "dialogue-transcriber[all]" transcriber transcribe interview.mp3

# Or install the tool:
uv tool install "dialogue-transcriber[all]"

transcriber transcribe interview.mp3 --participants 2
transcriber transcribe "https://www.youtube.com/watch?v=..." --backend openai
transcriber serve interview.mp3        # review UI on http://127.0.0.1:8000

Der Standard-Backend läuft mit faster-whisper lokal; --backend openai verwendet stattdessen die OpenAI-Whisper-API (erfordert OPENAI_API_KEY, deutlich schneller auf Maschinen ohne GPU). Der Schlüssel kann in der Umgebung exportiert oder in einer .env-Datei im Arbeitsverzeichnis gespeichert werden – die CLI lädt .env aus dem Arbeitsverzeichnis (oder dem nächsten übergeordneten Verzeichnis), und exportierte Variablen haben immer Vorrang vor der Datei.

Wohin gehen die Daten?

  • Pipeline-Cache: ./.transcriber-cache/ im Verzeichnis, aus dem Sie starten (überschreibbar mit --work-dir) – Chunks, Segmente-Clips, Embeddings, YouTube-Downloads und der Job-Status der Web-UI. Kann bedenkenlos gelöscht werden; es wird neu aufgebaut.

  • Transkripte: neben der Eingabedatei (interview.txt) oder dort, wo --output zeigt; --output - gibt auf stdout aus.

  • Modellgewichte (lokales Backend): einmalig in ~/.cache heruntergeladen (Hugging Face / NeMo). Der Whisper-large-v3-Download ist ~3 GB groß, daher dauert der erste lokale Lauf eine Weile.

Mit dem standardmäßigen lokalen Backend verlässt nichts Ihren Rechner; --backend openai sendet Audio an die OpenAI-API.

Auswahl der Extras

[all] ist der einfache Knopf. Für kleinere Installationen:

uv pip install dialogue-transcriber              # core only
uv pip install "dialogue-transcriber[local]"     # + faster-whisper backend
uv pip install "dialogue-transcriber[openai]"    # + OpenAI Whisper API backend
uv pip install "dialogue-transcriber[cluster]"   # + scikit-learn / UMAP
uv pip install "dialogue-transcriber[embed]"     # + NeMo TitaNet speaker embedder
uv pip install "dialogue-transcriber[api]"       # + FastAPI backend (powers the web UI)
uv pip install "dialogue-transcriber[youtube]"   # + yt-dlp downloader
uv pip install "dialogue-transcriber[oip]"       # + MCP server for OIP consumers

CLI

# Full pipeline; writes a speaker-labeled transcript next to the audio
transcriber transcribe path/to/audio.mp3

# Speakers, language, format
transcriber transcribe interview.mp3 --participants 3 --language sv --format vtt

# Machine-readable output on stdout (see "For AI agents" below)
transcriber transcribe interview.mp3 --format json --output -

# Pull audio from YouTube
transcriber download "https://www.youtube.com/watch?v=..."

# Pipeline + web UI
transcriber serve interview.mp3 --participants 3

Formate: txt (zusammengeführte Sprecherbeiträge), vtt, srt, json. Übergeben Sie --context "Namen, Jargon", um Whisper mit erwartetem Vokabular zu versorgen. --output - streamt das Transkript auf stdout und die Zusammenfassung auf stderr, sodass die Ausgabe sauber weitergeleitet werden kann.

Weboberfläche

transcriber serve startet ein FastAPI-Backend und stellt das gebündelte React-Frontend bereit. Sie erhalten:

  • ein UMAP-Streudiagramm, in dem jeder Punkt ein Segment ist, farbcodiert nach Cluster – per Lasso können Sie einen Cluster auswählen und umbenennen;

  • eine durchgehende Wellenform mit einer Region pro Segment – klicken oder ziehen, um etwas abzuspielen;

  • eine Gantt-ähnliche Sprecher-Zeitleiste;

  • ein virtualisiertes Transkript mit Volltextsuche;

  • inline umbenennbare Sprecher-Chips (Umbenennungen werden serverseitig gespeichert);

  • TXT / VTT / SRT Export;

  • Tastaturnavigation (↑/↓ Segmente, Leertaste Play/Pause, / Suche).

Mehrere Aufträge können parallel laufen; über die Seitenleiste lassen sich weitere hinzufügen.

serve wählt sein Backend automatisch: openai, wenn ein OPENAI_API_KEY verfügbar ist (Umgebung oder .env), sonst das lokale. Mit --backend kann man explizit wählen. (Eine ältere Dash-Oberfläche für Einzelaufträge ist weiterhin als transcriber ui verfügbar.)

Für KI-Agenten

Dieses Projekt ist darauf ausgelegt, von Agenten gesteuert zu werden.

Claude-Code-Skill – dieses Projekt ist ein Plugin-Marktplatz. Wenn Sie die Skill installieren, weiß Claude Code, wie es Audio auf Anfrage transkribiert und Sprecher zuordnet:

/plugin marketplace add Novia-RDI-Seafaring/transcriber
/plugin install dialogue-transcriber@dialogue-transcriber

Strukturierte Ausgabe--format json --output - erzeugt eine stabile Struktur auf stdout:

{
  "speakers": ["Speaker 1", "Speaker 2"],
  "n_segments": 42,
  "duration": 512.3,
  "segments": [
    {"speaker": "Speaker 1", "start": 0.0, "end": 4.2, "text": "..."}
  ]
}

MCP / OIP – das Paket ist ein Open-Ingestion-Protocol-Produzent, sodass Transkripte von jedem OIP-fähigen Konsumenten (z. B. Anchor) verarbeitet werden können:

transcriber oip install --data-dir ~/transcripts     # register the producer
transcriber oip ingest audio.mp3 --data-dir ~/transcripts
transcriber oip serve                                # MCP server (also: transcriber-mcp)

Tool-Namespace: transcribe. Region-Typ: transcript_segment. source_ref.kind: transcript-segment.

Für KI-Agenten

Dieses Projekt ist dafür gebaut, sowohl von Agenten als auch von Menschen bedient zu werden.

Claude-Desktop-Fähigkeit – das Repository dient gleichzeitig als Plugin-Marketplace. Installieren Sie die Fähigkeit, und Claude Desktop weiß, wie man Audio transkribiert und Diarisierung durchführt:

/plugin marketplace add Novia-RDI-Seafaring/transcriber
/plugin install dialogue-transcriber@dialogue-transcriber

Strukturierte Ausgabe--format json --output - erzeugt eine stabile Struktur auf stdout:

{
  "speakers": ["Speaker 1", "Speaker 2"],
  "n_segments": 42,
  "duration": 512.3,
  "segments": [
    {"speaker": "Speaker 1", "start": 0.0, "end": 4.2, "text": "..."}
  ]
}

MCP / OIP – das Paket ist ein Open-Ingestion-Protocol-Produzent, sodass Transkripte von jedem OIP-fähigen Konsumenten (z. B. Anchor) ohne Änderungen am Konsumenten aufgenommen werden können:

transcriber oip install --data-dir ~/transcripts     # register the producer
transcriber oip ingest audio.mp3 --data-dir ~/transcripts
transcriber oip serve                                # MCP server (also: transcriber-mcp)

Tool-Namensraum: transcribe. Region-Art: transcript_segment. source_ref.kind: audio-timestamp.

Bibliotheksnutzung

from transcriber.config import ClusterConfig, PipelineConfig, TranscribeConfig
from transcriber.pipeline import run_pipeline
from transcriber.render import render_txt

cfg = PipelineConfig(
    transcribe=TranscribeConfig(backend="local", language="en"),
    cluster=ClusterConfig(participants=2),
)
result = run_pipeline("interview.mp3", config=cfg)
print(render_txt(result.segments))

PipelineResult.segments ist eine Liste von SpeakerSegment-Datensätzen mit dem Satztext, dem Zeitbereich, dem Clip auf der Platte und dem zugewiesenen Sprecher. PipelineResult.cluster.projection ist die 2-D-UMAP.

CLI

# Full pipeline; writes a speaker-labeled transcript next to the audio
transcriber transcribe path/to/audio.mp3

# Speakers, language, format
transcriber transcribe interview.mp3 --participants 3 --language sv --format vtt

# Machine-readable output on stdout (see "For AI agents" below)
transcriber transcribe interview.mp3 --format json --output -

# Pull audio from YouTube
transcriber download "https://www.youtube.com/watch?v=..."

# Pipeline + web UI
transcriber serve interview.mp3 --participants 3

Formate: txt (zusammengeführte Sprecherwechsel), vtt, srt, json. Übergeben Sie --context "Namen, Jargon", um Whisper mit erwartetem Vokabular zu versorgen. --output - streamt das Transkript auf stdout und die Zusammenfassung auf stderr, sodass die Ausgabe sauber weitergeleitet werden kann.

Web-UI

transcriber serve startet ein FastAPI-Backend und liefert das gebündelte React-Frontend aus. Sie erhalten:

  • eine UMAP-Punktwolke, bei der jeder Punkt ein Segment ist, farblich nach Cluster – per Lasso einen Cluster auswählen und umbenennen;

  • eine durchgehende Wellenform mit einer Region pro Segment – klicken oder ziehen, um abzuspielen;

  • eine Gantt-ähnliche Sprecher-Zeitleiste;

  • ein virtualisiertes Transkript mit Volltextsuche;

  • inline umbenennbare Sprecher-Chips (Umbenennungen werden serverseitig gespeichert);

  • Export als TXT / VTT / SRT;

  • Tastaturnavigation (↑/↓ Segmente, Leertaste Play/Pause, / Suche).

Mehrere Aufträge können parallel laufen; über die Seitenleiste lassen sich weitere hinzufügen.

serve wählt das Backend automatisch aus: openai, wenn ein OPENAI_API_KEY verfügbar ist (Umgebung oder .env), sonst local. Mit --backend kann die Wahl explizit getroffen werden. (Eine ältere Single-Job-Dash-Oberfläche ist weiterhin als transcriber ui verfügbar.)

Für KI-Agenten

Dieses Projekt ist darauf ausgelegt, sowohl von Agenten als auch von Menschen genutzt zu werden.

Claude-Code-Fähigkeit – das Projekt dient gleichzeitig als Plugin-Marktplatz. Installieren Sie die Fähigkeit, und Claude Code weiß, wie es Audio auf Anfrage transkribiert und diarisiert:

/plugin marketplace add Novia-RDI-Seafaring/transcriber
/plugin install dialogue-transcriber@dialogue-transcriber

Strukturierte Ausgabe--format json --output - erzeugt eine stabile Struktur auf stdout:

{
  "speakers": ["Speaker 1", "Speaker 2"],
  "n_segments": 42,
  "duration": 512.3,
  "segments": [
    {"speaker": "Speaker 1", "start": 0.0, "end": 4.2, "text": "..."}
  ]
}

MCP / OIP – das Paket ist ein Producer des Open Ingestion Protocol, sodass Transkripte von jedem OIP-fähigen Konsumenten (z. B. Anchor) ohne Änderungen am Konsumenten aufgenommen werden können.

transcriber oip install --data-dir ~/transcripts     # register the producer
transcriber oip ingest audio.mp3 --data-dir ~/transcripts
transcriber oip serve                                # MCP server (also: transcriber-mcp)

Tool-Namespace: transcribe. Region-Art: transcript_segment. source_ref.kind: audio-timestamp.

Bibliotheksnutzung

from transcriber.config import ClusterConfig, PipelineConfig, TranscribeConfig
from transcriber.pipeline import run_pipeline
from transcriber.render import render_txt

cfg = PipelineConfig(
    transcribe=TranscribeConfig(backend="local", language="en"),
    cluster=ClusterConfig(participants=2),
)
result = run_pipeline("interview.mp3", config=cfg)
print(render_txt(result.segments))

PipelineResult.segments ist eine Liste von SpeakerSegment-Datensätzen mit dem Satztext, dem Zeitbereich, dem Clip auf der Platte und dem zugewiesenen Sprecher. PipelineResult.cluster.projection ist die UMAP-Projektion für Plots.

Weitere Hinweise

git clone https://github.com/Novia-RDI-Seafaring/transcriber
cd transcriber
uv venv
uv pip install -e ".[dev,cluster,api,openai,embed,youtube]"
(cd web && pnpm install && pnpm build)   # so `transcriber serve` can serve the UI

pytest                  # core + clustering + api tests
pytest -m "not slow"    # skip heavy/network tests
ruff check src tests

Für Frontend-Arbeit: pnpm dev (http://127.0.0.1:5173, leitet /api an :8000 weiter). Ein GitHub-Release löst .github/workflows/ci.yml aus, das das Frontend baut, in das Wheel einbindet und per Trusted Publishing veröffentlicht.

Lizenz

Apache-2.0. Siehe LICENSE.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Transcripts from YouTube, TikTok, Instagram and podcasts (Spotify, Apple, RSS), as clean JSON.

  • Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.

  • Fetch transcripts, subtitles, chapters, metadata and frames from YouTube and 10+ video platforms

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Novia-RDI-Seafaring/transcriber'

If you have feedback or need assistance with the MCP directory API, please join our Discord server