announcer
Announce text throughout the house via AirPlay speakers using Airfoil + ElevenLabs TTS.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- announcer
- summary
- House-wide TTS announcements via AirPlay speakers, Airfoil, and ElevenLabs.
- version
- 1.1.0
- homepage
- https://github.com/odrobnik/announcer-skill
- metadata
- { "openclaw": { "emoji": "?", "requires": { "env": [ "ELEVENLABS_API_KEY" ], "apps": [ "Airfoil" ], "bins": [ "python3", "ffmpeg" ], "skills": [ "elevenlabs" ] } } }
- description
- Announce text throughout the house via AirPlay speakers using Airfoil + ElevenLabs TTS.
02 资源文件 3
- 参考文档_meta.json272 B
- 参考文档README.md1.0 KB
- 脚本scripts/announce.py10.9 KB
03 SKILL.md 正文
Announcer
Play TTS announcements through AirPlay speakers via Airfoil and ElevenLabs.
How It Works
- Generate speech via ElevenLabs (high-quality opus → stereo MP3)
- Connect to AirPlay speakers via Airfoil
- Play an optional chime (gong) followed by the announcement
- Disconnect speakers after playback
Requirements
- Airfoil (Rogue Amoeba) — running on the host Mac
- ElevenLabs API key — set
ELEVENLABS_API_KEYenv var - ffmpeg — for audio format conversion
- elevenlabs skill — sibling skill for TTS generation
Configuration
User config lives at ~/clawd/announcer/config.json:
{
"speakers": ["Living (2)", "Kitchen", "Office"],
"excluded": ["Computer"],
"elevenlabs": {
"voice_id": "your-voice-id",
"format": "opus_48000_192"
},
"audio": {
"output_format": "mp3",
"stereo": true,
"sample_rate": 48000,
"bitrate": "256k",
"chime_file": "gong_stereo.mp3"
},
"airfoil": {
"source": "System-Wide Audio",
"connection_timeout_seconds": 30,
"volume": 0.7
}
}
Config Fields
| Field | Description |
|---|---|
speakers |
AirPlay speaker names to connect |
excluded |
Speaker names to never connect |
elevenlabs.voice_id |
ElevenLabs voice to use |
audio.chime_file |
Chime sound file in assets/ (set null to disable) |
airfoil.connection_timeout_seconds |
Time to wait for speakers to connect |
airfoil.volume |
Speaker volume (0.0–1.0) |
Usage
# Announce to all configured speakers
python3 skills/announcer/scripts/announce.py "Dinner is ready!"
# Announce to specific speakers only
python3 skills/announcer/scripts/announce.py "Wake up!" --speakers "Kids Room"
# Skip the chime
python3 skills/announcer/scripts/announce.py "Quick note" --no-gong
File Structure
announcer/
├── SKILL.md
├── assets/
│ └── gong_stereo.mp3 # Announcement chime
└── scripts/
└── announce.py # Main announcement script
User config (not part of skill):
~/clawd/announcer/
└── config.json # Speaker list, voice, audio settings
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.