使用说明
日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)
48 voices • 9 languages • 5 presets • 8 emotions • SSML-lite • SFX tags • multi-speaker dialogue
Swappable TTS backends. Guardrails built in. Ships as a single npx command.
亮点
- MCP本地 --stdio传输,适用于Claude Desktop、Cursor和任何MCP客户端
- 5工具 —
voice_speak,voice_dialogue,voice_status,voice_interrupt,voice_inner_monologue - 48种批准的声音,9种语言 --英语(美国+英国)、日语、普通话、西班牙语、法语、印地语、意大利语、巴西葡萄牙语。精心策划的预设:
narrator,announcer,whisper,storyteller,assistant - 情绪跨度 --8种情绪
{joy}...{/joy}内联标记 - SSML lite —
<break>,<emphasis>,<prosody>没有完整的SSML复杂性 - SFX标签 —
[ding],[chime],[whoosh],[tada],[pop],[click]内联音效 - 多人对话 —
Speaker: line带有自动转换和暂停指令的格式 - 护栏 --速率限制、并发信号量、请求超时、路径遍历保护、秘密编校
- 可更换后端 --Mock(内置)、HTTP代理、Python桥或自带
快速开始
npx @mcptoolshop/voice-soundboard-mcp
或全局安装:
npm install -g @mcptoolshop/voice-soundboard-mcp
voice-soundboard-mcp
克劳德桌面/MCP客户端配置
添加到MCP客户端配置中(例如。 claude_desktop_config.json):
{
"mcpServers": {
"voice-soundboard": {
"command": "npx",
"args": ["-y", "@mcptoolshop/voice-soundboard-mcp"]
}
}
}
有选项:
{
"mcpServers": {
"voice-soundboard": {
"command": "npx",
"args": [
"-y", "@mcptoolshop/voice-soundboard-mcp",
"--artifact=path",
"--output-dir=/tmp/voice-output",
"--timeout=30000",
"--max-concurrent=2"
]
}
}
}
MCP工具
voice_speak
从文本合成语音。
text: "Hello world!"
voice?: "am_fenrir" # Voice ID or preset name
speed?: 1.0 # 0.5 - 2.0
mood?: "dry" # Humor mood (sensor-humor integration)
format?: "wav" # wav | mp3 | ogg | raw
artifactMode?: "path" # path | base64
outputDir?: "subdir" # Subdirectory within output root
sfx?: true # Enable [ding], [chime] etc.
voice_dialogue
多人对话合成。
script: "Alice: Hello!\nBob: Hey there!"
cast?: { "Alice": "af_sky", "Bob": "am_fenrir" }
speed?: 1.0
concat?: true # Combine into single file
debug?: true # Include cue_sheet
artifactMode?: "path" # path | base64
outputDir?: "subdir" # Subdirectory within output root
voice_status
返回引擎运行状况、可用语音、预设和后端信息。没有争论。
voice_interrupt
停止或回滚活动合成。
streamId?: "stream-123"
reason?: "user_spoke" # user_spoke | context_change | timeout | manual
voice_inner_monologue
用于环境叙事的短暂微话语。需要 --ambient 旗帜或 VOICE_SOUNDBOARD_AMBIENT_ENABLED=1.
text: "Interesting..." # Max 500 chars, auto-redacted
category?: "thinking" # general | thinking | observation | debug
声音
来自9种语言的48个声音。语言是从语音ID前缀自动推断出来的,不需要配置。
| 前缀 | 语言 |
|---|---|
af_ / am_ |
英语(美国) |
bf_ / bm_ |
英语(英国) |
jf_ / jm_ |
日语 |
zf_ / zm_ |
普通话 |
ef_ / em_ |
西班牙语 |
ff_ |
法语 |
hf_ / hm_ |
印地语 |
if_ / im_ |
意大利语 |
pf_ / pm_ |
巴西葡萄牙语 |
英语-美国
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
af_aoede |
Aoede | 女 | 音乐剧 |
af_bella |
贝拉 | 女 | 暖 |
af_heart |
心 | 女 | 关怀 |
af_jessica |
杰西卡 | 女 | 专业 |
af_kore |
Kore | 女 | 年轻 |
af_nicole |
妮可 | 女 | 柔 |
af_sarah |
Sarah | 女 | 透明 |
af_sky |
天空 | 女 | 艾莉 |
am_eric |
Eric | 男 | 自信 |
am_fenrir |
芬里尔 | 男 | 强大 |
am_liam |
利亚姆 | 男 | 友善 |
am_michael |
迈克尔 | 男 | 深 |
am_onyx |
缟玛瑙 | 雄性 | 光滑 |
am_puck |
Puck | 男 | 俏皮 |
英语-英国
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
bf_alice |
爱丽丝 | 女 | 合适 |
bf_emma |
艾玛 | 女 | 精致 |
bf_isabella |
伊莎贝拉 | 女 | 暖 |
bm_fable |
寓言 | 男 | 讲故事 |
bm_george |
乔治 | 男 | 权威 |
bm_lewis |
刘易斯 | 男 | 友善 |
日语
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
jf_alpha |
阿尔法 | 女 | 清澈 |
jf_gongitsune |
贡itsune | 女 | 讲故事 |
jf_nezuko |
Nezuko | 女 | 温柔 |
jf_tebukuro |
Tebukuro | 女 | 暖 |
jm_kumo |
Kumo | 男 | 冷静 |
普通话
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
zf_xiaobei |
小贝 | 女 | 聪明 |
zf_xiaoni |
小妮 | 女 | 温柔 |
zf_xiaoxiao |
潇潇 | 女 | 清 |
zf_xiaoyi |
小怡 | 女 | 暖 |
zm_yunjian |
云建 | 男 | 权威 |
zm_yunxi |
Yunxi | 男 | 友善 |
zm_yunxia |
云霞 | 男 | 冷静 |
zm_yunyang |
云阳 | 男 | 自信 |
西班牙语
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
ef_dora |
多拉 | 女 | 暖 |
em_alex |
亚历克斯 | 男 | 自信 |
em_santa |
圣诞老人 | 男 | 乔利 |
法语
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
ff_siwis |
Siwis | 女 | 精致 |
印地语
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
hf_alpha |
阿尔法 | 女 | 清澈 |
hf_beta |
贝塔 | 女 | 暖 |
hm_omega |
Omega | 男 | 深 |
hm_psi |
Psi | 男 | 冷静 |
意大利语
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
if_sara |
萨拉 | 女 | 暖 |
im_nicola |
尼古拉 | 男 | 自信 |
巴西葡萄牙语
| ID | 姓名 | 性别 | 风格 |
|---|---|---|---|
pf_dora |
多拉 | 女 | 暖 |
pm_alex |
亚历克斯 | 男 | 自信 |
pm_santa |
圣诞老人 | 男 | 乔利 |
预设
| 预设 | 语音 | 速度 | 描述 |
|---|---|---|---|
narrator |
bm_george |
0.95 | 冷静、清晰、纪实风格 |
announcer |
am_eric |
1.1 | 大胆、充满活力、广播风格 |
whisper |
af_sky |
0.85 | 柔软、亲密、温柔 |
storyteller |
bf_emma |
0.90 | 表现力强、节奏多变 |
assistant |
af_jessica |
1.0 | 友好、乐于助人、健谈 |
情感跨度
将文本包裹在情感标签中,以控制韵律和语音路由:
{joy}Great news!{/joy} But {calm}let me explain.{/calm}
支持: neutral, serious, friendly, professional, calm, joy, urgent, whisper
CLI标志
| 标志 | 默认值 | 描述 |
|---|---|---|
--artifact=path|base64 |
path |
音频传输模式 |
--output-dir=<path> |
<tmpdir>/voice-soundboard/ |
输出目录 |
--backend=mock|http|python |
mock |
后端选择 |
--ambient |
关闭 | 启用内心独白系统 |
--max-concurrent=<n> |
3 |
最大并发合成请求数 |
--timeout=<ms> |
60000 |
每次请求超时 |
--retention-minutes=<n> |
240 |
自动清理年龄(0表示禁用) |
包裹
这是一个pnpm monorepo,有两个可发布的包:
| 包 | 描述 | npm |
|---|---|---|
@mcptoolshop/voice-soundboard-core |
后端无关的核心库(验证、SSML、分块、模式) | |
@mcptoolshop/voice-soundboard-mcp |
带CLI、护栏和传输的MCP服务器 |
发展
# Install
pnpm install
# Build
pnpm build
# Test (363 tests)
pnpm test
# Build + test in one step
pnpm verify
部分 MCP工具车间
项目结构
mcp-voice-soundboard/
packages/
core/ @mcptoolshop/voice-soundboard-core
src/
limits.ts SHIP_LIMITS, text/chunk limits
schemas.ts VoiceRequest, VoiceResponse, error codes
artifact.ts resolveOutputDir, path sandbox
voices.ts Approved voice registry + presets
emotion.ts Emotion span parser
ssml/ SSML-lite parser + limits
chunking/ Text chunker
sfx/ SFX tag parser + registry
sandbox.ts Safe filenames, symlink checks
ambient.ts AmbientEmitter for inner monologue
redact.ts PII/secret redaction
mcp-server/ @mcptoolshop/voice-soundboard-mcp
src/
server.ts MCP tool registration + guardrail wiring
cli.ts CLI entrypoint (stdio transport)
backend.ts Backend abstraction + mock/HTTP
concurrency.ts SynthesisSemaphore
rateLimit.ts ToolRateLimiter (sliding window)
timeout.ts withTimeout utility
retention.ts Output file cleanup timer
redact.ts Server-level redaction
validation.ts Synthesis result validation
tools/ Individual tool handlers
assets/ Logo, audio event manifests
docs/ Architecture docs
隐私
没有遥测。 此工具不收集使用数据,不发送分析,也不向您配置的TTS后端发出网络请求。所有处理都是本地的。
安全
看 安全.md 用于漏洞报告。
看 线程_模式.md 进行全面的威胁面分析。
相关
| 项目 | 描述 |
|---|---|
| 音板插件 | Claude Code插件——斜线命令,情感感知叙事 |
支持
记分卡
| 类别 | 分数 | 备注 |
|---|---|---|
| A.安全 | 10/10 | Security.md,威胁_MODEL.md,编辑,无遥测 |
| B.错误处理 | 8/10 | 结构化错误契约(代码/提示/可重试),toToolError模式 |
| C.操作员文档 | 9/10 | 自述文件、变更日志、手册、工具文档 |
| D.运输卫生 | 9/10 | CI、验证脚本、可靠性、锁文件 |
| E.身份 | 10/10 | 徽标、翻译、登录页、元数据 |
| 总计 | 46/50 |
许可证
Built by MCP Tool Shop
