Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计通过

weather-broadcast天气预报

Agent Skill

weather-broadcast 用于处理音频、语音、转写和声音素材相关任务,适合在 OpenClaw 中需要整理音频流程、转写内容或生成配音素材时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

6,690

周安装

276

GitHub Stars

公开资料未说明

下载量

2,186
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:weather-broadcast(天气预报)
来源仓库:https://github.com/scikkk/weather-broadcast
安装命令:
openclaw skills install weather-broadcast
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install weather-broadcast

简介

用于将天气信息转换为语音广播输出。

  • 适合需要播报天气的物联网设备或语音助手场景。
  • 集成 SenseAudio TTS 技术,支持自然语音合成。
  • 需配置音频输出权限和设备兼容性。weather-broadcast 属于开发类 Skill,可作为该场景下的辅助能力补充。
  • 建议在本地或受控环境中运行,避免意外外放。

SKILL.md

name
senseaudio-weather-broadcast
description
Fetch weather data and generate a spoken weather broadcast using SenseAudio TTS.
metadata
openclaw
emoji
🌤️
requires
env
bins
primaryEnv
SENSEAUDIO_API_KEY
homepage
https://senseaudio.cn/docs

Weather Broadcast / 天气播报

Fetch real-time weather data and generate a natural-sounding weather broadcast audio using SenseAudio TTS.

获取实时天气数据,并使用 SenseAudio TTS 生成自然流畅的天气播报音频。

Quick Start / 快速开始

1. Get Weather + Generate Broadcast / 获取天气并生成播报

# Set your API key / 设置 API 密钥
export SENSEAUDIO_API_KEY="your_api_key"

# Fetch weather and generate broadcast for Beijing / 获取北京天气并生成播报
CITY="Beijing"
WEATHER=$(curl -s "wttr.in/${CITY}?format=%l:+%c+%t+%h+%w&lang=zh")

# Generate broadcast text / 生成播报文本
BROADCAST_TEXT="天气播报:${WEATHER}。祝您出行愉快!"

# Call SenseAudio TTS / 调用 SenseAudio TTS
curl -X POST https://api.senseaudio.cn/v1/t2a_v2 \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"SenseAudio-TTS-1.0\",
    \"text\": \"$BROADCAST_TEXT\",
    \"stream\": false,
    \"voice_setting\": {
      \"voice_id\": \"male_0004_a\",
      \"speed\": 0.95
    },
    \"audio_setting\": {
      \"format\": \"mp3\",
      \"sample_rate\": 32000
    }
  }" -o response.json

# Extract and save audio / 提取并保存音频
jq -r '.data.audio' response.json | xxd -r -p > weather_broadcast.mp3

Weather Data Sources / 天气数据源

wttr.in (Primary / 主要)

Free weather service, no API key required. / 免费天气服务,无需 API 密钥。

# Quick one-liner / 快速查询
curl -s "wttr.in/Shanghai?format=3"
# Output: Shanghai: ⛅️ +18°C

# Detailed format / 详细格式
curl -s "wttr.in/Shanghai?format=%l:+%c+%t+%h+%w"
# Output: Shanghai: ⛅️ +18°C 65% ↙12km/h

# Chinese output / 中文输出
curl -s "wttr.in/上海?lang=zh&format=3"

Format codes / 格式代码:

  • %c condition / 天气状况
  • %t temperature / 温度
  • %h humidity / 湿度
  • %w wind / 风速
  • %l location / 地点
  • %m moon phase / 月相

Options / 选项:

  • ?lang=zh Chinese / 中文
  • ?m metric / 公制
  • ?1 today only / 仅今天
  • ?0 current only / 仅当前

Open-Meteo (Fallback / 备用)

Free JSON API for programmatic use. / 免费 JSON API,适合程序化使用。

# Get coordinates first, then query / 先获取坐标,再查询
# Beijing: 39.9, 116.4
curl -s "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4&current_weather=true"

Complete Python Example / 完整 Python 示例

import requests
import os

SENSEAUDIO_API_KEY = os.environ.get("SENSEAUDIO_API_KEY")
TTS_URL = "https://api.senseaudio.cn/v1/t2a_v2"

