Token导航 LogoToken导航

MCP Server · 音视频

voicelayer (Etan Hey)

VoiceLayer是一个本地优先的开源语音交互服务,为AI编码助手提供语音输入输出功能,适用于需要快速语音交互的开发场景。

未说明官方级别未说明来源级核验工具 11
本地处理TypeScriptClaude开源工具Cursor

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
EtanHey
提供方
EtanHey

工具数量

11

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

voicelayer (Etan Hey) 属于音视频类 MCP Server,公开资料标注 11 个工具,通过传输方式未标注接入,适配 Claude、Cursor,没有现成的安装命令;接入前要先准备 访问 Token。

分类

音视频

传输方式

未说明

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 11 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

语音层

你的AI代理听不见你的声音。VoiceLayer赋予它耳朵和声音。

AI编码助手的语音输入/输出。 按F5,与Claude Code对话,在1.5秒内完成设备转录。你的AI会回应。适用于任何MCP客户端。

  You ──🎤──> whisper.cpp ──> Claude Code ──> edge-tts ──🔊──> You
         STT (local)           MCP tools         TTS (free)

本地优先。免费。开源。 没有云API,没有API密钥,没有数据离开您的机器。部分 魔像 生态系统。

VoiceLayer作为Unix套接字上的持久单例守护进程运行——每个Claude会话都通过轻量级的 socat shim而不是生成自己的进程。11个MCP工具 工具注释.

建筑

                  ┌─────────────────────────────────────┐
                  │         VoiceLayer Daemon            │
                  │     /tmp/voicelayer-mcp.sock         │
                  │                                      │
                  │  MCP JSONRPC ──> Tool Handlers       │
                  │  (Content-Length     ├── voice_speak  │
                  │   framing)          └── voice_ask    │
                  │                                      │
                  │  TTS: edge-tts (retry + 30s timeout) │
                  │  STT: whisper.cpp / Wispr Flow       │
                  │  VAD: Silero ONNX (speech detection)  │
                  │  IPC: Voice Bar ← NDJSON events      │
                  └──────────┬──────────────────────────┘
                             │ Unix socket
              ┌──────────────┼──────────────┐
              │              │              │
         Claude Code    Claude Code    Cursor/Codex
         (socat shim)  (socat shim)   (socat shim)

为什么是守护进程? 原始设计在每次Claude会话中都产生了一个新的Bun过程。随着17个以上的存储库打开,这意味着17个相互竞争的进程(700+MB RAM),争夺一个语音栏套接字,因PATH问题导致边缘tts崩溃,并留下从未死亡的孤儿。PR#67-72中提供的守护进程架构用一个进程取代了所有这些 socat 垫片。

度量之前(每个会话生成)之后(守护进程)
进程N个/会话(17+典型)1个守护进程+socat-shims
RAM约700 MB(17 x 41 MB)约50 MB
孤儿清理手动 pkillPID锁文件自动终止过时
edge-tts失败随机(PATH,争用)在30秒硬超时后重试
voice_ask挂起最长300秒(5分钟!)默认30秒+外护

快速开始

# Install from npm
bun add -g voicelayer-mcp

# Prerequisites
brew install sox socat
pip3 install edge-tts
brew install whisper-cpp  # optional — local STT

# Download a whisper model (recommended)
mkdir -p ~/.cache/whisper
curl -L -o ~/.cache/whisper/ggml-large-v3-turbo.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin

或者从源代码安装:

git clone https://github.com/EtanHey/voicelayer.git
cd voicelayer && bun install

启动守护进程

# Option A: LaunchAgent (auto-start on login, auto-restart on crash)
./launchd/install.sh

# Option B: Manual
bun run src/mcp-server-daemon.ts

禁用VoiceLayer

DISABLE_VOICELAYER=1 是MCP守护进程的硬终止开关。

# Install the LaunchAgent in a disabled state and sync the runtime daemon flag
DISABLE_VOICELAYER=1 ./launchd/install.sh

# Or edit the template-generated plist and add:
# DISABLE_VOICELAYER
# 1

