本地语音转文本服务

一个高性能的本地语音转文本服务,使用whisper.cpp进行语音转录,优化了Apple Silicon的性能,支持多种音频格式和输出格式。

  • by SmartLittleApps
  • TypeScript
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 SmartLittleApps/local-stt-mcp

使用说明

本地语音转文本MCP服务器

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

🎯 特性

  • 🏠 100%本地处理:无云API,完全隐私
  • 🚀 苹果硅优化:15x+实时转录速度
  • 🎤 演讲者日记:识别并分离多位发言者
  • 🎵 通用音频支持:自动转换为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令牌(免费)

支持的音频格式

  • 原生耳语.cpp格式:WAV、FLAC
  • 自动转换格式:MP3、M4A、AAC、OGG、WMA等
  • 自动转换:由ffmpeg提供支持,针对whisper.cpp进行16kHz/单声道优化
  • 格式检测:需要时自动进行格式检测和转换

安装

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

# Download whisper models
npm run setup:models

# For speaker diarization, set HuggingFace token
export HF_TOKEN="your_token_here"  # Get free token from huggingface.co

演讲者日记:需要HuggingFace帐户并接受 发音/扬声器发音-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 显示可用的耳语型号
health_check 系统诊断
version 服务器版本信息

📊 演出

苹果硅基准:

  • 处理速度:15.8倍实时(对比WhisperX 5.5倍)
  • 内存使用:<2GB(与WhisperX~4GB相比)
  • GPU加速: ✅ 苹果神经引擎
  • 设置:中等复杂度,但性能优越

看 /benchmarks/ 以进行详细的性能比较。

🏗️ 项目结构

mcp-server/
├── src/                    # TypeScript source code
│   ├── tools/             # MCP tool implementations
│   ├── whisper/           # whisper.cpp integration
│   ├── utils/             # Speaker diarization & utilities
│   └── types/             # Type definitions
├── dist/                  # Compiled JavaScript
└── python/                # Python dependencies

🔧 发展

# Build
npm run build

# Development mode (watch)
npm run dev

# Linting & formatting
npm run lint
npm run format

# Type checking
npm run type-check

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加测试
  5. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🙏 致谢