def get_weather(city: str, lang: str = "zh") -> str:
    """Fetch weather from wttr.in / 从 wttr.in 获取天气"""
    url = f"https://wttr.in/{city}?format=%l:+%c+%t+%h+%w&lang={lang}"
    resp = requests.get(url, timeout=10)
    return resp.text.strip()

def generate_broadcast_text(weather: str, lang: str = "zh") -> str:
    """Generate broadcast script / 生成播报文本"""
    if lang == "zh":
        return f"天气播报:{weather}。<break time=300>请根据天气情况合理安排出行,祝您生活愉快!"
    else:
        return f"Weather report: {weather}. <break time=300>Please plan your day accordingly. Have a great day!"

def text_to_speech(text: str, output_file: str = "weather_broadcast.mp3", voice_id: str = "male_0004_a"):
    """Convert text to speech using SenseAudio TTS / 使用 SenseAudio TTS 转换文本为语音"""
    headers = {
        "Authorization": f"Bearer {SENSEAUDIO_API_KEY}",
        "Content-Type": "application/json"
    }
    payload = {
        "model": "SenseAudio-TTS-1.0",
        "text": text,
        "stream": False,
        "voice_setting": {
            "voice_id": voice_id,
            "speed": 0.95,
            "vol": 1.0,
            "pitch": 0
        },
        "audio_setting": {
            "format": "mp3",
            "sample_rate": 32000
        }
    }

    resp = requests.post(TTS_URL, json=payload, headers=headers, timeout=30)
    result = resp.json()

    if result.get("data") and result["data"].get("audio"):
        audio_bytes = bytes.fromhex(result["data"]["audio"])
        with open(output_file, "wb") as f:
            f.write(audio_bytes)
        print(f"Audio saved: {output_file}")
        print(f"Duration: {result['extra_info']['audio_length']}ms")
        return output_file
    else:
        raise Exception(f"TTS failed: {result.get('base_resp', {}).get('status_msg', 'Unknown error')}")

def weather_broadcast(city: str, output_file: str = "weather_broadcast.mp3", lang: str = "zh"):
    """Main function: fetch weather and generate broadcast / 主函数:获取天气并生成播报"""
    print(f"Fetching weather for {city}...")
    weather = get_weather(city, lang)
    print(f"Weather: {weather}")

    broadcast_text = generate_broadcast_text(weather, lang)
    print(f"Broadcast text: {broadcast_text}")

    print("Generating audio...")
    return text_to_speech(broadcast_text, output_file)

if __name__ == "__main__":
    # Example usage / 示例用法
    weather_broadcast("Beijing", "beijing_weather.mp3", "zh")
    # weather_broadcast("London", "london_weather.mp3", "en")

Voice Options / 音色选项

Voice IDDescription / 描述Style / 风格
male_0004_aWarm male / 温暖男声News anchor / 新闻主播
female_0001_aSweet female / 甜美女声Friendly / 亲切

See SenseAudio Voice List for all available voices.

查看 SenseAudio 音色列表 获取所有可用音色。

TTS Parameters / TTS 参数

Parameter / 参数Type / 类型Default / 默认Range / 范围Description / 描述
speedfloat1.00.5-2.0Speech rate / 语速
volfloat1.00-10Volume / 音量
pitchint0-12 to 12Pitch adjustment / 音调

Audio Output / 音频输出

Format / 格式Sample Rate / 采样率Use Case / 适用场景
mp332000General use / 通用
wav48000High quality / 高品质
pcm16000IoT devices / 物联网设备

Tips / 提示

  1. Use <break time=500> to add pauses in broadcast / 使用 <break time=500> 在播报中添加停顿
  2. Set speed: 0.95 for clearer broadcast / 设置 speed: 0.95 使播报更清晰
  3. URL-encode city names with spaces: New+York / 城市名有空格时需 URL 编码
  4. Use ?lang=zh for Chinese weather descriptions / 使用 ?lang=zh 获取中文天气描述

Error Handling / 错误处理

try:
    weather_broadcast("Beijing")
except requests.exceptions.Timeout:
    print("Request timeout, please retry")
except Exception as e:
    print(f"Error: {e}")

Related / 相关资源

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

80.46%
按下载量换算1,759

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills