transcriber-mcp
dialogue-transcriber
转录对话,并找出谁说了什么。
把它指向一段采访、小组讨论、会议录音或 YouTube URL,你就能得到一份每一行都标注了说话人的转录稿——外加一个 Web UI,用于检查说话人聚类、收听任意片段,并手动修正标签。

工作原理
audio ──► transcribe ──► segment ──► extract_clips ──► embed ──► cluster
(Whisper) (sentence- (ffmpeg) (TitaNet) (UMAP +
level) KMeans +
silhouette)Whisper 生成词级时间戳;单词被分组为句子片段;每个片段的音频用 NVIDIA NeMo TitaNet 嵌入;嵌入在 UMAP 投影上进行聚类;最终转录稿以 Speaker 1、Speaker 2…… 的标签输出。每个阶段都按内容哈希缓存,因此重新运行和调整配置都很便宜。
Related MCP server: youtube-transcriber-mcp
快速开始
ffmpeg 和 ffprobe 必须在 PATH 中(macOS 上执行 brew install ffmpeg)。
# 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默认后端在本地运行 faster-whisper;--backend openai 则改用 OpenAI Whisper API(需要 OPENAI_API_KEY,在没有 GPU 的机器上快得多)。密钥可以在环境中导出,也可以放在项目中的 .env 文件里——CLI 会从工作目录(或最近的父目录)加载 .env,而导出的变量始终优先于文件。
数据存放在哪里?
流水线缓存:你运行命令的目录下的
./.transcriber-cache/(可用--work-dir覆盖)——包含分块、每片段剪辑、嵌入、YouTube 下载以及 Web UI 的任务状态。可以安全删除;它会重新构建。转录稿:写在输入音频旁边(
interview.txt),或--output指向的位置;--output -则打印到标准输出。模型权重(本地后端):首次下载到
~/.cache(Hugging Face / NeMo)。Whisper large-v3 的下载量约为 3 GB,因此首次本地运行需要一些时间。
使用默认的本地后端时,数据不会离开你的机器;--backend openai 会将音频发送到 OpenAI API。
选择你的附加功能
[all] 是最简单的选择。对于较小的安装:
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 consumersCLI
# 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格式:txt(合并说话人轮次)、vtt、srt、json。传入 --context "names, jargon" 来为 Whisper 提供它应该预期的词汇。--output - 将转录稿流式输出到标准输出,将摘要输出到标准错误,因此输出可以干净地管道化。
Web UI
transcriber serve 运行一个 FastAPI 后端,并服务打包好的 React 前端。你可以获得:
一个 UMAP 散点图,每个点代表一个片段,按聚类着色——套索选择一个聚类即可批量重命名;
一个连续波形,每个片段对应一个区域——点击或拖动即可播放任意内容;
一个甘特图风格的说话人时间线;
一个支持全文搜索的虚拟化转录稿;
可内联重命名的说话人标签(重命名会在服务端持久化);
TXT / VTT / SRT 导出;
键盘导航(↑/↓ 切换片段,Space 播放/暂停,
/搜索)。
多个任务可以并行运行;通过侧边栏添加更多任务。
serve 会自动选择后端:当 OPENAI_API_KEY 可用(环境变量或 .env)时使用 openai,否则使用 local。传入 --backend 可显式选择。(一个遗留的单任务 Dash UI 仍可通过 transcriber ui 使用。)
面向 AI 智能体
这个项目既为人类设计,也为智能体驱动而构建。
Claude Code 技能——该仓库同时也是一个插件市场。安装该技能后,Claude Code 将知道如何按需转录和区分音频:
/plugin marketplace add Novia-RDI-Seafaring/transcriber
/plugin install dialogue-transcriber@dialogue-transcriber结构化输出——--format json --output - 在标准输出上输出一个稳定的结构:
{
"speakers": ["Speaker 1", "Speaker 2"],
"n_segments": 42,
"duration": 512.3,
"segments": [
{"speaker": "Speaker 1", "start": 0.0, "end": 4.2, "text": "..."}
]
}MCP / OIP——该包是一个开放摄取协议生产者,因此任何支持 OIP 的消费者(例如 Anchor)都可以在无需修改消费者端的情况下摄取转录稿:
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)工具命名空间:transcribe。区域类型:transcript_segment。source_ref.kind:audio-timestamp。
库使用
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 是一个 SpeakerSegment 记录列表,包含句子文本、时间范围、磁盘上的剪辑以及分配的说话人。PipelineResult.cluster.projection 是用于绘图的 2-D UMAP。
后端
关注点 | 默认 | 通过以下方式覆盖 |
转录 |
|
|
嵌入 |
| 向 |
聚类 | UMAP(2) + KMeans + silhouette | 传入 |
YouTube |
| 替换 |
所有后端都是 Protocol——参见 transcriber/transcribe/base.py 和 transcriber/embed/base.py。测试使用内存中的假对象,因此运行测试套件不需要重型模型。
开发
参见 CONTRIBUTING.md 了解指南,以及 CHANGELOG.md 了解发布历史。
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前端工作:cd web && pnpm dev(http://127.0.0.1:5173,将 /api 代理到 :8000),并在另一个 shell 中运行 transcriber serve … --port 8000。
发布:发布 GitHub release 会触发 .github/workflows/release.yml,它会构建前端,将其打包到 wheel 中,并通过可信发布发布到 PyPI。
许可证
Apache-2.0——参见 LICENSE。
This server cannot be deployed
Maintenance
Related MCP Connectors
Transcribe audio & video: diarization, timed SRT/VTT, podcasts, paste-a-link, whole-feed batch.
Transcribe audio and video into speaker-labelled transcripts, subtitles, clips, and cited Q&A.
- VoibeOAuthcom.getvoibe
Transcribe recordings into a speaker-labelled transcript with timestamps and a summary.
Whisper speech to text for podcast, audio and video URLs, 90+ languages, timestamped output.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables high-performance audio transcription using Faster Whisper with CUDA acceleration, supporting single and batch audio file processing with multiple output formats (VTT, SRT, JSON).-
- AlicenseNot gradedqualityDmaintenanceEnables intelligent transcription of YouTube videos with automatic optimization for any video length, using local OpenAI Whisper processing and speaker diarization.-
- AlicenseNot gradedqualityDmaintenanceTranscribes YouTube videos or audio files to Markdown, plain-text, and Word documents.MIT

jackai-stt-mcpofficial
AlicenseAqualityCmaintenanceTranscribes audio files by referencing them in chat, using OpenAI's speech-to-text models locally without uploading audio, and supports speaker diarization.1MIT