项目简介

'Audio Transcriber MCP 服务器' 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于提供高效、准确的音频转录功能。它利用 OpenAI Whisper 模型,能够将各种音频文件(如 '.wav', '.mp4', '.mp3', '.flac')转换成文本,或者直接录制麦克风音频进行实时转录。该服务以标准化的方式向 LLM 客户端暴露音频处理能力,支持灵活的配置和多种导出格式。

主要功能点

  • 文件音频转录: 支持将 '.wav', '.mp4', '.mp3', '.flac' 等多种格式的音频文件转录为文本。
  • 实时音频录制与转录: 可以直接从麦克风录制指定时长的音频,并立即进行转录。
  • 多模型支持: 可选择使用不同大小的 Whisper 模型(如 'tiny', 'base', 'small', 'medium', 'large')以平衡转录速度和准确性。
  • 多语言识别与翻译: 自动检测音频语言并进行转录,或将音频内容翻译成英文。
  • 自定义导出格式: 支持将转录结果导出为 'txt', 'srt', 'vtt', 'json' 等多种文本和字幕格式。
  • 参数灵活配置: 提供丰富的参数选项,如指定输出目录、语言、任务类型、是否使用 FP16 加速、词级时间戳等。
  • MCP 协议兼容: 通过 JSON-RPC 协议与 LLM 客户端通信,方便集成到各类大型语言模型应用中。

安装步骤

  1. Python 环境: 确保您已安装 Python。推荐使用 'uv' 包管理器。
  2. 系统依赖: 对于 Ubuntu/Debian 系统,需要安装 'libasound-dev', 'portaudio19-dev', 'libportaudio2', 'libportaudiocpp0', 'ffmpeg'。
    sudo apt-get update
    sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg -y
  3. 安装 Python 包:
    python -m pip install audio-transcriber
    # 或者使用 uv
    uv pip install --upgrade audio-transcriber
  4. Docker 部署 (可选): 如果需要容器化部署,可以拉取 Docker 镜像:
    docker pull knucklessg1/audio-transcriber:latest
    并修改 'compose.yml' 文件以启动服务(此文件需自行创建或配置):
    services:
      audio-transcriber:
        image: knucklessg1/audio-transcriber:latest
        environment:
          - HOST=0.0.0.0
          - PORT=8021
        ports:
          - 8021:8021

服务器配置 (用于MCP客户端)

要将此 MCP 服务器集成到您的 LLM 客户端中,您需要在客户端的 'mcp.json' 配置文件中添加如下配置信息。此配置指定了客户端如何启动和连接 'audio-transcriber' 服务。

{
  "mcpServers": {
    "audio_transcriber": {
      "command": "uv",                                      // 启动 MCP 服务器的命令,这里使用 uv run 执行 Python 模块。
      "args": [
        "run",
        "--with",
        "audio-transcriber",
        "audio-transcriber-mcp",
        "--transport", "stdio"                              // 指定 MCP 服务器使用的传输协议,默认为 Stdio (标准输入输出)。
      ],
      "env": {
        "WHISPER_MODEL": "medium",                          // 可选:设置 Whisper 模型的默认大小,例如 'medium'。
        "TRANSCRIBE_DIRECTORY": "~/Downloads"               // 可选:设置转录文件保存的默认目录。
      },
      "timeout": 200000                                     // 可选:设置 MCP 服务器启动的超时时间(毫秒)。
    }
  }
}

注意: 如果您通过 Docker 部署,或者希望使用 HTTP 传输协议,'args' 参数需要修改为 '["audio-transcriber-mcp", "--transport", "http", "--host", "127.0.0.1", "--port", "8021"]' (请根据实际部署情况调整 'host' 和 'port')。

基本使用方法 (通过MCP客户端)

一旦 'audio-transcriber' 作为 MCP 服务器在 'mcp.json' 中配置并启动,您的 LLM 客户端将能够通过调用其暴露的 'transcribe_audio' 工具来执行音频转录任务。

以下是一个概念性的调用示例(具体调用方式取决于您的 MCP 客户端实现):

  • 转录本地音频文件: LLM 客户端调用 'transcribe_audio' 工具,并传入 'audio_file' 参数指定音频文件的路径,例如 '/path/to/your/audio.mp4'。同时,可以传入 'model' 参数选择转录模型(如 ''large'')。

  • 录制并转录麦克风音频: LLM 客户端调用 'transcribe_audio' 工具,并传入 'record_seconds' 参数指定录音时长(秒),例如 '60'。服务器将在录音完成后自动进行转录。

  • 指定语言和导出格式: 在调用 'transcribe_audio' 时,可以额外传入 'language' 参数指定源语言(如 ''en''),'task' 参数指定任务类型(''transcribe'' 或 ''translate''),以及 'export_formats' 参数(如 '["txt", "srt"]')来保存不同格式的转录结果。

信息

分类

AI与计算