HyperFrames Audio
heygen-com/hyperframes
Mixes audio already placed in a HyperFrames composition: fades, gain, ducking under a voiceover, effect chains, automation and shared submix buses.
萤石语音广播技能。支持本地音频文件上传或文本转语音,实现语音内容下发到设备播放. An agent skill from LeoYeAI/openclaw-master-skills.
$ npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ezviz-audio-broadcast --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hsa-test2 .claude/skills/ezviz-audio-broadcast && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ezviz-audio-broadcast" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2 into .claude/skills/ezviz-audio-broadcast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ezviz-audio-broadcast", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ezviz-audio-broadcast --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/hsa-test2 .agents/skills/ezviz-audio-broadcast && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ezviz-audio-broadcast" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2 into .agents/skills/ezviz-audio-broadcast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ezviz-audio-broadcast", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ezviz-audio-broadcast --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/hsa-test2 .cursor/skills/ezviz-audio-broadcast && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ezviz-audio-broadcast" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2 into .cursor/skills/ezviz-audio-broadcast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ezviz-audio-broadcast", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/hsa-test2--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ezviz-audio-broadcast --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/hsa-test2 .gemini/skills/ezviz-audio-broadcast && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ezviz-audio-broadcast" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2 into .gemini/skills/ezviz-audio-broadcast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ezviz-audio-broadcast", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills ezviz-audio-broadcastInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/hsa-test2 .github/skills/ezviz-audio-broadcast && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ezviz-audio-broadcast" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2 into .github/skills/ezviz-audio-broadcast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ezviz-audio-broadcast", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ezviz-audio-broadcast --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/hsa-test2 .opencode/skills/ezviz-audio-broadcast && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ezviz-audio-broadcast" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/hsa-test2 into .opencode/skills/ezviz-audio-broadcast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ezviz-audio-broadcast", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ezviz-audio-broadcast萤石语音广播技能。支持本地音频文件上传或文本转语音,实现语音内容下发到设备播放. An agent skill from LeoYeAI/openclaw-master-skills.
Ezviz Audio Broadcast is an agent skill from LeoYeAI/openclaw-master-skills. 萤石语音广播技能。支持本地音频文件上传或文本转语音,实现语音内容下发到设备播放。 Use when: 需要向萤石设备发送语音通知、广播、提醒等音频内容。 ⚠️ 安全要求:必须设置 EZVIZAPPKEY 和 EZVIZAPPSECRET 环境变量,使用最小权限凭证。
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `_meta.json`, `lib/token_manager.py` and `scripts/audio_broadcast.py`).
The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3pipcurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
openai.ys7.comoss-cn-shenzhen.aliyuncs.comAlso links to:
open.ys7.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
EZVIZ_APP_KEYEZVIZ_APP_SECRETEZVIZ_ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ezviz Audio Broadcast loads about 3.6k tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 720 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
如果您曾经使用过旧版本的 .env 文件:- ❌ 不要使用 .env 文件(已删除)- [ ] 使用环境变量而非 .env 文件Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 720 words, ~3,555 tokens.
.claude/skills/ezviz-audio-broadcast/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.通过萤石语音上传和下发接口,实现语音内容到设备的广播播放。
在使用此技能前,请完成以下安全检查:
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 凭证权限 | ⚠️ 必需 | 使用最小权限的 AppKey/AppSecret,不要用主账号凭证 |
| 2 | 配置文件 | ⚠️ 注意 | 技能会读取 ~/.openclaw/config.json 等文件中的萤石凭证 |
| 3 | Token 缓存 | ⚠️ 注意 | Token 缓存在 /tmp/ezviz_global_token_cache/ (权限 600) |
| 4 | 系统命令 | ⚠️ 注意 | 使用 say/espeak/ffmpeg 进行 TTS (通过 subprocess) |
| 5 | API 域名 | ✅ 已验证 | openai.ys7.com 是萤石官方 API 端点 |
| 6 | 代码审查 | ✅ 推荐 | 审查 scripts/audio_broadcast.py 和 lib/token_manager.py |
# 1. 使用环境变量(优先级最高,避免配置文件意外使用)
export EZVIZ_APP_KEY="your_dedicated_app_key"
export EZVIZ_APP_SECRET="your_dedicated_app_secret"
export EZVIZ_DEVICE_SERIAL="device1,device2"
# 2. 高安全环境:禁用 Token 缓存
export EZVIZ_TOKEN_CACHE=0
# 3. 测试凭证(推荐先用测试账号)
# 登录 https://openai.ys7.com/ 创建专用应用,仅开通语音相关权限技能按以下顺序获取凭证(优先级从高到低):
EZVIZ_APP_KEY, EZVIZ_APP_SECRET) ← 推荐~/.openclaw/config.json 等)pip install requestsexport EZVIZ_APP_KEY="your_app_key"
export EZVIZ_APP_SECRET="your_app_secret"
export EZVIZ_DEVICE_SERIAL="dev1,dev2,dev3"可选环境变量:
export EZVIZ_CHANNEL_NO="1" # 通道号,默认 1
export EZVIZ_AUDIO_FILE="/path/to/audio.mp3" # 本地音频文件路径(二选一)
export EZVIZ_TEXT_CONTENT="语音内容文本" # 文本内容(二选一)
export EZVIZ_VOICE_NAME="custom_name" # 自定义语音名称
export EZVIZ_TOKEN_CACHE="1" # Token 缓存:1=启用 (默认), 0=禁用Token 缓存说明:
EZVIZ_TOKEN_CACHE=0 每次重新获取 Token/tmp/ezviz_global_token_cache/global_token_cache.json注意:
EZVIZ_ACCESS_TOKEN!技能会自动获取 TokenEZVIZ_AUDIO_FILE 或 EZVIZ_TEXT_CONTENT 其中一个support_talk=1或3)python3 {baseDir}/scripts/audio_broadcast.py命令行参数:
# 使用本地音频文件
python3 {baseDir}/scripts/audio_broadcast.py appKey appSecret dev1 /path/to/audio.mp3 [channel_no]
# 使用文本内容(自动生成语音)
python3 {baseDir}/scripts/audio_broadcast.py appKey appSecret dev1 "语音内容文本" [channel_no]1. 获取 Token (appKey + appSecret → accessToken)
↓
2a. 如果提供音频文件:直接上传文件
2b. 如果提供文本:调用TTS生成音频文件,然后上传
↓
3. 下发语音 (accessToken + deviceSerial + fileUrl → 设备播放)
↓
4. 输出结果 (JSON + 控制台)你不需要手动获取或配置 EZVIZ_ACCESS_TOKEN!
技能会自动处理 Token 的获取:
首次运行:
appKey + appSecret → 调用萤石 API → 获取 accessToken (有效期 7 天)
↓
保存到缓存文件(系统临时目录)
↓
后续运行:
检查缓存 Token 是否过期
├─ 未过期 → 直接使用缓存 Token ✅
└─ 已过期 → 重新获取新 TokenToken 管理特性:
EZVIZ_ACCESS_TOKEN 环境变量EZVIZ_TOKEN_CACHE=0 可禁用缓存(每次运行重新获取)======================================================================
Ezviz Audio Broadcast Skill (萤石语音广播)
======================================================================
[Time] 2026-03-16 16:30:00
[INFO] Target devices: 2
- dev1 (Channel: 1)
- dev2 (Channel: 1)
[INFO] Mode: Text-to-Speech
[INFO] Content: 接下来插播一个广告
======================================================================
[Step 1] Getting access token...
[SUCCESS] Token obtained, expires: 2026-03-23 16:30:00
======================================================================
[Step 2] Generating and uploading audio...
[INFO] Generated TTS file: /tmp/ezviz_tts_12345.mp3
[SUCCESS] Audio uploaded successfully!
[INFO] Voice Name: ad_broadcast
[INFO] File URL: https://oss-cn-shenzhen.aliyuncs.com/voice/...
======================================================================
[Step 3] Broadcasting audio to devices...
======================================================================
[Device] dev1 (Channel: 1)
[SUCCESS] Audio broadcast completed!
[Device] dev2 (Channel: 1)
[SUCCESS] Audio broadcast completed!
======================================================================
BROADCAST SUMMARY
======================================================================
Total devices: 2
Success: 2
Failed: 0
======================================================================| 格式 | 示例 | 说明 |
|---|---|---|
| 单设备 | dev1 | 默认通道 1 |
| 多设备 | dev1,dev2,dev3 | 全部使用默认通道 |
| 指定通道 | dev1:1,dev2:2 | 每个设备独立通道 |
| 混合 | dev1,dev2:2,dev3 | 部分指定通道 |
| 接口 | URL | 文档 |
|---|---|---|
| 获取 Token | POST /api/lapp/token/get | https://openai.ys7.com/help/81 |
| 语音上传 | POST /api/lapp/voice/upload | https://openai.ys7.com/help/1241 |
| 语音下发 | POST /api/lapp/voice/send | https://openai.ys7.com/help/1253 |
| 域名 | 用途 |
|---|---|
openai.ys7.com | 萤石开放平台 API(Token、语音上传、下发) |
| 格式 | 支持 | 限制 |
|---|---|---|
| WAV | ✅ | 最大5MB,最长60秒 |
| MP3 | ✅ | 最大5MB,最长60秒 |
| AAC | ✅ | 最大5MB,最长60秒 |
⚠️ 设备兼容性: 设备必须支持对讲功能(support_talk=1或3),否则返回错误码 20015
⚠️ 频率限制: 语音下发接口有调用频率限制,建议设备间间隔1秒以上
⚠️ 文件大小: 音频文件不能超过5MB,时长不能超过60秒
⚠️ Token 安全: Token 缓存到系统临时目录(权限 600),不写入日志,不发送到非萤石端点
⚠️ TTS依赖: 文本转语音功能依赖系统TTS服务,确保系统支持
本技能会向第三方服务发送数据:
| 数据类型 | 发送到 | 用途 | 是否必需 |
|---|---|---|---|
| 音频文件 | openai.ys7.com (萤石) | 语音上传和下发 | ✅ 必需 |
| appKey/appSecret | openai.ys7.com (萤石) | 获取访问 Token | ✅ 必需 |
| 设备序列号 | openai.ys7.com (萤石) | 请求下发 | ✅ 必需 |
| EZVIZ_ACCESS_TOKEN | 自动生成 | 每次运行自动获取 | ✅ 自动 |
数据流出说明:
openai.ys7.com): 所有API调用 - 萤石官方 API凭证权限建议:
本地处理:
| 场景 | 说明 |
|---|---|
| 📢 安全广播 | 向监控区域发送安全提醒、紧急通知 |
| 🏢 办公通知 | 办公室广播会议提醒、访客通知 |
| 🏪 商业应用 | 商店促销广播、排队叫号 |
| 🏠 智能家居 | 家庭语音提醒、门铃通知 |
| 🏭 工厂管理 | 生产线通知、安全警示 |
场景1: 紧急安全通知
python3 audio_broadcast.py your_key your_secret "kitchen_cam,dining_area" "注意!检测到安全隐患,请立即检查!"场景2: 商业促销广播
export EZVIZ_TEXT_CONTENT="欢迎光临!今日特价商品限时优惠,详情请咨询店员!"
export EZVIZ_DEVICE_SERIAL="store_front,store_back"
python3 audio_broadcast.py场景3: 使用预录制音频
python3 audio_broadcast.py your_key your_secret entrance_cam /path/to/welcome_message.mp3| 接口 | URL | 文档 |
|---|---|---|
| 获取 Token | POST /api/lapp/token/get | https://openai.ys7.com/help/81 |
| 语音上传 | POST /api/lapp/voice/upload | https://openai.ys7.com/help/1241 |
| 语音下发 | POST /api/lapp/voice/send | https://openai.ys7.com/help/1253 |
API 域名: https://openai.ys7.com (萤石开放平台)
# 验证域名连通性
curl -I https://openai.ys7.com/api/lapp/token/get
# 检查 SSL 证书
curl -vI https://openai.ys7.com/api/lapp/token/get 2>&1 | grep -A5 "SSL certificate"
# 验证域名所有权(萤石开放平台)
whois ys7.com官方文档: https://open.ys7.com/
技能会读取以下路径中的萤石配置(仅当环境变量未设置时):
~/.openclaw/config.json
~/.openclaw/gateway/config.json
~/.openclaw/channels.json配置格式:
{
"channels": {
"ezviz": {
"appId": "your_app_id",
"appSecret": "your_app_secret",
"domain": "https://openai.ys7.com",
"enabled": true
}
}
}安全建议:
禁用配置文件扫描(环境变量优先):
export EZVIZ_APP_KEY="your_key"
export EZVIZ_APP_SECRET="your_secret"
# 环境变量优先级高于配置文件Python 包:
pip install requests系统工具 (仅 TTS 需要):
say, afconvertespeak, ffmpeg技能通过 subprocess 调用系统 TTS 命令:
# macOS TTS
subprocess.run(['say', '-o', temp_aiff, text_with_pauses], check=True, capture_output=True)
subprocess.run(['afconvert', '-f', 'WAVE', '-d', 'LEI16@44100', temp_aiff, output_path], ...)
# Linux TTS
subprocess.run(['espeak', '-w', output_path, text], check=True, capture_output=True)
subprocess.run(['ffmpeg', '-i', input, '-acodec', 'libmp3lame', output], ...)安全措施 (v1.0.2+):
validate_text_input() 验证;, |, &, $(), 等字符的输入输入验证规则:
| 检查项 | 限制 | 说明 |
|---|---|---|
| 空内容 | ❌ 拒绝 | 文本不能为空 |
| 长度 | ≤500 字符 | 防止过长输入 |
| 危险字符 | ❌ 拒绝 | ;, ` |
| 设备序列号 | 字母数字 | 只允许 A-Za-z0-9_:, |
安全建议:
text_to_speech() 函数不使用 TTS (仅提供音频文件,避免系统命令):
python3 scripts/audio_broadcast.py appKey appSecret deviceSerial --audio-file /path/to/audio.mp3必需环境变量 (在 SKILL.md metadata 中声明):
metadata:
openclaw:
requires:
env: ["EZVIZ_APP_KEY", "EZVIZ_APP_SECRET", "EZVIZ_DEVICE_SERIAL"]⚠️ 注意: 如果 Registry metadata 未显示必需环境变量,以 SKILL.md 为准。
默认行为:
/tmp/ezviz_global_token_cache/global_token_cache.json)缓存位置查询:
# macOS
ls -la /var/folders/*/T/ezviz_global_token_cache/
# Linux
ls -la /tmp/ezviz_global_token_cache/
# 查看缓存内容(脱敏)
cat /tmp/ezviz_global_token_cache/global_token_cache.json⚠️ 潜在风险:
| 风险 | 等级 | 说明 |
|---|---|---|
| Token 明文存储 | 🟡 中 | 文件权限 600,但仍是明文 |
| 跨技能共享 | 🟡 中 | 同一用户的技能可共享 Token |
| 多用户系统 | 🟠 高 | 其他用户可能访问临时目录 |
| 临时目录清理 | 🟢 低 | 系统重启可能清理临时文件 |
禁用缓存 (高安全环境/共享系统):
export EZVIZ_TOKEN_CACHE=0
python3 scripts/audio_broadcast.py ...清除缓存:
# 清除所有缓存 Token
rm -rf /tmp/ezviz_global_token_cache/
# 或使用 Token 管理器
python3 lib/token_manager.py clear安全建议:
| 环境 | 建议 |
|---|---|
| 单用户个人设备 | ✅ 默认缓存安全(文件权限 600) |
| 多用户共享系统 | ⚠️ 设置 EZVIZ_TOKEN_CACHE=0 |
| 高安全环境 | ⚠️ 禁用缓存 + 专用 OS 用户 + 容器隔离 |
| 生产环境 | ⚠️ 容器/VM 隔离 + 禁用缓存 + 密钥管理器 |
⚠️ 早期版本用户必须轮换凭证!
如果您曾经使用过旧版本的 .env 文件:
🚨 您的凭证可能已泄露!
立即执行:
1. 登录 https://openai.ys7.com/
2. 删除旧应用,创建新应用
3. 获取新的 AppKey 和 AppSecret正确做法:
| 数据类型 | 发送到 | 用途 |
|---|---|---|
| AppKey/AppSecret | openai.ys7.com | 获取 Token |
| 设备序列号 | openai.ys7.com | API 调用 |
| 音频文件 | openai.ys7.com | 语音上传 |
推荐审查的文件:
scripts/audio_broadcast.py - 主脚本lib/token_manager.py - Token 管理器代码特点:
requests 库(标准做法)subprocess 带列表参数(减少 shell 注入风险)安装前:
安装时:
EZVIZ_TOKEN_CACHE=0(共享系统/多用户环境)安装后:
根据安全审计建议,请在安装前完成以下检查:
scripts/audio_broadcast.py 和 lib/token_manager.pyopenai.ys7.com 是萤石官方端点~/.openclaw/*.json 中是否有敏感凭证/tmp/ezviz_global_token_cache/ 可接受EZVIZ_APP_KEY 等环境变量EZVIZ_TOKEN_CACHE=0requests 等依赖的安全更新更新日志:
| 日期 | 版本 | 变更 | 说明 |
|---|---|---|---|
| 2026-03-18 | 1.0.3 | 修复 metadata | 添加 config.tokenCache 配置说明 |
| 2026-03-18 | 1.0.3 | 明确缓存行为 | 默认启用缓存,支持 EZVIZ_TOKEN_CACHE=0 禁用 |
| 2026-03-18 | 1.0.2 | 添加输入验证 | validate_text_input() 和 validate_device_serial() |
| 2026-03-18 | 1.0.2 | 添加凭证来源警告 | 从配置文件读取时显示警告 |
| 2026-03-18 | 1.0.2 | 更新 metadata 格式 | 使用 YAML 格式,添加 warnings 字段 |
| 2026-03-18 | 1.0.1 | 修复 Token 缓存 bug | use_cache=None 改为 use_cache=True |
| 2026-03-18 | 1.0.1 | 添加安全审计清单 | 根据安全建议添加完整检查清单 |
| 2026-03-18 | 1.0.1 | 明确配置文件行为 | 说明 ~/.openclaw/*.json 读取逻辑 |
| 2026-03-18 | 1.0.1 | 添加 API 域名验证 | 提供域名和 SSL 验证命令 |
| 2026-03-18 | 1.0.1 | 添加 TTS 安全说明 | 说明 subprocess 调用系统命令的安全措施 |
最后更新: 2026-03-18
版本: 1.0.3 (缓存配置修复版)
技能支持从 OpenClaw 的 channels 配置中自动读取萤石凭证,无需单独设置环境变量。
在 ~/.openclaw/config.json 或 ~/.openclaw/channels.json 中添加:
{
"channels": {
"ezviz": {
"appId": "your_app_id",
"appSecret": "your_app_secret",
"domain": "https://openai.ys7.com",
"enabled": true
}
}
}技能会按以下顺序查找配置文件:
~/.openclaw/config.json~/.openclaw/gateway/config.json~/.openclaw/channels.json凭证获取优先级:
EZVIZ_APP_KEYEZVIZ_APP_SECRETchannels.ezviz.appIdchannels.ezviz.appSecret© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts) in skills/hsa-test2 of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Ezviz Audio Broadcast next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ezviz Audio Broadcast this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~3.6k | Automated safety check: Notes | MIT | |
| HyperFrames Audioheygen-com/hyperframes | 60k | 1 repos | ~6.5k | Automated safety check: Pass | Apache-2.0 | |
| Audio Descriptionsthedaviddias/Front-End-Checklist | 74k | — | ~549 | Automated safety check: Pass | MIT | |
| Venice Audio Musicnexu-io/open-design | 100k | — | ~297 | Automated safety check: Pass | Apache-2.0 | |
| Team AudioDonchitos/Claude-Code-Game-Studios | 26k | — | ~4.4k | Automated safety check: Notes | MIT | |
| Audio EditingZJU-REAL/Easel | 3.4k | — | ~753 | Automated safety check: Pass | Apache-2.0 |
heygen-com/hyperframes
Mixes audio already placed in a HyperFrames composition: fades, gain, ducking under a voiceover, effect chains, automation and shared submix buses.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Provide audio descriptions for video.
nexu-io/open-design
Music generation queueing, retrieval, and completion endpoints via Venice.ai.
Donchitos/Claude-Code-Game-Studios
Orchestrate the audio team — audio-director, sound-designer, technical-artist, gameplay-programmer — direction through implementation.
ZJU-REAL/Easel
通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成 mp3”“调音量/响度”“提取音轨/扒音频”“拼接音频”“淡入淡出”“加速/减速音频”“变速不变调”时使用。与 audio-denoise 的区别:audio-denoise 专做降噪,audio-editing…
mitsuhiko/agent-stuff
Transcribe local audio/video and Apple Voice Memos quickly with cached MLX Whisper models, including bad/low-quality audio.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
萤石语音广播技能。支持本地音频文件上传或文本转语音,实现语音内容下发到设备播放. An agent skill from LeoYeAI/openclaw-master-skills. Ezviz Audio Broadcast is an agent skill from LeoYeAI/openclaw-master-skills.
Ezviz Audio Broadcast fits situations like: : 需要向萤石设备发送语音通知、广播、提醒等音频内容.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a claude-code`. Or copy the skill folder (skills/hsa-test2 in LeoYeAI/openclaw-master-skills) into .claude/skills/ezviz-audio-broadcast in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a codex`. Or copy the skill folder (skills/hsa-test2 in LeoYeAI/openclaw-master-skills) into .agents/skills/ezviz-audio-broadcast in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill ezviz-audio-broadcast -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ezviz-audio-broadcast, .gemini/skills/ezviz-audio-broadcast, .github/skills/ezviz-audio-broadcast and .opencode/skills/ezviz-audio-broadcast in your project.
Going by SKILL.md and its folder, Ezviz Audio Broadcast needs Python for the scripts in its folder, the command-line tools its instructions call (python3, pip and curl) and credentials named EZVIZ_APP_KEY, EZVIZ_APP_SECRET and EZVIZ_ACCESS_TOKEN. Our summary lists: Python 3; A credential in EZVIZ_APP_KEY; A credential in EZVIZ_APP_SECRET.
SKILL.md names 3 domains. In commands or code: openai.ys7.com and oss-cn-shenzhen.aliyuncs.com; the agent is likely to contact these when it follows the instructions. As links in the text: open.ys7.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Ezviz Audio Broadcast is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ezviz Audio Broadcast: HyperFrames Audio (heygen-com/hyperframes, 60k stars), Audio Descriptions (thedaviddias/Front-End-Checklist, 74k stars), Venice Audio Music (nexu-io/open-design, 100k stars) and Team Audio (Donchitos/Claude-Code-Game-Studios, 26k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.