360 Secure SkillHub
360 安全技能中心

Lovefromio Voice Wake Say

核心功能:仅在用户消息以「User talked via voice recognition」开头时,调用macOS内置`say`命令朗读响应,不使用云TTS;先语音确认指令,执行任务后按需朗读结果,长回复或含代码时只读摘要并提示看屏幕细节;非触发条件下仅返回文本。典型场景:用户通过语音唤醒交互时提供本地语音反馈。输入为用户消息,输出为文本响应+对应语音朗读(符合条件时),`say`不可用时仅文本并提示TTS失败。

lovefromio
lovefromio
热度 42.01
最近更新 2026-05-11 17:46:05
分类:自动化依赖:代码执行应用场景:自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add lovefromio-voice-wake-say
Metadata
name
voice-wake-say
description
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>").

Voice Wake Say

Overview

Use macOS say to read the assistant's response out loud whenever the conversation came from Voice Wake/voice recognition. Do not use the tts tool (it calls cloud providers).

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"

Failure handling

  • If say is unavailable or errors, still send the text response and note that TTS failed.