音频转录服务

一个基于AssemblyAI API的MCP服务器,用于将MP3音频文件转录为带有时间戳和说话人标签的JSON文本,适用于播客制作者、内容创作者、教育工作者和商业团队。

  • by Charisma2595
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 charisma2595/transcription_mcp_server

使用说明

转录MCP服务器

一种MCP(Model-Context-Protocol)服务器,用于使用AssemblyAI API转录MP3音频文件。此服务器提供命令行和基于Docker的工具来转录音频。此应用程序可供播客、内容创建者、教育工作者和业务团队使用,使他们的任务更容易完成。

特性

  • 通过命令行界面接受.mp3文件
  • 接受通过AI助手(如Claude或Cursor)提供的.mp3文件路径。
  • 使用AssemblyAI API将MP3音频文件转换为JSON转录本
  • 每个转录片段的时间戳,包括开始和结束时间
  • 扬声器日记(扬声器标签)已启用
  • 将成绩单保存在本地“transcripts/”目录中
  • 准备在Docker容器中运行,以实现可移植性和部署

系统架构概述

此应用程序是一个微服务,旨在使用AssemblyAI转录音频文件。

架构分解

  • Uvicorn作为MCP服务器运行时:Uvicorn运行服务器进程,充当执行转录作业的入口点。
  • AssemblyAI客户端:此组件处理与AssemblyAI API的所有通信。
  • 通过Google Fire的CLI:该应用程序包括一个用Google Fire构建的强大命令行界面。用户可以直接从终端转录音频文件
  • Docker化环境:虽然服务器可以直接在本地机器上运行,但它还为喜欢容器化部署的用户提供了一个轻量级的Docker配置。

入门

先决条件

  • Python 3.10+(稳定、流行、支持良好)
  • Uvicorn(轻量级ASGI服务器)
  • Google Fire(CLI框架,使CLI创建简单而强大)
  • AssemblyAI API密钥(API接口,在注册https://www.assemblyai.com/)
  • Docker(可选,用于容器化使用。确保一致、可移植的部署)

安装

  1. 克隆存储库:
git clone <your-repo-url>
cd <repo-folder> 
  1. 安装依赖项:
pip install -r requirements.txt
  1. 将AssemblyAI API键设置为环境变量:
export API_KEY="your_assemblyai_api_key"   # Linux / macOS
set API_KEY="your_assemblyai_api_key"      # Windows CMD

用法

使用MCP Dev进行检验

运行此命令以检查和测试您的工具在Web Ui上的功能。

uv run mcp dev mcp/server_transcription.py

连接并测试服务器传输

运行命令与claude连接

uv run mcp install mcp\server_transcription.py

JSON格式

当与claude或cursor等AI助手连接时,配置应该采用这种jason格式。

{
  "mcpServers": {
    "Audio Transcription Service": {
      "command": "C:\\Users\\HomePC\\Desktop\\mcp_task2\\.venv\\Scripts\\python.exe",
      "args": [
        "-u",
        "C:\\Users\\HomePC\\Desktop\\mcp_task2\\mcp\\server_transcription.py"
      ],
      "env": {
        "API_KEY": "<input-your-api-key-here>"
      }
    }
  }
}

测试客户端_订阅

运行命令

python  mcp\client_transcription.py "path/to/audio/file"

Docker使用

构建Docker镜像

docker build -t transcription-service -f run_with_docker/Dockerfile .

运行Docker容器

set API_KEY="your-api-key-here"

docker run -d -p 8050:8050 -e API_KEY=%API_KEY% -v C:\Users:/mnt/users -v %CD%\transcripts:/app/transcripts -v %CD%\logs:/app/logs --dns 8.8.8.8 --name transcription-server transcription-service

运行客户端

python run_with_docker\client.py "path/to/audio/file"