Local Speech-to-Text MCP Server について
Local Speech-to-Text MCP Server は、whisper.cpp を用いてローカルで音声をテキストに変換する MCP サーバーで、Apple Silicon 向けに最適化されています。クラウド API を使わずプライバシーを保ちたい利用者に向いています。
主な機能
- 01クラウド API を使わないローカル文字起こし
- 02Apple Silicon 向けの最適化(報告値 15.8 倍のリアルタイム速度)
- 03話者分離(Speaker Diarization)
- 04MP3、M4A、FLAC などの音声形式の自動変換
- 05txt、json、vtt、srt、csv 形式での出力
活用シーン
- 01ローカルの録音から字幕ファイルを作成
- 02長時間の音声ファイルを分割して文字起こし
- 03MCP クライアントから会議音声の話者を区別
MCP 対応
本プロジェクトは MCP サーバーであり、transcribe、transcribe_long、transcribe_with_speakers などのツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ローカル音声テキスト化 MCP サーバー
whisper.cpp を使用したローカル音声テキスト化を提供する、高性能な Model Context Protocol(MCP)サーバーです。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 を使用し、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
話者ダイアライゼーションに関する注意:pyannote/speaker-diarization-3.1 のライセンスに同意するには、HuggingFace アカウントが必要です。
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 Neural Engine
- セットアップ:中程度の複雑さですが、より優れたパフォーマンスを実現
詳細なパフォーマンス比較については /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
🤝 コントリビューション
- リポジトリをフォークします。
- 機能ブランチを作成します。
- 変更を加えます。
- テストを追加します。
- プルリクエストを送信します。
📄 ライセンス
MIT License — 詳細は LICENSE ファイルをご覧ください。
🙏 謝辞
- 最適化された推論を提供する whisper.cpp
- オリジナルモデルを提供する OpenAI Whisper
- フレームワークを提供する Model Context Protocol
- 話者ダイアライゼーションを提供する Pyannote.audio
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。