mcpField
W
Whisper Transcribe

Whisper Transcribe

本地服务
github.com媒体与设计04 周前更新

关于 Whisper Transcribe

Whisper Transcribe 是用于音频转录的 MCP 服务,面向需要将音频转成文本的 Claude Desktop 和 Claude Code 用户。它可选择本地 faster-whisper 离线处理,或使用 OpenAI Whisper API,也支持后处理转录文本。

主要功能

  1. 01使用 faster-whisper 本地转录
  2. 02通过 OpenAI Whisper API 转录
  3. 03接受文件路径或 Base64 音频
  4. 04自动检测语言或指定语言
  5. 05可选 GPT 文本后处理
  6. 06查看后端配置和可用模型

适用场景

  1. 01离线转录本地音频文件
  2. 02通过 OpenAI API 转录音频
  3. 03在程序集成中转录 Base64 音频
  4. 04校正转录文本的拼写与标点

MCP 相关

该 MCP 服务提供 transcribe_file、transcribe_base64 和 list_models 工具,供 MCP 客户端转录音频并查看模型配置。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"zahirinatzuke-whisper-transcribe": {
"command": "uvx",
"args": [
"whisper-transcribe-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"WHISPER_MODEL": "<WHISPER_MODEL>",
"WHISPER_POST_PROCESS_MODEL": "<WHISPER_POST_PROCESS_MODEL>"
}
}
}
}
启动命令uvx whisper-transcribe-mcp
需要配置的环境变量
OPENAI_API_KEY密钥OpenAI API key. Enables the cloud backend and optional GPT post-processing.
WHISPER_MODELDefault faster-whisper model size when using the local backend.
WHISPER_POST_PROCESS_MODELOpenAI chat model used for optional GPT post-processing.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiwhisper-transcribe-mcp1.1.3

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
languageany否语言代码(例如 'es'、'en'、'fr')。未提供时自动检测。
file_pathstring是音频文件的绝对路径(mp3、wav、m4a、ogg、flac 等)
model_sizeany否本地模型大小:tiny、base、small、medium、large-v3(以及 .en、turbo 和 distil 变体)。使用 OpenAI 后端时忽略。 默认为 WHISPER_MODEL 环境变量(默认值:'base')。
post_processboolean否如果为 True,则通过 GPT 处理转录文本,以修正拼写、语法和标点。需要 openai 软件包。
post_process_promptany否用于后处理的自定义系统提示词。可在此提供领域特定上下文、专有名词或产品名称,以帮助修正 Whisper 可能拼错的内容。如果未提供,则使用通用修正提示词。

详细介绍

whisper-transcribe-mcp

PyPI version CI License: MIT Python 3.10+

使用 faster-whisper(本地、免费、离线)或 OpenAI Whisper API(云端,需要 API 密钥)进行音频转录的 MCP 服务。支持在 macOS、Windows 和 Linux 上使用 Claude Desktop 和 Claude Code。


前置条件

macOS

选项 A — uv(推荐):

brew install uv
# or
curl -LsSf https://astral.sh/uv/install.sh | sh

选项 B — Python: macOS 12.3+ 已内置 Python 3.10+。你也可以使用 brew install python 安装。


Windows

选项 A — uv(推荐):

winget install astral-sh.uv

或者从 astral.sh/uv 下载安装程序。

选项 B — Python: 从 python.org 下载 Python 3.10+。安装时,勾选 “Add Python to PATH”。

无需安装 ffmpeg 或任何编译器 — 所有内容都已打包在此软件包中。


Linux

选项 A — uv(推荐):

curl -LsSf https://astral.sh/uv/install.sh | sh

选项 B — Python:

# Debian/Ubuntu
sudo apt install python3.12 python3.12-venv

# Fedora
sudo dnf install python3.12

# Arch
sudo pacman -S python

无需其他系统依赖项。


安装

选项 A — uvx(推荐,无需永久安装)

uvx 会自动在隔离环境中下载并安装软件包。只需安装 uv 即可。

# Local backend:
uvx "whisper-transcribe-mcp[local]"

