three.ws Audio

io.github.nirholas由 GitHub 账号 nirholas 发布v0.1.3更新于 Oct 24, 2026

Text-to-speech, speech-to-text, audio-to-face lipsync, and motion-capture clips for 3D agents.

已验证STDIO仅桌面媒体与设计AI 与机器学习

概览

AI 生成的概览

一个本地 stdio MCP 服务器,为 3D 智能体提供文本转语音、语音转文本、音频驱动面部口型同步以及动作捕捉片段浏览能力。

可以做什么
将文本合成为语音,返回 base64 音频数据 URL 及音色和格式信息,使用免费 NVIDIA 模型并可选 OpenAI 兜底。将 base64 音频转写为文本,附带置信度和时长。把文本或音频转换为逐帧 ARKit 混合形状口型轨道,也可同时生成音频。按类型和游标分页浏览动作捕捉片段库,并按 id 获取单个片段的完整逐帧动画轨道。
适用场景
适合在构建或驱动需要声音、语音输入、嘴部动画,或需要已录制的面部、姿态、手部和 VMC 动作数据的 3D 虚拟形象或智能体时使用,可从 Claude Code、Claude Desktop、Cursor 等任意 MCP 客户端接入。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node.js 20 或更高版本,并能访问 three.ws API。可选环境变量:THREE_WS_BASE 指向其他部署,THREE_WS_API_KEY 提高速率上限并解锁私有片段,THREE_WS_TIMEOUT_MS 设置单次请求超时。无需密钥即可开始使用。
安装前请注意
音频和文本会发送到 three.ws 服务及其上游模型提供商进行合成、识别和口型处理。THREE_WS_API_KEY 是 bearer 令牌,可提高计费接口的速率上限,使用可能产生费用;OpenAI 语音兜底被描述为付费。识别输入上限约 8 MB,浏览器录制的 WebM/Opus 需先转换为 WAV 或 PCM。

安装

在 SourceWeft 中

  1. 打开 控制台中的 three.ws Audio,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[three.ws]

@three-ws/audio-mcp

Give a 3D AI agent a voice and a face — text-to-speech, speech-to-text, audio-to-face lipsync, and the motion-capture clip library, from any MCP client.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that exposes the three.ws voice and animation pipeline over stdio. Make an avatar speak, let users talk back, turn that speech into a per-frame lipsync track, and browse the recorded motion-capture library — everything you need to drive a 3D agent's mouth and movement.

The speech, recognition, and lipsync lanes run on free NVIDIA NIM models (Magpie TTS, Riva ASR, Audio2Face-3D), with OpenAI as the paid TTS backstop — the same provider policy as the three.ws platform. No key required to start; point THREE_WS_BASE at a deployment and go.

Install

bash
npm install @three-ws/audio-mcp

Or run with npx (no install):

bash
npx @three-ws/audio-mcp

Quick start

Claude Code, one line:

bash
claude mcp add audio -- npx -y @three-ws/audio-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"audio": {			"command": "npx",			"args": ["-y", "@three-ws/audio-mcp"]		}	}}

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/audio-mcp

Tools

ToolTypeWhat it does
text_to_speechread-onlySynthesize spoken audio from text; returns a base64 audio data URL plus the real voice/format/mime. Free Magpie, OpenAI backstop.
speech_to_textread-onlyTranscribe spoken audio (base64 wav/pcm/flac/ogg) with the free NVIDIA Riva recognizer; returns text, confidence, duration.
audio_to_faceread-onlyTurn speech (text you pass, or audio you have) into a per-frame ARKit blendshape lipsync track via Audio2Face-3D.
motion_capture_clipsread-onlyBrowse the motion-capture clip library — recorded face/pose/hand/VMC tracks — with kind filter and cursor pagination.
motion_capture_clipread-onlyFetch one clip by id including its full per-frame animation track to play back on an avatar.

All five tools are read-only: they transform input (synthesize/recognize/animate) or read live library data, never mutating platform state. None are idempotent — the audio bytes, transcript, and catalog move between calls.

Input parameters

text_to_speech — text (required, 1–4096 chars), voice (default nova), format (mp3|opus|aac|flac|wav|pcm, default mp3), model (OpenAI backstop only), language (BCP-47, default en-US), speed (0.5–2.0, OpenAI lane only).

speech_to_text — audio (required, base64 or data: URL), format (wav|pcm|flac|ogg, default wav), language (BCP-47, default en-US), sampleRate (Hz, PCM only), words (bool), model (advanced).

audio_to_face — text or audio (one required), format (wav|pcm, audio path), sampleRate (PCM only), voice / language (text path).

motion_capture_clips — kind (face|pose|hand|vmc), include_public (bool, authenticated only), limit (1–100, default 50), cursor.

motion_capture_clip — id (required, clip UUID).

Examples

jsonc
// 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…"}
jsonc
// 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, /* … */] } ]  }}

A face frame is { t, w }: t = seconds from clip start, w = weights in the order of blendShapeNames (ARKit-52 naming). Play the audio and sample the track by the audio element's currentTime.

Notes on payloads

Audio crosses the wire as base64 (TTS returns it, ASR/A2F accept it). Both the synthesis input (text) and the recognition input (audio, ~8 MB cap) are bounded by the platform — keep clips to a spoken utterance rather than long recordings. For lipsync on audio you already have, pass wav/pcm directly; browser-recorded WebM/Opus must be decoded to WAV or PCM first (Riva and Audio2Face do not accept the WebM container).

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefaultPurpose
THREE_WS_BASEnohttps://three.wsWhich deployment to talk to.
THREE_WS_API_KEYno—Bearer token. Raises the metered TTS/ASR/A2F rate limits and unlocks your own private mocap clips.
THREE_WS_TIMEOUT_MSno60000Per-request timeout for the live model calls.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

来源:packages/audio-mcp/README.md,提交 c8f2cde

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.1.3最新Oct 10, 2026
  2. v0.1.2Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分