three.ws Audio について
three.ws Audio は、3D AI エージェントに音声合成、音声認識、音声に基づくリップシンク、モーションキャプチャクリップのライブラリを提供する MCP サーバーです。アバターの発話、音声による対話、表情アニメーションの同期を行いたい開発者向けです。
主な機能
- 01base64 音声を返すテキスト読み上げ
- 02テキストと信頼度を返す音声認識
- 03フレーム単位の ARKit ブレンドシェイプ・リップシンク
- 04モーションキャプチャクリップの一覧と取得
活用シーン
- 013D エージェントが口の動きを合わせて返答を読み上げる
- 02ユーザーとアバターの音声による対話
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @three-ws/audio-mcpTHREE_WS_BASEBase URL of the three.ws API that serves the audio/animation endpoints. Override only when self-hosting or targeting a preview deployment.THREE_WS_API_KEYシークレットOptional three.ws API key (bearer token). Raises the metered TTS/ASR/Audio2Face rate limits and unlocks your own private/unlisted motion-capture clips. Leave unset to use the public surface anonymously.THREE_WS_TIMEOUT_MSPer-request timeout in milliseconds for the live audio/animation calls (synthesis and recognition are real upstream model calls).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | 読み上げるテキスト(1~4096 文字)。 |
| model | enum | いいえ | 有料の予備レーンで使用する OpenAI TTS モデル(デフォルトは "gpt-4o-mini-tts")。無料の NVIDIA レーンでは無視され、常に magpie-tts-multilingual が使用されます。tts-1 | tts-1-hd | gpt-4o-mini-tts |
| speed | number | いいえ | 再生速度の倍率、0.5~2.0(OpenAI の予備レーンのみ。デフォルトは 1.0)。 |
| voice | enum | いいえ | 音声のペルソナ(デフォルトは "nova")。同じ ID をどちらのプロバイダーレーンでも使用できます。nova | alloy | ash | ballad | coral | echo | fable | onyx | sage | shimmer | verse |
| format | enum | いいえ | リクエストする音声コンテナ(デフォルトは "mp3")。無料の NVIDIA レーンでは pcm 以外のリクエストはすべて WAV で提供されます。レスポンスのメタデータに実際に受け取った形式が記載されます。mp3 | opus | aac | flac | wav | pcm |
| language | string | いいえ | 無料の NVIDIA レーンで使用する BCP-47 言語(デフォルトは "en-US"。es-US、fr-FR、de-DE、zh-CN、vi-VN、it-IT、hi-IN、ja-JP も指定できます)。 |
詳細
@three-ws/audio-mcp
3D AI エージェントに声と顔を与えましょう — テキスト読み上げ、音声認識、音声から顔へのリップシンク、モーションキャプチャークリップライブラリを、あらゆる MCP クライアントから利用できます。
stdio 経由で three.ws の音声とアニメーションのパイプラインを公開する Model Context Protocol サーバーです。アバターに話させ、ユーザーからの返答を受け取り、その音声をフレームごとのリップシンクトラックに変換し、録画されたモーションキャプチャーライブラリを参照できます。3D エージェントの口と動きを操作するために必要なすべてがそろっています。
音声合成、音声認識、リップシンクの各機能は無料の NVIDIA NIM モデル(Magpie TTS、Riva ASR、Audio2Face-3D)で動作し、有料の TTS フォールバックとして OpenAI を使用します。three.ws プラットフォームと同じプロバイダーポリシーです。利用開始にキーは不要です。THREE_WS_BASE をデプロイ先に指定するだけです。
インストール
npm install @three-ws/audio-mcp
または npx で実行します(インストール不要)。
npx @three-ws/audio-mcp
クイックスタート
Claude Code の場合は、1 行で設定できます。
claude mcp add audio -- npx -y @three-ws/audio-mcp
Claude Desktop / Cursor の場合(claude_desktop_config.json または mcp.json):
{
"mcpServers": {
"audio": {
"command": "npx",
"args": ["-y", "@three-ws/audio-mcp"]
}
}
}
MCP Inspector で機能を確認できます。
npx -y @modelcontextprotocol/inspector npx @three-ws/audio-mcp
ツール
| ツール | 種類 | 機能 |
|---|---|---|
text_to_speech | 読み取り専用 | テキストから音声を合成します。base64 音声データ URL と、実際の音声、フォーマット、MIME を返します。無料の Magpie を使用し、OpenAI がフォールバックになります。 |
speech_to_text | 読み取り専用 | 無料の NVIDIA Riva 音声認識機能で音声(base64 wav/pcm/flac/ogg)を書き起こし、テキスト、信頼度、長さを返します。 |
audio_to_face | 読み取り専用 | 音声(渡したテキスト、または手元の音声)を Audio2Face-3D 経由でフレームごとの ARKit ブレンドシェイプリップシンクトラックに変換します。 |
motion_capture_clips | 読み取り専用 | モーションキャプチャークリップライブラリを参照します。記録済みの顔、ポーズ、手、VMC のトラックを、種類によるフィルタリングとカーソルページネーションで検索できます。 |
motion_capture_clip | 読み取り専用 | ID でクリップを 1 つ取得します。アバターで再生できる、フレームごとの完全なアニメーショントラックも含まれます。 |
5 つのツールはすべて読み取り専用です。入力を変換(合成、認識、アニメーション化)するか、最新のライブラリデータを読み取り、プラットフォームの状態を変更することはありません。いずれも冪等ではありません。音声バイト列、書き起こし、カタログは呼び出しごとに変わります。
入力パラメーター
text_to_speech — text(必須、1~4096 文字)、voice(デフォルトは nova)、format(mp3|opus|aac|flac|wav|pcm、デフォルトは mp3)、model(OpenAI のフォールバックのみ)、language(BCP-47、デフォルトは en-US)、speed(0.5~2.0、OpenAI のレーンのみ)。
speech_to_text — audio(必須、base64 または data: URL)、format(wav|pcm|flac|ogg、デフォルトは wav)、language(BCP-47、デフォルトは en-US)、sampleRate(Hz、PCM のみ)、words(bool)、model(詳細設定)。
audio_to_face — text または audio(どちらか一方が必須)、format(wav|pcm、音声パス)、sampleRate(PCM のみ)、voice / language(テキストパス)。
motion_capture_clips — kind(face|pose|hand|vmc)、include_public(bool、認証済みの場合のみ)、limit(1~100、デフォルトは 50)、cursor。
motion_capture_clip — id(必須、クリップ UUID)。
例
// text_to_speech
> { "text": "Hello, I'm your three.ws agent.", "voice": "nova" }
{
"ok": true,
"voice": "Magpie-Multilingual.EN-US.Aria",
"model": "magpie-tts-multilingual",
"format": "wav",
"mime": "audio/wav",
"sizeBytes": 274476,
"audio": "data:audio/wav;base64,UklGR…"
}
// audio_to_face (text path — returns audio + the lipsync track together)
> { "text": "Watch my lips move." }
{
"ok": true,
"audio": { "base64": "UklGR…", "contentType": "audio/wav", "format": "wav" },
"animation": {
"fps": 30,
"blendShapeNames": ["jawOpen", "mouthClose", "…"],
"durationSec": 1.9,
"frames": [ { "t": 0.0, "w": [0.0, 0.1, /* … */] } ]
}
}
フェイスフレームは { t, w } です。t はクリップ開始からの秒数、w は blendShapeNames の順序(ARKit-52 の命名)に並んだ重みです。音声を再生し、音声要素の currentTime に合わせてトラックをサンプリングしてください。
ペイロードに関する注意
音声は base64 として送受信されます(TTS が返し、ASR/A2F が受け取ります)。合成入力(text)と認識入力(audio、上限約 8 MB)はどちらもプラットフォームによってサイズが制限されているため、長時間の録音ではなく、発話単位のクリップを使用してください。手元にある音声でリップシンクする場合は、wav/pcm を直接渡してください。ブラウザーで録音した WebM/Opus は、先に WAV または PCM にデコードする必要があります(Riva と Audio2Face は WebM コンテナーを受け付けません)。
要件
- Node.js >= 20。
https://three.ws(または独自のTHREE_WS_BASE)へのネットワークアクセス。
環境変数
| 変数 | 必須 | デフォルト | 用途 |
|---|---|---|---|
THREE_WS_BASE | いいえ | https://three.ws | 接続先のデプロイ先。 |
THREE_WS_API_KEY | いいえ | — | ベアラートークン。従量制の TTS/ASR/A2F レート制限が緩和され、独自の非公開モーションキャプチャクリップを利用できます。 |
THREE_WS_TIMEOUT_MS | いいえ | 60000 | ライブモデル呼び出しのリクエストごとのタイムアウト。 |
リンク
- ホームページ: https://three.ws
- 変更履歴: https://three.ws/changelog
- イシュー: https://github.com/nirholas/three.ws/issues
- ライセンス: Apache-2.0。詳細は LICENSE を参照してください。
3D AI エージェント、オンチェーン ID、エージェント決済を提供する three.ws SDK スイートの一部です。
ウェブサイト · 変更履歴 · GitHub
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。