SpeechWeave について
SpeechWeaveは、Speech-to-Text APIを使ってローカル音声ファイルや公開URLを文字起こしするMCPサーバーです。同期処理とジョブ方式に対応し、出力形式を指定できるほか、結果をファイルに保存できます。
主な機能
- 01ローカルファイルとHTTPS URLの文字起こし
- 02同期文字起こしと非同期ジョブ
- 03文字起こしジョブの状態確認とキャンセル
- 04文字起こしまたは英語への翻訳
- 05テキスト、SRT、VTT、JSON形式の出力
- 06文字起こし結果のファイル保存
活用シーン
- 01短いローカル録音を1回の呼び出しで文字起こし
- 02長時間のポッドキャストをバックグラウンド処理
- 03音声から英語のSRT字幕を作成
- 04長い文字起こしを会話外のファイルに保存
MCP 対応
MCPクライアントに、SpeechWeaveの文字起こし、ジョブ管理、アカウント制限、ドキュメント参照のツールを公開します。MCP経由では生の音声データを渡さず、ローカルファイルパスまたはHTTPS URLを指定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | 音声または動画ファイルのローカルファイルシステム上の絶対パス。相対パスは受け付けません。MCP 経由で生のバイナリデータを渡さないでください。 |
| task | enum | いいえ | transcribe(デフォルト)は音声の元の言語を維持します。translate は同じ言語での文字起こしではなく英訳を生成します。翻訳時は language パラメーターが無視されます。transcribe | translate |
| model | enum | いいえ | 文字起こしモデルのティア。core = 速度と精度のデフォルトのバランス、max = 最も難しい音声向け。core | max |
| prompt | string | いいえ | カスタム語彙ヒント:正しく表記する必要がある固有名詞、頭字語、製品名(例:'SpeechWeave, Acme Corp')。確実に影響するのは音声の最初の約 30 秒のみで、用語集全体には適用されません。 |
| language | string | いいえ | 省略可能な 2 文字の ISO 言語コード(例:en、es)。 |
| timeout_ms | integer | いいえ | 完了まで待機する最大時間(ミリ秒、デフォルトは 1 時間)。タイムアウトすると job_id が返され、get_job_status を呼び出せます。 |
| service_mode | enum | いいえ | standard = 優先度の高いキュー(デフォルト)、deferred = 低コストのバックグラウンドキュー。synchronous は standard の別名です。standard | deferred | synchronous |
| response_format | enum | いいえ | 省略可能な文字起こし形式。省略するとデフォルトのプレーンテキストを返します。'srt'/'vtt' は字幕ファイルのテキストを返し、'verbose_json' はタイムスタンプ付きのセグメントを含みます。text | srt | vtt | verbose_json |
詳細
@speechweave/mcp
SpeechWeave の公式 Model Context Protocol サーバーです。Cursor、Claude Desktop、Claude Code、Windsurf、その他の MCP クライアントから、ローカルファイルや URL の文字起こしに使用できます。
SpeechWeave は、クライアント側で分割処理を行わずに、短いクリップから長時間の音声まで処理します。この MCP サーバーでは、同期ツール(同じツール呼び出しで文字起こし結果が返されます)と、非同期ツール(ジョブを開始してからステータスをポーリングします)の両方を利用できます。
ドキュメント: speechweave.com/docs/mcp · API リファレンス
インストール/実行
Node.js 18 以降と SpeechWeave API キー(sk_live_…)が必要です。
export SPEECHWEAVE_API_KEY="sk_live_..."
npx -y @speechweave/mcp
Cursor/Claude Desktop
MCP 設定に追加します(例:.cursor/mcp.json、claude_desktop_config.json)。
{
"mcpServers": {
"speechweave": {
"command": "npx",
"args": ["-y", "@speechweave/mcp"],
"env": {
"SPEECHWEAVE_API_KEY": "sk_live_..."
}
}
}
}
Claude Code
claude mcp add speechweave --env SPEECHWEAVE_API_KEY=sk_live_... -- npx -y @speechweave/mcp
ツール
| ツール | 実行方式 | 使用する場面 |
|---|---|---|
transcribe_file | 同期 | 絶対パスで指定したローカルファイル。同じ呼び出しで文字起こし結果を返します |
transcribe_url | 同期 | 公開 HTTPS URL。同じ呼び出しで文字起こし結果を返します |
start_job_file | 非同期 | 絶対パスで指定したローカルファイル。すぐに job_id を返します |
start_job_url | 非同期 | 公開 HTTPS URL。すぐに job_id を返します |
get_job_status | 非同期 | ジョブ ID を指定して、ステータス/文字起こし結果をポーリングします |
cancel_job | 該当なし | キュー内または処理中のジョブをキャンセルします |
get_limits | 該当なし | API キーのアップロードサイズ上限を確認します |
fetch_doc | 該当なし | スラッグで公開ドキュメントを取得します(同梱ページ+ライブ OpenAPI) |
実行方式(同期または非同期)は service_mode(standard または deferred)とは別の設定です。どちらのサービスモードも、どちらの実行方式でも使用できます。
音声データの生バイト列を MCP 経由で渡さないでください。(ローカルクライアントでは)絶対ファイルパス、または HTTPS URL を使用してください。
設定と引数
すべての文字起こしツールとジョブ開始ツールでは、以下のオプション引数を指定できます。
model:core(デフォルト)またはmaxを選択します。service_mode:standard(デフォルト)またはdeferred(低コスト、優先度低)を選択します。language:言語検出を指定するための ISO 言語コードを任意で指定します。task:transcribe(デフォルト)またはtranslateを選択して、代わりに英語の翻訳を生成します。翻訳時はlanguageが無視されます。prompt:音声の最初の約 30 秒に適用する、カスタム語彙のヒント(固有名詞、頭字語、製品名)を任意で指定します。
書式付きの文字起こし結果: transcribe_file、transcribe_url、get_job_status では、オプションの response_format(text、srt、vtt、verbose_json)も指定できます。これにより、デフォルトのプレーンテキストではなく、指定した形式で文字起こし結果が返されます。
ファイルへの保存: transcribe_file、transcribe_url、get_job_status では、output_file(絶対パス)を指定できます。文字起こし結果は返されず、指定したファイルに書き込まれるため、長い文字起こし結果が会話に含まれません。結果には output_file と bytes_written が含まれます。パスの末尾は .txt、.md、.json、.srt、.vtt のいずれかである必要があり、隠しフォルダー内には指定できません。親フォルダーが存在している必要があり、既存ファイルは overwrite が true の場合にのみ置き換えられます。response_format: "verbose_json" の場合、ファイルにはテキストとセグメントのタイミング情報が JSON 形式で保存されます。
請求エラー: 402 は、code と hint を含むツールエラーとして返されます。USER_SPEND_CAP_REACHED(利用上限を引き上げてください)、PLATFORM_SPEND_CAP_REACHED(月間アカウント上限です。引き上げを申請してください)、INSUFFICIENT_BALANCE または WALLET_EMPTY(残高を追加してください)の場合は、いずれもまずアカウント側で変更が必要なため、ヒントでアシスタントに再試行しないよう指示します。
タイムアウト時の動作: 同期ツールでは、オプションの timeout_ms を指定できます。文字起こしがタイムアウトを超えた場合、ツールは正常に job_id を返し、クライアントに get_job_status に切り替えてポーリングするよう指示します。
アカウントの制限とドキュメント
get_limits:呼び出し元のキーに対するGET /v1/limitsの結果を、MB 換算値とともに返します。大きなローカルファイルをアップロードする前に使用してください。fetch_doc:公開ドキュメントを返します。スラッグlistでカタログを表示します。バンドルされたページには、quickstart、mcp、models、billing、data_retentionがあります。スラッグapiではライブの OpenAPI 概要を取得し、api/<operation_slug>では個別のエンドポイントを取得します(例:api/get_v1_limits)。
プロンプトの例
サーバーを追加してクライアントを再起動した後、AI アシスタントに次のように依頼してみてください。
短い音声クリップ(同期)
「SpeechWeave を使って
/Users/me/recordings/standup.mp3を文字起こしし、アクション項目を要約してください。」
アシスタントは絶対パスを指定して transcribe_file を呼び出し、返された transcript を要約します。
長いポッドキャスト(非同期)
「
https://cdn.example.com/three_hour_podcast.mp3の SpeechWeave ジョブを開始し、完了するまで定期的に確認してください。」
アシスタントは start_job_url を呼び出し、その後、ステータスが completed になるまで定期的に get_job_status を呼び出します。
字幕への翻訳(同期)
「SpeechWeave を使って
/Users/me/recordings/spanish_interview.mp3を英語の SRT 字幕に翻訳してください。」
アシスタントは task: "translate" と response_format: "srt" を指定して transcribe_file を呼び出します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。