Skill: zlszhonglongshen/ai-research-podcast (version 1.0.0)

--- name: AI 研报速读播客 description: 当用户说：- "把这篇研报转成音频"- "帮我听听这篇文章"- "生成播客版本" category: 图像 triggers: --- # AI 研报速读播客 将研报、长文、技术文档自动转化为可收听的播客音频。 ## 触发条件 当用户说： - "把这篇研报转成音频" - "帮我听听这篇文章" - "生成播客版本" - "URL 转语音" - "研报速读" ## 执行流程 ### 1. 内容抓取与摘要 使用 `summarize` 技能： ```bash summarize "<source>" --max-length 500 --output /tmp/summary.md ``` 支持的输入源： - HTTP/HTTPS URL - 本地 PDF 文件 - 本地 Markdown/文本文件 - 直接粘贴的文本 ### 2. 语音合成 使用 `sherpa-onnx-tts` 技能： ```bash sherpa-onnx-tts \ --input /tmp/summary.md \ --output /tmp/podcast.mp3 \ --voice zh_CN-female \ --speed 1.0 ``` 可选参数： - `--voice`: 音色选择 - `--speed`: 语速 (0.5-2.0) - `--output-format`: mp3/wav ### 3. 推送通知（可选） 如果用户指定推送渠道： ```bash # Feishu message --target feishu --file /tmp/podcast.mp3 --text "AI 研报速读" # 微信 message --target wechat --file /tmp/podcast.mp3 ``` ## 示例对话 **用户**: 帮我把这篇论文转成音频 https://arxiv.org/abs/2401.12345 **Agent**: 1. 抓取论文内容并生成摘要... 2. 将摘要转为语音播客... 3. 完成！音频文件：`/tmp/podcast_2401.12345.mp3` (时长 3:42) **用户**: 每天早上 8 点自动推送最新的 AI 论文音频 **Agent**: 好的，已设置定时任务。每天 8:00 会自动： 1. 抓取 arXiv cs.AI 最新论文 2. 生成摘要并转音频 3. 推送到你的飞书 ## 注意事项 - sherpa-onnx 需要首次下载语音模型（约 100MB） - 离线模式，无需联网，隐私安全 - 建议摘要长度控制在 300-800 字，音频时长 2-5 分钟

path: README.md
content: # AI 研报速读播客

> 将研报/长文自动转化为可收听的播客音频

## 业务场景

**痛点**：
- 每天大量研报、长文、技术文档，根本看不过来
- 通勤、运动、做家务时想"听"内容学习
- 传统 TTS 依赖云端，隐私泄露风险
- 人工摘要费时费力，错过关键信息

**解决方案**：一键将任意研报/URL 转化为自然语音播客

## Skill 编排图谱

```
┌─────────────────────────────────────────────────────────────┐
│                    AI 研报速读播客                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────┐    ┌──────────────┐    ┌──────────────────┐   │
│  │ 输入源  │    │   处理引擎   │    │    输出通道      │   │
│  ├─────────┤    ├──────────────┤    ├──────────────────┤   │
│  │ • URL   │───▶│ 1.summarize  │───▶│ • 本地音频文件   │   │
│  │ • PDF   │    │   (内容抓取  │    │ • Feishu 推送   │   │
│  │ • 文本  │    │   + 摘要)    │    │ • 微信推送      │   │
│  └─────────┘    │              │    │ • 邮件发送      │   │
│                 │ 2.sherpa-    │    └──────────────────┘   │
│                 │   onnx-tts   │                           │
│                 │   (离线TTS)  │                           │
│                 └──────────────┘                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

## 参与技能

| Skill | 作用 | 来源 |
|-------|------|------|
| **summarize** | 抓取 URL/PDF 内容并生成摘要 | 本地 skills/summarize |
| **sherpa-onnx-tts** | 离线语音合成，无需云端 API | steipete/clawdis |
| **message** | 推送音频到指定渠道 | OpenClaw 内置 |

## 使用示例

### 基础用法

```
用户: 帮我把这篇研报转成音频
URL: https://example.com/ai-trend-report-2026.pdf

Agent 执行:
1. summarize 抓取 PDF 并生成 500 字摘要
2. sherpa-onnx-tts 将摘要转为 MP3
3. 返回音频文件路径或直接推送
```

### 进阶用法

```
用户: 每天早上 8 点把 AI 领域最新论文转成音频推给我

Agent 执行:
1. 设置 cron 定时任务
2. 定时触发: arxiv 搜索 → summarize → tts → message 推送
```

### 完整工作流

```bash
# Step 1: 抓取并摘要
summarize https://arxiv.org/abs/2401.xxxxx --output report.md

