windows-tts

Push text notifications to Windows Azure TTS service for audio broadcast via Bluetooth speakers. Perfect for family reminders, alarms, and announcements.

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 "windows-tts" with this command: npx skills add cmosakg/windows-tts

ClawHub Version License

Windows TTS Notification Skill

Push text notifications from OpenClaw to your Windows PC's Azure TTS service for audio broadcast through Bluetooth speakers or any connected audio output.

🔥 Perfect for: Family reminders, medication alerts, homework notifications, dinner announcements, and any cross-device audio broadcast scenarios.

When to Use

USE this skill when:

  • "Remind my family to do homework"
  • "Announce dinner time through speakers"
  • "Create audio alarms and reminders"
  • "Broadcast messages to specific rooms"
  • "Play medication reminders"
  • "Send cross-device audio notifications"

Prerequisites

  • Windows PC with Azure TTS server running (e.g., play_tts Flask service)
  • Network connectivity between OpenClaw host and Windows PC (same LAN)
  • Server URL in format: http://<windows-ip>:5000

Quick Start

1. Install the Skill

cd /home/cmos/skills/windows-tts
npm install
npm run build

2. Configure OpenClaw

Add plugin configuration to your openclaw.json:

{
  "plugins": {
    "windows-tts": {
      "url": "http://192.168.1.60:5000",
      "defaultVoice": "zh-CN-XiaoxiaoNeural",
      "defaultVolume": 1.0,
      "timeout": 10000
    }
  }
}

3. Use in Agent Heartbeat

Edit your life agent's HEARTBEAT.md:

# Family Reminder Check (every 30 minutes)

- Check if it's homework time (19:00-21:00)
- Check if it's medication time
- Check if there are urgent announcements
- Use tts_notify to broadcast reminders

Configuration Reference

