返回市场
本地语音转文本_mCP

本地语音转文本_mCP

作者:SmartLittleApps5 星标更新:2025-06-04

项目介绍

本地语音转文字MCP服务器

一款高性能的模型上下文协议(MCP)服务器,使用whisper.cpp提供本地语音转文字功能,并针对Apple Silicon进行了优化。

🎯 特性

  • 🏠 100% 本地处理:无需云API,完全隐私保护
  • 🚀 针对Apple Silicon优化:实时转录速度提升15倍以上
  • 🎤 说话人分离:识别并分离多个说话人
  • 🎵 支持多种音频格式:自动转换MP3、M4A、FLAC等格式
  • 📝 多种输出格式:txt、json、vtt、srt、csv
  • 💾 内存占用低:内存使用小于2GB
  • 🔧 TypeScript:全类型安全及现代开发

🚀 快速开始

先决条件

  • Node.js 18+
  • whisper.cpp (brew install whisper-cpp)
  • 用于音频格式转换:ffmpeg (brew install ffmpeg) - 自动处理MP3、M4A、FLAC、OGG等格式
  • 用于说话人分离:Python 3.8+ 和 HuggingFace令牌(免费)

支持的音频格式

  • 原生whisper.cpp格式:WAV, FLAC
  • 自动转换格式:MP3, M4A, AAC, OGG, WMA等
  • 自动转换:由ffmpeg驱动,优化为16kHz/单声道以适应whisper.cpp
  • 格式检测:需要时自动检测和转换格式

安装

git clone https://github.com/your-username/local-stt-mcp.git
cd local-stt-mcp/mcp-server
npm install
npm run build

# 下载whisper模型
npm run setup:models

# 对于说话人分离,设置HuggingFace令牌
export HF_TOKEN="your_token_here"  # 从huggingface.co获取免费令牌

说话人分离注意事项:需要HuggingFace账户并接受pyannote/speaker-diarization-3.1许可。

MCP客户端配置

在您的MCP客户端配置中添加:

{
  "mcpServers": {
    "whisper-mcp": {
      "command": "node",
      "args": ["path/to/local-stt-mcp/mcp-server/dist/index.js"]
    }
  }
}

🛠️ 可用工具

工具描述
transcribe基本音频转录,带有自动格式转换
transcribe_long长音频文件处理,带分块和格式转换
transcribe_with_speakers说话人分离和转录,支持格式
list_models显示可用的whisper模型
health_check系统诊断
version服务器版本信息

📊 性能

Apple Silicon基准测试:

  • 处理速度:15.8倍实时(对比WhisperX 5.5倍)
  • 内存使用:<2GB(对比WhisperX约4GB)
  • GPU加速:✅ Apple神经引擎
  • 安装:中等复杂度但性能优越

详细性能比较见/benchmarks/目录。

🏗️ 项目结构

mcp-server/
├── src/                    # TypeScript源代码
│   ├── tools/             # MCP工具实现
│   ├── whisper/           # whisper.cpp集成
│   ├── utils/             # 说话人分离及实用工具
│   └── types/             # 类型定义
├── dist/                  # 编译后的JavaScript
└── python/                # Python依赖

🔧 开发

# 构建
npm run build

# 开发模式(监视)
npm run dev

# 代码检查与格式化
npm run lint
npm run format

# 类型检查
npm run type-check

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 添加测试
  5. 提交拉取请求

📄 许可证

MIT许可证 - 详情见LICENSE文件。

🙏 致谢