如果守护进程已在运行,请创建 /tmp/.voicelayer-daemon-disabled 它将在5秒内关闭。 ./launchd/install.sh 还使该文件与保持同步 DISABLE_VOICELAYER,因此VoiceBar启动的守护程序也保持禁用状态。要重新启用它,请从中删除env变量 ~/Library/LaunchAgents/com.voicelayer.mcp-daemon.plist,删除 /tmp/.voicelayer-daemon-disabled 如果存在,则重新启动代理:

launchctl kickstart -k "gui/$(id -u)/com.voicelayer.mcp-daemon"

配置MCP客户端

添加到您的 .mcp.json (在任何使用Claude Code的仓库中):

{
  "mcpServers": {
    "voicelayer": {
      "command": "socat",
      "args": ["STDIO", "UNIX-CONNECT:/tmp/voicelayer-mcp.sock"]
    }
  }
}

或者一次迁移所有存储库:

bash scripts/migrate-to-daemon.sh         # migrates every .mcp.json under ~/Gits
bash scripts/migrate-to-daemon.sh --dry-run  # preview without changes

允许麦克风访问您的终端(macOS:系统设置>隐私>麦克风)。

语音工具

主要工具

工具行为阻塞只读破坏性幂等
voice_speakTTS具有自动模式(宣布/简报/咨询/思考)、回放、切换否假假真
voice_ask说出问题+录制麦克风+转录响应是假假假的

向后兼容别名

别名映射到幂等
qa_voice_announcevoice_speak(mode='announce')真的
qa_voice_briefvoice_speak(mode='brief')真的
qa_voice_consultvoice_speak(mode='consult')真的
qa_voice_sayvoice_speak(mode='announce')真的
qa_voice_thinkvoice_speak(mode='think') 错误的
qa_voice_replayvoice_speak(replay_index=N)真的
qa_voice_togglevoice_speak(enabled=bool)真的
qa_voice_conversevoice_ask 错误的
qa_voice_askvoice_ask 错误的

所有11个工具都包括MCP 工具注释。没有VoiceLayer工具具有破坏性。所有人都有 openWorldHint: false.

voice_ask的工作原理

  1. 等待任何游戏 voice_speak 音频结束
  2. 通过边缘tts回答问题(失败后重试)
  3. 以设备本机速率录制麦克风,重新采样至16kHz
  4. Silero VAD检测语音开始和静音结束
  5. whisper.cpp在本地转录(在Apple Silicon上约200-400ms)
  6. 将转录返回给AI代理

可靠性特征

  • PID锁定文件 (/tmp/voicelayer-mcp.pid):启动时,检测并杀死前一个会话中的任何孤立MCP服务器
  • 边缘tts重试:健康检查(缓存60秒)+每次尝试自动重试30秒硬超时
  • 外部超时保护: Promise.race 对整个voice_ask流进行包装——如果有任何挂起,则返回错误,而不是永远阻塞
  • 会议预订:锁文件互斥防止并发会话之间的麦克风冲突

录音控制

方法如何
停车信号touch ~/.local/state/voicelayer/stop-{token}
VAD静音可配置:快速(0.5秒)、标准(1.5秒)、周到(2.5秒)
超时默认30秒,每次通话可配置5-3600秒
推动对话press_to_talk: true --无VAD,仅在信号时停车

STT后端

后端类型延迟设置
whisper.cpp本地(默认)~200-400msbrew install whisper-cpp +模型下载
Wispr流程云(回退)~500ms+网络设置 QA_VOICE_WISPR_KEY 有人是。

自动检测到。覆盖 QA_VOICE_STT_BACKEND=whisper|wispr|auto.

语音栏(macOS)

浮动SwiftUI小部件在语音交互过程中提供视觉反馈。通过NDJSON连接到守护进程 /tmp/voicelayer.sock.

  • 带单词级突出显示和自动滚动的提示器
  • 记录过程中的波形可视化
  • 可扩展药丸UI——闲置5秒后折叠成点
  • 可拖动,位置在发射过程中保持不变
  • 全局热键: F5(按住可按键通话)
bun add -g voicelayer-mcp
voicelayer hotkey install       # Install F5/Dictation -> F18 relay
voicelayer bar                  # Build and launch Voice Bar

