用途:为 Claude 提供免提语音对话循环,链路为麦克风 → ElevenLabs Scribe(语音转文字)→ 本地 claude CLI(作为“大脑”)→ ElevenLabs(文字转语音)→ 扬声器。资料说明 Claude 本身没有音频输入、无法转写,因此用托管的 ElevenLabs Scribe 做 STT,避免在本地运行更慢更重的 Whisper。
主要能力:支持连续对话(默认,说话停顿后听回复,说“goodbye”或 Ctrl-C 停止)、单轮(录音→回答→朗读)、仅录音输出文本、仅 TTS、转写音频文件、列出输入设备。基于静音自动断句,无需按键说话。
认证与安装:复用 eleven-labs-skill 已配置的 ElevenLabs API 密钥(~/.claude/skills/eleven-labs-skill/config.json 或 ELEVENLABS_API_KEY);大脑使用现有 Claude Code 登录,无需 API key。一次性安装:pip3 install -r ~/.claude/skills/voice-mode/requirements.txt,然后 python3 ~/.claude/skills/voice-mode/voice_mode.py setup 验证 ElevenLabs 与 claude CLI。macOS 首次录音会请求麦克风权限;sounddevice 自带 PortAudio,无需 brew install。
常用命令:python3 ~/.claude/skills/voice-mode/voice_mode.py converse(连续对话)、once(单轮)、listen(录音输出 {"text": ...})、say "hello"(仅 TTS)、stt clip.wav(转写文件)、mics(列出输入设备)。
配置(config.json):voice_id 默认 21m00Tcm4TlvDq8ikWAM(Rachel);stt_model 默认 scribe_v1;tts_model 默认 eleven_turbo_v2_5(最低延迟可用 eleven_flash_v2_5);brain 默认 claude,可切 codex;silence_secs 默认 1.2;max_utterance_secs 默认 30。可用 setup --voice-id <ID> --voice-name "<name>" 换声音,setup --brain codex 换大脑。
限制与注意:回复受系统提示约束,保持简短且适合 TTS(无 markdown/列表);每轮把运行中的对话记录发给 claude -p(每次新上下文,保留最近约 6 轮);STT 与 TTS 为托管调用,计入 ElevenLabs 账户,延迟受网络影响,通常每段一两秒。其他平台支持情况、价格与更多细节暂未提供。