OptionTypeRequiredDefaultDescription
urlstringYes-Windows TTS server base URL (e.g., http://192.168.1.60:5000)
defaultVoicestringNozh-CN-XiaoxiaoNeuralDefault Azure TTS voice ID
defaultVolumenumberNo1.0Default volume level (0.0-1.0)
timeoutnumberNo10000HTTP request timeout in milliseconds

Tool Reference

tts_notify

Send text to Windows TTS for immediate audio broadcast.

Input:

{
  text: string;      // Required: Text to speak
  voice?: string;    // Optional: Override default voice
  volume?: number;   // Optional: Override default volume (0.0-1.0)
}

Example Usage:

// Basic notification
await tts_notify({
  text: "程老板,该提醒孩子写作业了!"
});

// With custom voice and volume
await tts_notify({
  text: "Attention: Meeting in 5 minutes",
  voice: "en-US-JennyNeural",
  volume: 0.8
});

Response:

{
  "status": "success",
  "message": "播报完成"
}

tts_get_status

Check Windows TTS server connection status.

Input: None

Example:

const status = await tts_get_status();
// Returns: { status: "success", connected: true, serverUrl: "http://192.168.1.60:5000" }

tts_list_voices

List available Azure TTS voices.

Input:

{
  language?: string;  // Optional: Filter by language code (e.g., "zh-CN", "en-US")
}

Example:

// List all Chinese voices
const voices = await tts_list_voices({ language: "zh-CN" });
// Returns: [{ name: "zh-CN-XiaoxiaoNeural", language: "zh-CN", gender: "Female", ... }]

tts_set_volume

Set default volume level for TTS playback.

Input:

{
  volume: number;  // Required: Volume level (0.0-1.0)
}

Example:

await tts_set_volume({ volume: 0.5 });

Usage Examples

1. Homework Reminder (Daily 19:00)

Add to life agent's heartbeat or cron:

await tts_notify({
  text: "亲爱的程老板,现在是晚上 7 点,该提醒孩子写作业了!"
});

2. Medication Reminder

await tts_notify({
  text: "温馨提示:该吃药了,请记得服用今天的维生素。",
  volume: 0.7
});

3. Dinner Announcement

await tts_notify({
  text: "晚饭准备好了,快来吃饭吧!",
  voice: "zh-CN-YunxiNeural"
});

4. Multi-Language Support

// English announcement
await tts_notify({
  text: "Good evening! Dinner is ready.",
  voice: "en-US-JennyNeural"
});

// Japanese announcement
await tts_notify({
  text: "夕ご飯の準備ができました。",
  voice: "ja-JP-NanamiNeural"
});

Error Handling

The skill throws WindowsTtsError when the server returns an error:

try {
  await tts_notify({ text: "Test message" });
} catch (error) {
  if (error instanceof WindowsTtsError) {
    console.error(`TTS Server error: ${error.status}`);
  } else if (error.message.includes("timeout")) {
    console.error("TTS request timed out - check network connection");
  }
}

Best Practices

1. Network Reliability

  • Ensure Windows PC has static IP or DHCP reservation
  • Test connection with tts_get_status before critical reminders
  • Set appropriate timeout (10-30 seconds for TTS)

2. Voice Selection

  • Use zh-CN-XiaoxiaoNeural for warm, friendly Chinese announcements
  • Use zh-CN-YunxiNeural for more formal notifications
  • Match voice to message tone (casual vs formal)

3. Volume Management

  • Set lower volume (0.5-0.7) for frequent reminders
  • Use full volume (1.0) for urgent announcements
  • Avoid very low volume (<0.3) as TTS may be inaudible

4. Message Design

  • Keep messages concise (10-30 seconds max)
  • Use clear, natural language
  • Include context (time, action needed)
  • Add polite markers for family harmony

Programmatic Usage

Use as a library in your TypeScript/JavaScript code:

import { WindowsTtsClient, validateConfig } from "./index";

const config = validateConfig({
  url: "http://192.168.1.60:5000",
  defaultVoice: "zh-CN-XiaoxiaoNeural",
  defaultVolume: 0.8
});

const client = new WindowsTtsClient(config);

// Send notification
await client.notify({
  text: "Hello from OpenClaw!"
});

// Check status
const status = await client.getStatus();
console.log(`Connected: ${status.connected}`);

Troubleshooting

"Connection refused" error

  • Verify Windows TTS server is running: curl http://192.168.1.60:5000/status
  • Check firewall allows port 5000
  • Ensure both devices are on same network

"Request timeout" error

  • Increase timeout in plugin config
  • Check network latency between devices
  • Verify Windows PC is not in sleep mode

TTS plays but wrong voice

  • Verify voice name is valid Azure TTS voice ID
  • Use tts_list_voices to see available voices
  • Check Windows TTS server supports voice selection

Related Skills

  • openclaw-homeassistant - Control smart home devices
  • proactive-agent - Build proactive reminder behaviors
  • gws-calendar - Schedule reminders based on calendar events

Version History

1.0.0

  • Initial release with 4 tools
  • Basic HTTP client with timeout
  • Voice and volume configuration
  • Error handling and status checks

License

MIT

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

Audio Broadcast

控制小播鼠广播系统进行音频播放和广播通知。使用当用户需要向广播设备播放音频、设置音量、管理定时广播任务、或查看设备状态时。支持播放音频文件、URL播放、音量调节、设备管理、定时任务管理、文字转语音(TTS)广播等功能。Control xiaoboshu broadcast system for audio pla...

Registry SourceRecently Updated
0436
Profile unavailable
General

feishu-edge-tts-win

飞书语音消息发送技能(Windows 版)。使用 Edge TTS(微软,免费)生成语音并以飞书语音气泡发送。

Registry SourceRecently Updated
0135
Profile unavailable
General

TTS AutoPlay with Wake Word

Auto-play TTS voice files with wake word detection. Only plays audio when user message contains wake words like "语音", "念出来", "voice", etc. Perfect for Webcha...

Registry SourceRecently Updated
0202
Profile unavailable