详细分析 ▾
运行时依赖
版本
Version 0.1.2 of imessage-voice-memo-skill - No file changes detected in this release. - No functional, documentation, or metadata updates. - Behavior and usage remain unchanged from the previous version.
安装命令 点击复制
技能文档
Send native iMessage voice bubbles (not file attachments) using ElevenLabs TTS and BlueBubbles.
Quick 开始
Run the script with text and recipient:
scripts/send-voice-memo.sh "Your message here" +14169060839
This will:
- Generate TTS audio 通过 ElevenLabs (Rachel voice 由 默认)
- Convert 到 Opus CAF @ 24kHz (iMessage native 格式)
- 发送 作为 native voice bubble 通过 BlueBubbles
Requirements
- BlueBubbles running locally 带有 私有 API 已启用
- ElevenLabs API 键 (对于 TTS)
- macOS (对于
afconvertaudio conversion) - Environment variables 在...中
~/.openclaw/.env:
ELEVENLABS_API_KEY=your-key-here
BLUEBUBBLES_PASSWORD=your-password-here
# Optional overrides:
ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM # Rachel (default)
ELEVENLABS_MODEL_ID=eleven_turbo_v2_5 # Turbo v2.5 (default)
Working Formula
Critical parameters discovered 2026-02-19:
| Parameter | Value | Why |
|---|---|---|
| chatGuid | any;-;+PHONE | NOT iMessage;-; (causes timeouts) |
| method | private-api | Required for native bubble |
| isAudioMessage | true | Required |
| Audio format | Opus @ 24kHz in CAF | iMessage native format |
| Pre-convert | Yes | Don't let BlueBubbles convert (wrong codec) |
Voice Options
默认 voice: Rachel (ElevenLabs)
- Voice ID:
21m00Tcm4TlvDq8ikWAM - 模型:
eleven_turbo_v2_5(fast, natural) - Cost: ~$0.04 per 30s 消息
Expressive tags:
[laughs]— natural laughter[sighs]— expressive sigh[excited]— energetic delivery
Example: "[excited] Oh my god, it worked!"
For full voice list and IDs, see VOICES.md.
Bidirectional Voice Memos
Sending (Amz → Amy): Use this skill. Native voice bubbles appear with waveform UI.
Receiving (Amy → Amz): BlueBubbles auto-converts incoming voice memos to MP3. OpenClaw transcribes via Whisper. Transcribed text flows into conversation context automatically.
Memory note: Incoming voice memo transcriptions flow 进入 conversation context 点赞 任何 text 消息. 它们 不 automatically persisted 到 memory 或 files — agent 必须 explicitly choose 到 store them, 相同 作为 任何 conversation content. 如果 您 want 到 prevent transcriptions 从 正在 retained, instruct agent 不 到 记录 voice memo content 在...中 memory.
Troubleshooting
Voice bubble arrives 作为 file attachment:
- Check
方法=私有-api设置 - 验证 chatGuid uses
任何;-;prefix (不iMessage;-;) - Check 响应 有
"isAudioMessage": 真
API 乘以 out:
- 使用
任何;-;+PHONE格式 对于 chatGuid - 验证 BlueBubbles 私有 API 已启用
- Restart BlueBubbles 如果 consistently slow
Audio 0 seconds / unplayable:
- Ensure pre-conversion 到 Opus @ 24kHz
- Don't 让 BlueBubbles convert (uses wrong codec)
- 验证 带有:
afinfo 输出.caf(应该 show opus @ 24000 Hz)
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制