# Step 2: 生成音频
sherpa-onnx-tts --input report.md --output podcast.mp3 --voice zh_CN-female

# Step 3: 推送 (可选)
message --target feishu --file podcast.mp3 --text "今日 AI 研报速读"
```

## 配置说明

### 依赖安装

```bash
# summarize CLI
npm install -g @openclaw/summarize-cli

# sherpa-onnx TTS
pip install sherpa-onnx
# 或使用预编译版本
brew install sherpa-onnx  # macOS
```

### 音色选择

| 音色 ID | 描述 |
|---------|------|
| `zh_CN-female` | 中文女声（默认） |
| `zh_CN-male` | 中文男声 |
| `en_US-female` | 英文女声 |
| `en_US-male` | 英文男声 |

## 输出格式

- **格式**: MP3 / WAV
- **码率**: 128kbps (可配置)
- **采样率**: 16000Hz
- **文件大小**: 约 1MB / 分钟

## 扩展场景

1. **技术博客速听**: 每日自动抓取指定博客并转音频
2. **会议纪要播报**: 会议记录 → 摘要 → 语音通知
3. **新闻简报**: 多源聚合 → 综合摘要 → 早间播客
4. **学习笔记复习**: 笔记 → TTS → 睡前复习

## 技术亮点

- **完全离线**: sherpa-onnx 无需联网，隐私安全
- **低成本**: 无 API 调用费用
- **可定制**: 支持自定义音色、语速、停顿
- **跨平台**: Linux / macOS / Windows 均可运行

---

**创建时间**: 2026-03-24
**版本**: v1.0.0
**作者**: OpenClaw Agent

path: workflow.json
content: {
  "name": "ai-research-podcast",
  "version": "1.0.0",
  "description": "将研报/长文自动转化为可收听的播客音频",
  "author": "OpenClaw Agent",
  "created_at": "2026-03-24",
  "category": "productivity",
  "tags": ["tts", "summarize", "podcast", "research", "audio", "offline"],

  "triggers": {
    "manual": {
      "description": "手动触发：用户提供 URL 或文件",
      "input": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "description": "URL、文件路径或直接文本"
          },
          "voice": {
            "type": "string",
            "enum": ["zh_CN-female", "zh_CN-male", "en_US-female", "en_US-male"],
            "default": "zh_CN-female"
          },
          "push_to": {
            "type": "string",
            "enum": ["none", "feishu", "wechat", "email"],
            "default": "none"
          }
        },
        "required": ["source"]
      }
    },
    "scheduled": {
      "description": "定时触发：每日自动抓取并转换",
      "cron": "0 8 * * *",
      "config": {
        "sources": ["https://arxiv.org/list/cs.AI/recent"],
        "push_to": "feishu"
      }
    }
  },

  "skills": [
    {
      "id": "summarize",
      "source": "local",
      "path": "~/.openclaw/workspace/skills/summarize",
      "role": "content-processor",
      "description": "抓取 URL/PDF 内容并生成结构化摘要",
      "inputs": ["source"],
      "outputs": ["summary_text", "summary_file"]
    },
    {
      "id": "sherpa-onnx-tts",
      "source": "clawhub",
      "clawhub_id": "steipete/clawdis/sherpa-onnx-tts",
      "role": "audio-generator",
      "description": "离线 TTS 语音合成",
      "inputs": ["summary_text", "voice"],
      "outputs": ["audio_file"]
    },
    {
      "id": "message",
      "source": "builtin",
      "role": "notifier",
      "description": "推送音频到指定渠道",
      "inputs": ["audio_file", "push_to"],
      "outputs": ["delivery_status"]
    }
  ],

  "workflow": {
    "steps": [
      {
        "id": "fetch_and_summarize",
        "skill": "summarize",
        "config": {
          "max_length": 500,
          "format": "markdown"
        },
        "on_error": "abort"
      },
      {
        "id": "generate_audio",
        "skill": "sherpa-onnx-tts",
        "config": {
          "output_format": "mp3",
          "bitrate": "128k"
        },
        "depends_on": ["fetch_and_summarize"],
        "on_error": "retry"
      },
      {
        "id": "deliver",
        "skill": "message",
        "condition": "${push_to} != 'none'",
        "depends_on": ["generate_audio"],
        "on_error": "continue"
      }
    ]
  },

  "output": {
    "audio_file": "${generate_audio.outputs.audio_file}",
    "duration_seconds": "${generate_audio.outputs.duration}",
    "summary": "${fetch_and_summarize.outputs.summary_text}"
  }
}

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)