# OpenAI backend:
uvx "whisper-transcribe-mcp[openai]"

# Both backends:
uvx "whisper-transcribe-mcp[all]"
选项 B — pip
# Local backend:
pip install "whisper-transcribe-mcp[local]"

# OpenAI backend:
pip install "whisper-transcribe-mcp[openai]"

# Both backends:
pip install "whisper-transcribe-mcp[all]"

使用场景

场景 1 — 仅使用本地后端(免费,可离线使用)

使用 faster-whisper 在本地进行转录。首次使用时会从 HuggingFace 下载模型(base 约为 74MB),并将其缓存。

安装:

pip install "whisper-transcribe-mcp[local]"

环境变量:

WHISPER_MODEL=base   # or tiny, small, medium, large-v3

场景 2 — 仅使用 OpenAI 后端(准确度最高,需要 API 密钥)

使用 OpenAI 的 whisper-1 模型。需要 API 密钥和互联网连接。不会下载本地模型。

安装:

pip install "whisper-transcribe-mcp[openai]"

环境变量:

OPENAI_API_KEY=sk-...

场景 3 — 同时使用两个后端(存在密钥时使用 OpenAI,否则回退到本地)

如果设置了 OPENAI_API_KEY,则会自动使用 OpenAI。否则会回退到本地 faster-whisper。

安装:

pip install "whisper-transcribe-mcp[all]"

配置

Claude Desktop

各操作系统的配置文件位置:

操作系统路径
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

在 "mcpServers" 中添加条目:

Windows 注意事项: Claude Desktop 在受限环境中运行,可能无法在 PATH 中找到 uvx,并且可能使用 ctranslate2(faster-whisper 的依赖项)尚未提供预编译 wheel 的 Python 版本(例如 3.14)。需要进行以下两项修复:

  1. 使用 uvx.exe 的完整路径,而不是仅写 uvx。在 PowerShell 中运行 where.exe uvx 查找它(通常位于 C:\Users\<YourUser>\.local\bin\uvx.exe)。
  2. 使用 --python 3.12 标志指定 Python 3.12,以确保使用兼容的 wheel。

场景 1 — 本地:

macOS / Linux:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "uvx",
      "args": ["whisper-transcribe-mcp[local]"],
      "env": {
        "WHISPER_MODEL": "base"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "C:\\Users\\<YourUser>\\.local\\bin\\uvx.exe",
      "args": ["--python", "3.12", "whisper-transcribe-mcp[local]"],
      "env": {
        "WHISPER_MODEL": "base"
      }
    }
  }
}

场景 2 — OpenAI:

macOS / Linux:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "uvx",
      "args": ["whisper-transcribe-mcp[openai]"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "C:\\Users\\<YourUser>\\.local\\bin\\uvx.exe",
      "args": ["--python", "3.12", "whisper-transcribe-mcp[openai]"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

场景 3 — 两者(设置密钥时优先使用 OpenAI):

macOS / Linux:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "uvx",
      "args": ["whisper-transcribe-mcp[all]"],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "WHISPER_MODEL": "base"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "C:\\Users\\<YourUser>\\.local\\bin\\uvx.exe",
      "args": ["--python", "3.12", "whisper-transcribe-mcp[all]"],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "WHISPER_MODEL": "base"
      }
    }
  }
}

编辑文件后,重启 Claude Desktop。


Claude Code

在 macOS、Windows 和 Linux 上的使用方式相同。需要安装 uv。

Claude Code 配置文件位置:

OS全局按项目
macOS / Linux~/.claude.json.claude/settings.json(项目根目录)
WindowsC:\Users\<user>\.claude.json.claude\settings.json(项目根目录)

添加服务最简单的方式是使用 Claude Code CLI,它会自动更新配置文件:

# Case 1 — Local:
claude mcp add whisper-transcribe uvx -- "whisper-transcribe-mcp[local]"

# Case 2 — OpenAI:
claude mcp add whisper-transcribe uvx --env OPENAI_API_KEY=sk-... -- "whisper-transcribe-mcp[openai]"

