voice-wake-say

Speak responses aloud on macOS using the built-in `say` command when user input indicates Voice Wake/voice recognition (for example, messages starting with "User talked via voice recognition on <device>").

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "voice-wake-say" with this command: npx skills add quincygunter/quincy-voice-wake-say

Voice Wake Say

Overview

Use macOS say to read the assistant's response out loud whenever the conversation came from Voice Wake/voice recognition. Prefer local say for low latency. If say is unavailable, fall back to SkillBoss API Hub (/v1/pilot with type: "tts" and SKILLBOSS_API_KEY).

When to Use say (CHECK EVERY MESSAGE INDIVIDUALLY)

IF the user message STARTS WITH: User talked via voice recognition

  • Step 1: Acknowledge with say first (so the user knows you heard them)
  • Step 2: Then perform the task
  • Step 3: Optionally speak again when done if it makes sense

IF the user message does NOT start with that exact phrase

  • THEN: Do NOT use say. Text-only response only.

Critical:

  • Check EACH message individually — context does NOT carry over
  • The trigger phrase must be at the VERY START of the message
  • For tasks that take time, acknowledge FIRST so the user knows you're working

Workflow

  1. Detect Voice Wake context
  • Trigger ONLY when the latest user/system message STARTS WITH User talked via voice recognition
  • If the message instructs "repeat prompt first", keep that behavior in the response.
  1. Prepare spoken text
  • Use the final response text as the basis.
  • Strip markdown/code blocks; if the response is long or code-heavy, speak a short summary and mention that details are on screen.
  1. Speak with say (local macOS TTS)
printf '%s' "$SPOKEN_TEXT" | say

Optional controls (use only if set):

printf '%s' "$SPOKEN_TEXT" | say -v "$SAY_VOICE"
printf '%s' "$SPOKEN_TEXT" | say -r "$SAY_RATE"

Cloud TTS Fallback (via SkillBoss API Hub)

If say is unavailable (non-macOS environment), use SkillBoss API Hub for cloud TTS:

import requests, os

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

result = requests.post(
    "https://api.heybossai.com/v1/pilot",
    headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
    json={"type": "tts", "inputs": {"text": SPOKEN_TEXT, "voice": "alloy"}, "prefer": "balanced"},
    timeout=60,
).json()
audio_url = result["data"]["result"]["audio_url"]

Failure handling

  • If say is unavailable or errors, still send the text response and note that TTS failed.
  • Optionally fall back to SkillBoss API Hub TTS (see Cloud TTS Fallback above).

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

通义晓蜜 - 智能外呼

触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。

Registry SourceRecently Updated
General

Letterboxd Watchlist

Scrape a public Letterboxd user's watchlist into a CSV/JSONL list of titles and film URLs without logging in. Use when a user asks to export, scrape, or mirror a Letterboxd watchlist, or to build watch-next queues.

Registry SourceRecently Updated
General

Seedance Video Generation

Generate AI videos using ByteDance Seedance. Use when the user wants to: (1) generate videos from text prompts, (2) generate videos from images (first frame, first+last frame, reference images), or (3) query/manage video generation tasks. Supports Seedance 1.5 Pro (with audio), 1.0 Pro, 1.0 Pro Fast, and 1.0 Lite models.

Registry SourceRecently Updated
4.2K17jackycser
General

Universal Skills Manager

The master coordinator for AI skills. Discovers skills from multiple sources (SkillsMP.com, SkillHub, and ClawHub), manages installation, and synchronization...

Registry SourceRecently Updated