一键导入
audio
Low-level speaker and microphone hardware control — adjust volume, play test tones, record raw audio. Do NOT use for TTS/speech (that is the Voice skill).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Low-level speaker and microphone hardware control — adjust volume, play test tones, record raw audio. Do NOT use for TTS/speech (that is the Voice skill).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Understand voice input from the realtime voice agent pipeline. Messages may contain [voice-instruction]/[transcript] (delegated with context), [HANDLED]/[REPLY] (chit-chat already spoken), or plain text. Route and respond accordingly.
Self-enroll a voice for speaker recognition. Activate ONLY when (a) a mic `Unknown Speaker:` turn carries a clear self-introduction ("I'm X", "my name is X", "tôi là X"...), (b) prior same-tag `[voice:voice_N]` turns can be combined with a now-named turn, (c) a Telegram voice-note carries an intro, OR (d) the user asks to list / forget / identify voices. Do NOT activate on bare `Unknown Speaker:` turns with no name and no prior same-tag history — those need only a short ack. Self-enrollment only.
Guard mode for security monitoring. Two uses — (1) Toggle on/off when a friend says "guard mode", "watch the house", "I'm going out", or similar. (2) Handle any sensing event that carries a [guard-active] tag (e.g. [sensing:presence.enter][guard-active], [sensing:motion][guard-active]) with dramatic shock/curious emotion + Telegram broadcast. Do NOT fall back to normal sensing reactions while guard mode is on.
React to passive sensing events from the lamp — presence, sound, light, fire hazard. Events arrive as [sensing:<type>] messages and each gets an emotion marker + optional short line. Does NOT handle motion.activity (→ wellbeing) or emotion.detected / speech_emotion.detected (→ user-emotion-detection).
Query flow event logs to answer questions about past sensing events — "Have you seen anybody between 10pm and 12pm?", "Is there any motion in the last hour?", "What happened while I was away?".
Camera control — snapshot, stream, and privacy toggle. Trigger on "what do you see", "look at this", "take a photo", "don't look", "stop looking", "stop watching", "stop staring", "camera off", "camera on", "give me privacy". MUST call [HW:/camera/disable:{}] or [HW:/camera/enable:{}] when toggling — never just reply with text.
| name | audio |
| description | Low-level speaker and microphone hardware control — adjust volume, play test tones, record raw audio. Do NOT use for TTS/speech (that is the Voice skill). |
Control the lamp's speaker and microphone hardware directly. Use this for volume adjustments, test tones, and raw audio recording. This is LOW-LEVEL hardware control only.
POST /audio/volumeGET /audio/volumePOST /audio/play-tonePOST /audio/recordGET /audioInput: "Louder please" / "Turn it up"
Output: Check current volume with GET /audio/volume, then increase by ~15 with POST /audio/volume. Confirm: "Volume set to 85%."
Input: "Set volume to 50%"
Output: Call POST /audio/volume with {"volume": 50}. Confirm: "Volume set to 50%."
Input: "Mute" / "Too loud"
Output: Call POST /audio/volume with {"volume": 0}. Confirm: "Muted."
Input: "I can't hear you"
Output: Check current volume with GET /audio/volume, then increase it. Confirm with the new level.
Input: "Say something" / "Tell me a joke" Output: Do NOT use this skill. Just reply normally — your voice pipeline handles TTS automatically.
Use Bash with curl to call the HTTP API at http://127.0.0.1:5001.
curl -s http://127.0.0.1:5001/audio
Response:
{
"output_device": 0,
"input_device": 1,
"available": true
}
curl -s -X POST http://127.0.0.1:5001/audio/volume \
-H "Content-Type: application/json" \
-d '{"volume": 70}'
Volume range: 0 (mute) to 100 (max).
curl -s http://127.0.0.1:5001/audio/volume
Response: {"control": "Speaker", "volume": 70}
curl -s -X POST "http://127.0.0.1:5001/audio/play-tone?frequency=440&duration_ms=500"
Plays a sine wave. Use for audio testing only. Keep it short (< 1 second).
curl -s -X POST "http://127.0.0.1:5001/audio/record?duration_ms=3000"
Records from the microphone and returns a WAV file.
GET /audio returns "available": false, inform the user: "The speaker/microphone is not connected right now."[Audio] {action} — {details}
Examples:
[Audio] Volume set — 70%[Audio] Volume set — muted (0%)[Audio] Test tone played — 440Hz, 500ms[Audio] Recording captured — 3000ms