# Case 3 — Both (OpenAI with local fallback):
claude mcp add whisper-transcribe uvx --env OPENAI_API_KEY=sk-... --env WHISPER_MODEL=base -- "whisper-transcribe-mcp[all]"

Windows + [all]: 在包名称前添加 --python 3.12,以避免 ctranslate2 wheel 问题。直接编辑 ~/.claude.json,并使用 "args": ["--python", "3.12", "whisper-transcribe-mcp[all]"]。

要全局添加(在所有项目中可用),请使用 --scope user:

claude mcp add --scope user whisper-transcribe uvx -- "whisper-transcribe-mcp[local]"

或者直接编辑 ~/.claude.json,并在 "mcpServers" 中添加:

{
  "mcpServers": {
    "whisper-transcribe": {
      "command": "uvx",
      "args": ["whisper-transcribe-mcp[local]"],
      "env": {
        "WHISPER_MODEL": "base"
      }
    }
  }
}

环境变量

变量默认值描述
WHISPER_MODELbase本地模型大小:tiny、base、small、medium、large-v3
OPENAI_API_KEY—如果已设置,则启用 OpenAI 后端,而非本地后端
WHISPER_POST_PROCESS_MODELgpt-5.4-nano当 post_process=true 时使用的 OpenAI 聊天模型
后端选择与回退(仅适用于 [all])

使用 [all] 安装时,启动时会选择后端:

  • 已设置 OPENAI_API_KEY → 使用 OpenAI。如果 API 调用在运行时失败(网络错误、密钥无效、超出配额),服务会自动回退到本地 faster-whisper,并在响应中包含 "fallback_reason" 字段。
  • 未设置 OPENAI_API_KEY → 直接使用本地 faster-whisper,不尝试回退。

安全与权限

服务在本地通过 stdio 运行,只需要其工具所需的访问权限:

访问权限原因
文件系统读取transcribe_file 会读取你传入的音频文件路径。
临时文件transcribe_base64 会将解码后的音频写入私有临时文件,并始终将其删除。
网络仅用于 OpenAI 后端/后处理,以及首次从 Hugging Face 下载本地模型。
环境变量OPENAI_API_KEY、WHISPER_MODEL、WHISPER_POST_PROCESS_MODEL。

工具输入会在使用前进行验证:model_size 必须是已知的 Whisper 模型名称, language 必须是 ISO 639 代码,extension 必须是已知的音频格式。OpenAI 错误 会以简短摘要的形式返回(错误类型和 HTTP 状态);完整消息会发送到 stderr。 版本发布通过 GitHub Actions、PyPI Trusted Publishing 和 PEP 740 来源证明 声明进行。


可用工具

transcribe_file

按路径转录音频文件(mp3、wav、m4a、ogg、flac、webm 等)。

参数:

  • file_path(必填):音频文件的绝对路径
  • language(可选):语言代码(es、en、fr 等)。如果未提供,则自动检测。
  • model_size(可选):本地模型大小。使用 OpenAI 后端时会忽略。
  • post_process(可选,默认 false):如果为 true,则通过 GPT-4.1 对转录文本进行后处理,以修正拼写、语法和标点。需要 openai 包([openai] 或 [all])。
  • post_process_prompt(可选):用于 GPT 后处理的自定义系统提示词。可提供特定领域的上下文、专有名词或 Whisper 可能拼错的产品名称。如果未提供,则使用通用的校正提示词。

响应(不进行后处理):

{
  "text": "Full transcription...",
  "language": "en",
  "language_probability": 0.99,
  "segments": [
    { "start": 0.0, "end": 4.2, "text": "First segment..." }
  ],
  "backend": "local",
  "model": "base"
}

响应(使用 post_process: true):

{
  "text": "Corrected transcription...",
  "raw_text": "Original transcription from Whisper...",
  "post_process_model": "gpt-4.1",
  "language": "en",
  "language_probability": 0.99,
  "segments": [...],
  "backend": "local",
  "model": "base"
}

如果后处理失败,text 会保留原始转录文本,并添加 post_process_error 字段。


transcribe_base64

转录以 Base64 编码字符串提供的音频。适用于程序化集成。

