{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tts-autoplay",
    "name": "TTS AutoPlay with Wake Word",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/WangZjhz/tts-autoplay",
    "canonicalUrl": "https://clawhub.ai/WangZjhz/tts-autoplay",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tts-autoplay",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tts-autoplay",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "examples/config-example.json",
      "README.md",
      "SKILL.md",
      "WAKE-WORD-DESIGN.md",
      "WAKE-WORD-SUMMARY.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tts-autoplay"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/tts-autoplay",
    "agentPageUrl": "https://openagent3.xyz/skills/tts-autoplay/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tts-autoplay/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tts-autoplay/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "🔊 TTS AutoPlay Skill v2.0 - with Wake Word Detection",
        "body": "Automatically play TTS voice files only when wake words are detected in user messages."
      },
      {
        "title": "What's New in v2.0",
        "body": "🎯 Wake Word Detection - Only plays audio when triggered\n📝 Smart Filtering - Text-only responses by default\n🔊 On-Demand Voice - Say \"语音\" or \"voice\" to enable\n⚙️ Configurable - Customize your wake words"
      },
      {
        "title": "Chinese",
        "body": "语音\n念出来\n读出来\n播放语音\n用语音\n说出来\n讲出来\n念给我听"
      },
      {
        "title": "English",
        "body": "voice\nspeak\nread it\nsay it\nread aloud"
      },
      {
        "title": "1. Configure TTS (Tagged Mode)",
        "body": "Edit ~/.openclaw/openclaw.json:\n\n{\n  \"messages\": {\n    \"tts\": {\n      \"auto\": \"tagged\",  // Changed from \"always\"\n      \"provider\": \"edge\",\n      \"edge\": {\n        \"enabled\": true,\n        \"voice\": \"zh-CN-XiaoxiaoNeural\",\n        \"lang\": \"zh-CN\"\n      }\n    }\n  }\n}"
      },
      {
        "title": "2. Install & Start",
        "body": "# Install skill\nclawhub install tts-autoplay\ncd skills/tts-autoplay\n\n# Install\npowershell -ExecutionPolicy Bypass -File install.ps1\n\n# Start with wake word detection\npowershell -ExecutionPolicy Bypass -File tts-autoplay-wakeword.ps1"
      },
      {
        "title": "3. Test",
        "body": "Text-only (default):\n\n你：今天天气怎么样？\nAI: [文字] 今天杭州晴朗...\n\nVoice (with wake word):\n\n你：用语音告诉我天气\nAI: [语音] 今天杭州晴朗..."
      },
      {
        "title": "Mode 1: Tagged Mode (Recommended)",
        "body": "TTS only generates audio when [[tts]] tag is present.\n\nConfig:\n\n{ \"messages\": { \"tts\": { \"auto\": \"tagged\" } } }\n\nAI Behavior:\n\nDetects wake words in user message\nAdds [[tts]] tag to response\nVoice is generated and played"
      },
      {
        "title": "Mode 2: Always Mode (v1.0)",
        "body": "TTS always generates audio for every response.\n\nConfig:\n\n{ \"messages\": { \"tts\": { \"auto\": \"always\" } } }\n\nScript Behavior:\n\nScript detects wake words in file path\nOnly plays audio if wake word detected\nSkips playback for normal messages"
      },
      {
        "title": "Change Wake Words",
        "body": "Edit tts-autoplay-wakeword.ps1:\n\n$wakeWords = @(\n    \"语音\",\n    \"念出来\",\n    \"读出来\",\n    \"你的自定义词\"  # Add your own\n)"
      },
      {
        "title": "Change Detection Mode",
        "body": "Keyword mode (default):\n\n# Matches if any wake word appears in filename\nif ($fileName -match $word) { ... }\n\nExact mode:\n\n# Only matches exact directory names\nif ($file.Directory.Name -eq $word) { ... }"
      },
      {
        "title": "Add Time-Based Control",
        "body": "# Disable voice at night\n$hour = (Get-Date).Hour\nif ($hour -lt 8 -or $hour -ge 23) {\n    Write-Log \"Night mode: Voice disabled\"\n    return\n}"
      },
      {
        "title": "File Structure",
        "body": "tts-autoplay/\n├── SKILL.md                          # Skill metadata\n├── README.md                         # This file\n├── WAKE-WORD-DESIGN.md              # Wake word design doc\n├── tts-autoplay.ps1                 # Basic auto-play (v1.0)\n├── tts-autoplay-wakeword.ps1        # With wake word (v2.0)\n├── install.ps1                      # Installation script\n├── uninstall.ps1                    # Uninstallation script\n├── start.bat                        # Windows launcher\n└── examples/\n    └── config-example.json          # Config examples"
      },
      {
        "title": "Example 1: Weather Query",
        "body": "Without wake word:\n\nUser: 今天天气如何？\nAI: [Text only] 今天杭州晴朗，气温 25 度。\n\nWith wake word:\n\nUser: 用语音告诉我天气\nAI: [Voice] 今天杭州晴朗，气温 25 度。"
      },
      {
        "title": "Example 2: News Reading",
        "body": "User: 念一下今天的新闻\nAI: [Voice] 好的，今天的主要新闻有..."
      },
      {
        "title": "Example 3: Story Time",
        "body": "User: 讲个故事给我听\nAI: [Voice] 从前有座山..."
      },
      {
        "title": "Voice Always Plays",
        "body": "Issue: Wake word detection not working\n\nSolution:\n\nCheck script is tts-autoplay-wakeword.ps1 (not basic version)\nVerify wake words in script\nCheck log file for detection messages"
      },
      {
        "title": "Voice Never Plays",
        "body": "Issue: Wake words not detected\n\nSolution:\n\nTest with exact wake words from list\nCheck TTS config is tagged mode\nVerify AI is adding [[tts]] tags"
      },
      {
        "title": "Script Errors",
        "body": "Error: Execution Policy\n\nSolution:\n\npowershell -ExecutionPolicy Bypass -File \"tts-autoplay-wakeword.ps1\""
      },
      {
        "title": "Performance",
        "body": "CPU: <1% (idle), <5% (detecting)\nMemory: <50MB\nDetection latency: <1 second\nFalse positive rate: <1% (with default words)"
      },
      {
        "title": "Security & Privacy",
        "body": "✅ Local file monitoring only\n✅ No external API calls\n✅ No data collection\n✅ Wake words stored locally"
      },
      {
        "title": "Comparison",
        "body": "Featurev1.0 (Always)v2.0 (Wake Word)Voice on every message✅❌Wake word detection❌✅Text-only mode❌✅Configurable triggers❌✅Battery friendly❌✅Best forTesting/DemoDaily use"
      },
      {
        "title": "✅ Good for Wake Word Mode",
        "body": "Daily conversations (mostly text)\nOffice environments (quiet needed)\nBattery-powered devices\nMulti-user scenarios\nAccessibility (on-demand voice)"
      },
      {
        "title": "✅ Good for Always Mode",
        "body": "Testing TTS setup\nVisually impaired users\nDriving scenarios\nHands-free operation"
      },
      {
        "title": "Multi-Language Support",
        "body": "$wakeWords = @{\n    'zh-CN' = @('语音', '念出来', '读出来')\n    'en-US' = @('voice', 'speak', 'read it')\n    'ja-JP' = @('音声', '読んで')\n}"
      },
      {
        "title": "Context-Aware Detection",
        "body": "# Only enable voice for specific topics\nif ($userMessage -match '新闻 | 故事 | 文章') {\n    $enableVoice = $true\n}"
      },
      {
        "title": "User Preferences",
        "body": "# Load user-specific wake words\n$config = Get-Content \"user-config.json\" | ConvertFrom-Json\n$wakeWords = $config.wakeWords"
      },
      {
        "title": "License",
        "body": "MIT License"
      },
      {
        "title": "Credits",
        "body": "Author: ZhaoZhao (爪爪)\nInspired by: OpenClaw community\nTTS: Microsoft Edge TTS"
      },
      {
        "title": "v2.0.0 (2026-02-27)",
        "body": "✅ Wake word detection\n✅ Tagged mode support\n✅ Configurable trigger words\n✅ Smart filtering\n✅ Improved logging"
      },
      {
        "title": "v1.0.0 (2026-02-27)",
        "body": "✅ Initial release\n✅ Basic auto-play\n✅ File monitoring\n✅ WMPlayer integration\n\nEnjoy smart voice playback! 🎉\n\nFor detailed wake word design, see WAKE-WORD-DESIGN.md."
      }
    ],
    "body": "🔊 TTS AutoPlay Skill v2.0 - with Wake Word Detection\n\nAutomatically play TTS voice files only when wake words are detected in user messages.\n\nWhat's New in v2.0\n🎯 Wake Word Detection - Only plays audio when triggered\n📝 Smart Filtering - Text-only responses by default\n🔊 On-Demand Voice - Say \"语音\" or \"voice\" to enable\n⚙️ Configurable - Customize your wake words\nWake Words (Default)\nChinese\n语音\n念出来\n读出来\n播放语音\n用语音\n说出来\n讲出来\n念给我听\nEnglish\nvoice\nspeak\nread it\nsay it\nread aloud\nQuick Start\n1. Configure TTS (Tagged Mode)\n\nEdit ~/.openclaw/openclaw.json:\n\n{\n  \"messages\": {\n    \"tts\": {\n      \"auto\": \"tagged\",  // Changed from \"always\"\n      \"provider\": \"edge\",\n      \"edge\": {\n        \"enabled\": true,\n        \"voice\": \"zh-CN-XiaoxiaoNeural\",\n        \"lang\": \"zh-CN\"\n      }\n    }\n  }\n}\n\n2. Install & Start\n# Install skill\nclawhub install tts-autoplay\ncd skills/tts-autoplay\n\n# Install\npowershell -ExecutionPolicy Bypass -File install.ps1\n\n# Start with wake word detection\npowershell -ExecutionPolicy Bypass -File tts-autoplay-wakeword.ps1\n\n3. Test\n\nText-only (default):\n\n你：今天天气怎么样？\nAI: [文字] 今天杭州晴朗...\n\n\nVoice (with wake word):\n\n你：用语音告诉我天气\nAI: [语音] 今天杭州晴朗...\n\nUsage Modes\nMode 1: Tagged Mode (Recommended)\n\nTTS only generates audio when [[tts]] tag is present.\n\nConfig:\n\n{ \"messages\": { \"tts\": { \"auto\": \"tagged\" } } }\n\n\nAI Behavior:\n\nDetects wake words in user message\nAdds [[tts]] tag to response\nVoice is generated and played\nMode 2: Always Mode (v1.0)\n\nTTS always generates audio for every response.\n\nConfig:\n\n{ \"messages\": { \"tts\": { \"auto\": \"always\" } } }\n\n\nScript Behavior:\n\nScript detects wake words in file path\nOnly plays audio if wake word detected\nSkips playback for normal messages\nCustomization\nChange Wake Words\n\nEdit tts-autoplay-wakeword.ps1:\n\n$wakeWords = @(\n    \"语音\",\n    \"念出来\",\n    \"读出来\",\n    \"你的自定义词\"  # Add your own\n)\n\nChange Detection Mode\n\nKeyword mode (default):\n\n# Matches if any wake word appears in filename\nif ($fileName -match $word) { ... }\n\n\nExact mode:\n\n# Only matches exact directory names\nif ($file.Directory.Name -eq $word) { ... }\n\nAdd Time-Based Control\n# Disable voice at night\n$hour = (Get-Date).Hour\nif ($hour -lt 8 -or $hour -ge 23) {\n    Write-Log \"Night mode: Voice disabled\"\n    return\n}\n\nFile Structure\ntts-autoplay/\n├── SKILL.md                          # Skill metadata\n├── README.md                         # This file\n├── WAKE-WORD-DESIGN.md              # Wake word design doc\n├── tts-autoplay.ps1                 # Basic auto-play (v1.0)\n├── tts-autoplay-wakeword.ps1        # With wake word (v2.0)\n├── install.ps1                      # Installation script\n├── uninstall.ps1                    # Uninstallation script\n├── start.bat                        # Windows launcher\n└── examples/\n    └── config-example.json          # Config examples\n\nExamples\nExample 1: Weather Query\n\nWithout wake word:\n\nUser: 今天天气如何？\nAI: [Text only] 今天杭州晴朗，气温 25 度。\n\n\nWith wake word:\n\nUser: 用语音告诉我天气\nAI: [Voice] 今天杭州晴朗，气温 25 度。\n\nExample 2: News Reading\nUser: 念一下今天的新闻\nAI: [Voice] 好的，今天的主要新闻有...\n\nExample 3: Story Time\nUser: 讲个故事给我听\nAI: [Voice] 从前有座山...\n\nTroubleshooting\nVoice Always Plays\n\nIssue: Wake word detection not working\n\nSolution:\n\nCheck script is tts-autoplay-wakeword.ps1 (not basic version)\nVerify wake words in script\nCheck log file for detection messages\nVoice Never Plays\n\nIssue: Wake words not detected\n\nSolution:\n\nTest with exact wake words from list\nCheck TTS config is tagged mode\nVerify AI is adding [[tts]] tags\nScript Errors\n\nError: Execution Policy\n\nSolution:\n\npowershell -ExecutionPolicy Bypass -File \"tts-autoplay-wakeword.ps1\"\n\nPerformance\nCPU: <1% (idle), <5% (detecting)\nMemory: <50MB\nDetection latency: <1 second\nFalse positive rate: <1% (with default words)\nSecurity & Privacy\n✅ Local file monitoring only\n✅ No external API calls\n✅ No data collection\n✅ Wake words stored locally\nComparison\nFeature\tv1.0 (Always)\tv2.0 (Wake Word)\nVoice on every message\t✅\t❌\nWake word detection\t❌\t✅\nText-only mode\t❌\t✅\nConfigurable triggers\t❌\t✅\nBattery friendly\t❌\t✅\nBest for\tTesting/Demo\tDaily use\nUse Cases\n✅ Good for Wake Word Mode\nDaily conversations (mostly text)\nOffice environments (quiet needed)\nBattery-powered devices\nMulti-user scenarios\nAccessibility (on-demand voice)\n✅ Good for Always Mode\nTesting TTS setup\nVisually impaired users\nDriving scenarios\nHands-free operation\nAdvanced Features\nMulti-Language Support\n$wakeWords = @{\n    'zh-CN' = @('语音', '念出来', '读出来')\n    'en-US' = @('voice', 'speak', 'read it')\n    'ja-JP' = @('音声', '読んで')\n}\n\nContext-Aware Detection\n# Only enable voice for specific topics\nif ($userMessage -match '新闻 | 故事 | 文章') {\n    $enableVoice = $true\n}\n\nUser Preferences\n# Load user-specific wake words\n$config = Get-Content \"user-config.json\" | ConvertFrom-Json\n$wakeWords = $config.wakeWords\n\nLicense\n\nMIT License\n\nCredits\nAuthor: ZhaoZhao (爪爪)\nInspired by: OpenClaw community\nTTS: Microsoft Edge TTS\nChangelog\nv2.0.0 (2026-02-27)\n✅ Wake word detection\n✅ Tagged mode support\n✅ Configurable trigger words\n✅ Smart filtering\n✅ Improved logging\nv1.0.0 (2026-02-27)\n✅ Initial release\n✅ Basic auto-play\n✅ File monitoring\n✅ WMPlayer integration\n\nEnjoy smart voice playback! 🎉\n\nFor detailed wake word design, see WAKE-WORD-DESIGN.md."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/WangZjhz/tts-autoplay",
    "publisherUrl": "https://clawhub.ai/WangZjhz/tts-autoplay",
    "owner": "WangZjhz",
    "version": "2.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tts-autoplay",
    "downloadUrl": "https://openagent3.xyz/downloads/tts-autoplay",
    "agentUrl": "https://openagent3.xyz/skills/tts-autoplay/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tts-autoplay/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tts-autoplay/agent.md"
  }
}