热键注释:

  • 需要输入监控权限(系统设置>隐私和安全)
  • 在物理键为苹果听写键的键盘上, voicelayer hotkey install 安装a hidutil LaunchAgent将F5/听写映射到VoiceBar的内部F18中继。
  • 安装程序保留非VoiceBar hidutil 映射,可以安全地重新运行。 Shift+F5 重新粘贴最新的成绩单。

高级:语音克隆

用于克隆语音的三层TTS引擎级联:

  1. XTTS-v2 微调(节奏+音色)
  2. F5-TTS MLX 零样本(本地,无守护进程)
  3. Qwen3-TTS 守护进程(基于HTTP)
  4. 边缘tts 回退(始终可用)
voicelayer extract    # Extract voice samples
voicelayer clone             # Build voice profile
voicelayer daemon --port 8880      # Run Qwen3-TTS server

Qwen3守护进程现在使用来自的承载身份验证 ~/.voicelayer/daemon.secret (在首次使用模式启动时创建 0600).TypeScript桥读取 自动生成相同的文件。用以下内容覆盖位置 VOICELAYER_TTS_DAEMON_SECRET_FILE, VOICELAYER_TTS_AUTH_TOKEN_FILE,或 voicelayer daemon --daemon-secret-file ... 如果你需要一个自定义启动器 路径。守护进程只接受 Host: 127.0.0.1:8880 / Host: localhost:8880,拒绝非本地 Origin 标题,并且只读取 reference_wav 在下解析的文件 ~/.voicelayer/voices/.

环境变量

变量默认值描述
QA_VOICE_STT_BACKENDautoSTT后端: whisper, wispr,或 auto
QA_VOICE_WHISPER_MODEL自动检测whisper.cpp GGML模型的路径
QA_VOICE_WISPR_KEY--Wispr Flow API密钥(云回退)
QA_VOICE_TTS_VOICEen-US-JennyNeural边缘tts语音ID
QA_VOICE_TTS_RATE+0%基本语音速率
VOICELAYER_TTS_DAEMON_SECRET_FILE~/.voicelayer/daemon.secret共享Qwen3守护进程承载秘密文件的首选覆盖
VOICELAYER_TTS_AUTH_TOKEN_FILE~/.voicelayer/daemon.secret共享Qwen3守护进程承载秘密文件的向后兼容覆盖

测试

bun test                              # 585 Bun tests + 1 skip (latest verified on PR #190 pre-push gate)
bash flow-bar/run_tests.sh            # 144 Swift tests for VoiceBar
git config core.hooksPath .githooks   # install repo pre-push hook once per clone (#181, #182)

测试范围包括:MCP协议框架、工具处理程序、TTS合成+重试、VAD语音检测、会话预订、进程锁生命周期、套接字客户端重新连接、边缘TTS健康检查、模式验证、希伯来语STT评估基线、守护进程弹性、ToolAnnotations、SSML净化和安全路径强化。

近期硬化(2026-04-27→2026-05-02)

一周的冲刺集中在VoiceBar的可靠性和一个记录语料库上,以对抗STT回归。下面的每一行都指向一个合并的PR。