参数:

  • audio_base64(必填):Base64 编码的音频数据
  • extension(可选,默认值为 mp3):文件扩展名(mp3、wav、ogg 等)
  • language(可选):语言代码
  • model_size(可选):本地模型大小
  • post_process(可选,默认值为 false):与 transcribe_file 中的参数相同。
  • post_process_prompt(可选):与 transcribe_file 中的参数相同。

list_models

显示当前后端配置、可用的本地模型以及用于后处理的 GPT 模型。


本地模型大小

模型大小相对速度说明
tiny39 MB~32x速度最快,准确度最低
base74 MB~16x均衡之选(默认)
small244 MB~6x准确度更高
medium769 MB~2x准确度高
large-v31.5 GB~1x准确度最高,速度最慢

首次使用时会自动从 HuggingFace 下载模型,并在本地缓存。


故障排除

Claude Desktop 在 Windows 上无法加载 MCP

现象: 服务启动失败,并出现类似以下内容的依赖解析错误:

ctranslate2>=4.6.1 has no wheels with a matching platform tag (e.g., `win32`)
hint: You require CPython 3.14 (`cp314`), but we only found wheels for `ctranslate2` with: `cp39`, `cp310`, `cp311`, `cp312`, `cp313`

原因: 两个问题叠加所致:

  1. Claude Desktop 的 PATH 不包含用户本地的 bin 目录,因此必须使用 uvx 的完整路径。
  2. Claude Desktop 的 uvx 可能会选择某个 Python 版本(例如 3.14),而 faster-whisper 的原生依赖 ctranslate2 尚未提供适用于 Windows 的预编译 wheel。

解决方法: 使用 uvx.exe 的完整路径,并明确指定 Python 3.12:

"whisper-transcribe": {
  "command": "C:\\Users\\<YourUser>\\.local\\bin\\uvx.exe",
  "args": ["--python", "3.12", "whisper-transcribe-mcp[local]"],
  "env": { "WHISPER_MODEL": "base" }
}

要查找 uvx.exe 的确切路径,请在 PowerShell 中运行:

where.exe uvx
在 Claude Desktop 中转录音频文件

现象: Claude Desktop 无法转录上传的音频文件。它可能会尝试将文件读取为 Base64 并传给 transcribe_base64;对于大于约 50 KB 的文件,随后会失败或卡住。

原因: Claude Desktop 在沙盒化的 Linux 容器中运行。使用附件按钮上传文件时,文件会存储在类似 /mnt/user-data/uploads/audio.mp3 的路径中,也就是容器内。MCP 服务运行在你的 Windows 计算机上,无法访问容器中的该路径。Claude 采用的后备方案是将文件编码为 Base64 并传给 transcribe_base64,但实际使用中会失败,因为即使很小的音频文件也会生成数百 KB 的 Base64 文本,在发起工具调用前就会溢出上下文窗口。

解决方法: 请勿使用附件按钮上传音频文件。应将文件放在 Windows 文件系统中的任意位置,并在消息中直接引用其路径:

"转录此文件:C:\Users\YourUser\Downloads\audio.mp3"

MCP 服务会直接从 Windows 读取文件,并将其发送到转录后端。只要文件大小不超过 Whisper API 的限制(25 MB),无论大小均可使用此方法。


开发

此项目使用 uv 创建可复现的开发环境:

uv sync --group dev
uv run ruff check .
uv run ruff format --check .
uv run pytest -q
uv run pre-commit install

有关贡献工作流,请参阅 CONTRIBUTING.md。

分发与发布

此软件包通过 PyPI 分发,并通过 server.json 提供信息以供 官方 MCP Registry 使用。版本标签会通过 GitHub OIDC 发布到这两个平台,无需长期有效的发布令牌。有关发布检查清单和一次性仓库设置,请参阅 docs/publishing.md。

Registry 条目描述的是基础 PyPI 软件包。请从上文的安装示例中选择 [local]、[openai] 或 [all] 额外依赖,以安装所需的转录后端。


许可证

MIT — 请参阅 LICENSE

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。