记录可靠性

  • 录制控件可点击性恢复——F6插座控件在药丸动画期间保持交互式(#188).
  • 调整大小时保留药丸底部锚点,因此UI不会偏离屏幕(#187).
  • 波形在真实音频输入上再次动画化+删除冗余的“收听”副本(#184).
  • 波形动态范围恢复到静音门上方(#185).
  • 支持自定义VoiceBar安装路径(不再硬编码 /Applications/VoiceBar.app) (#186).
  • VoiceBar转录通过录音RMS门保存,因此安静的语音得以保留(#177).
  • 停滞的后台程序重启检测——后台程序重启后,VoiceBar转录会自动恢复(#183).

STT质量

  • 未抑制输入STT幻觉(#189).
  • 零RMS音频摄取监视器在耳语之前捕捉到无声的麦克风。cpp猜测(#178).

VoiceBar听写语料库(第一阶段) — #190

  • 每个成功的VoiceBar听写都存档在 ~/.local/share/voicelayer/recordings/YYYY-MM-DD// 随着 audio.wav + voicelayer-transcript.txt + metadata.json (模式v1,WAV字节上的SHA-256)。
  • 原子重命名+fsync,因此部分写入永远不会出现在语料库中。
  • 取消的或空的转录被跳过——只有真实的听写会放在磁盘上。
  • 重新粘贴热键移动到 Shift+F5;平原 F5 现在是通过VoiceBar的F18中继进行的默认记录启动/停止激活。

测试基础设施

  • voicelayer run_tests.sh 编排脚本统一Bun+Swift+守护进程引导+Karabiner烟雾运行(#180).
  • 用于黄金路径STT回归的VoiceBar音频设备(#179).

项目结构

voicelayer/
├── src/                          # TypeScript/Bun (18K lines, 69 files)
│   ├── mcp-server-daemon.ts      # Singleton daemon entry point
│   ├── mcp-server.ts             # Stdio MCP server (legacy)
│   ├── mcp-daemon.ts             # Unix socket server (dual-protocol)
│   ├── mcp-framing.ts            # Content-Length + NDJSON framing
│   ├── mcp-handler.ts            # JSONRPC request router
│   ├── process-lock.ts           # PID lockfile (orphan prevention)
│   ├── handlers.ts               # Tool handler implementations
│   ├── tts.ts                    # Multi-engine TTS with playback queue
│   ├── tts-health.ts             # edge-tts health check + retry
│   ├── input.ts                  # Mic recording + STT pipeline
│   ├── vad.ts                    # Silero VAD (ONNX inference)
│   ├── stt.ts                    # STT backend abstraction
│   ├── socket-client.ts          # Voice Bar IPC (auto-reconnect)
│   ├── session-booking.ts        # Lockfile mutex
│   ├── paths.ts                  # Centralized path constants
│   └── __tests__/                # 536 tests across 48 files
├── flow-bar/                     # SwiftUI macOS app (1.9K lines, 9 files)
│   ├── Sources/VoiceBar/         # App source
│   └── Tests/                    # Swift tests
├── scripts/
│   ├── migrate-to-daemon.sh      # Batch .mcp.json migration
│   └── edge-tts-words.py         # Word-level TTS with timestamps
├── launchd/                      # macOS LaunchAgent auto-start
├── models/                       # Silero VAD ONNX model
└── package.json                  # v2.0.0

平台支持

平台TTSSTT录音语音栏
macOSedgetts+afplaywhisper.cpp(CoreML)soxSwiftUI应用程序
Linux边缘tts+mpv/ffplaywhisper.cppsox--

傀儡的一部分

VoiceLayer是三个开源MCP服务器之一 魔像 生态系统:

服务器功能工具
BrainLayerAI代理的持久内存——知识图+混合搜索12
语音层语音输入/输出——本地STT、神经TTS、F5按键通话11
cmuxLayer终端编排--生成窗格、读取屏幕、协调代理22

与BrainLayer配对,记住会话中的语音对话。

许可证

阿帕奇-2.0

工具与能力

工具数量

11

资源数量

0

提示词数量

0

能力标签

语音交互TypeScript本地部署AI助手本地处理开源工具语音转录语音识别

支持客户端

ClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

语音转文字

把会议录音转成文字,再整理要点。

文字转语音

把文案转成配音,调整语速和音色。

视频素材处理

提取字幕、剪出片段、生成封面。

选择建议

值得选的地方

  • 工具数量 11 个,一次接入能覆盖的操作比单点工具更全。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在音视频场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到访问 Token的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
voicelayer (Etan Hey)

MCP World · 本页

11未说明未标注1 个2026-05-17
Youtube E0eb3510

MCP World

0stdio有1 个2026-05-17
Ableton MCP B7b69a6a

MCP World

16stdio有2 个2026-05-17
Voicemode MCP

MCP World

0stdio有3 个2026-05-17
Short Video Maker MCP

MCP World

0stdio有3 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

voicelayer (Etan Hey) 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

voicelayer (Etan Hey) 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

voicelayer (Etan Hey) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

voicelayer (Etan Hey) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

voicelayer (Etan Hey) 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP