Files
Agentic-Compaction-and-Pipl…/skills/podcast-generate/SKILL.md
Z User 2380d33861 feat: Add complete Agentic Compaction & Pipeline System
- Context Compaction System with token counting and summarization
- Deterministic State Machine for flow control (no LLM decisions)
- Parallel Execution Engine (up to 12 concurrent sessions)
- Event-Driven Coordination via Event Bus
- Agent Workspace Isolation (tools, memory, identity, files)
- YAML Workflow Integration (OpenClaw/Lobster compatible)
- Claude Code integration layer
- Complete demo UI with real-time visualization
- Comprehensive documentation and README

Components:
- agent-system/: Context management, token counting, subagent spawning
- pipeline-system/: State machine, parallel executor, event bus, workflows
- skills/: AI capabilities (LLM, ASR, TTS, VLM, image generation, etc.)
- src/app/: Next.js demo application

Total: ~100KB of production-ready TypeScript code
2026-03-03 12:40:47 +00:00

199 lines
5.4 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: Podcast Generate
description: Generate podcast episodes from user-provided content or by searching the web for specified topics. If user uploads a text file/article, creates a dual-host dialogue podcast (or single-host upon request). If no content is provided, searches the web for information about the user-specified topic and generates a podcast. Duration scales with content size (3-20 minutes, ~240 chars/min). Uses z-ai-web-dev-sdk for LLM script generation and TTS audio synthesis. Outputs both a podcast script (Markdown) and a complete audio file (WAV).
license: MIT
---
# Podcast Generate SkillTypeScript 版本)
根据用户提供的资料或联网搜索结果,自动生成播客脚本与音频。
该 Skill 适用于:
- 长文内容的快速理解和播客化
- 知识型内容的音频化呈现
- 热点话题的深度解读和讨论
- 实时信息的搜索和播客制作
---
## 能力说明
### 本 Skill 可以做什么
- **从文件生成**接收一篇资料txt/md/docx/pdf等文本格式生成对谈播客脚本和音频
- **联网搜索生成**:根据用户指定的主题,联网搜索最新信息,生成播客脚本和音频
- 自动控制时长根据内容长度自动调整3-20 分钟)
- 生成 Markdown 格式的播客脚本(可人工编辑)
- 使用 z-ai TTS 合成高质量音频并拼接为最终播客
### 本 Skill 当前不做什么
- 不生成 mp3 / 字幕 / 时间戳
- 不支持三人及以上播客角色
- 不加入背景音乐或音效
---
## 文件与职责说明
本 Skill 由以下文件组成:
- `generate.ts`
统一入口(支持文件模式和搜索模式)
- **文件模式**:读取用户上传的文本文件 → 生成播客
- **搜索模式**:调用 web-search skill 获取资料 → 生成播客
- 使用 z-ai-web-dev-sdk 进行 LLM 脚本生成
- 使用 z-ai-web-dev-sdk 进行 TTS 音频生成
- 自动拼接音频片段
- 只输出最终文件
- `readme.md`
使用说明文档
- `SKILL.md`
当前文件,描述 Skill 能力、边界与使用约定
- `package.json`
Node.js 项目配置与依赖
- `tsconfig.json`
TypeScript 编译配置
---
## 输入与输出约定
### 输入(二选一)
**方式 1文件上传**
- 一篇资料文件txt / md / docx / pdf 等文本格式)
- 资料长度不限Skill 会自动压缩为合适长度
**方式 2联网搜索**
- 用户指定一个搜索主题
- 自动调用 web-search skill 获取相关内容
- 整合多个搜索结果作为资料来源
### 输出(只输出 2 个文件)
- `podcast_script.md`
播客脚本Markdown 格式,可人工编辑)
- `podcast.wav`
最终拼接完成的播客音频
**不输出中间文件**(如 segments.jsonl、meta.json 等)
---
## 运行方式
### 依赖环境
- Node.js 18+
- z-ai-web-dev-sdk已安装
- web-search skill用于联网搜索模式
**不需要** z-ai CLI
### 安装依赖
```bash
npm install
```
---
## 使用示例
### 从文件生成播客
```bash
npm run generate -- --input=test_data/material.txt --out_dir=out
```
### 联网搜索生成播客
```bash
# 根据主题搜索并生成播客
npm run generate -- --topic="最新AI技术突破" --out_dir=out
# 指定搜索主题和时长
npm run generate -- --topic="量子计算应用场景" --out_dir=out --duration=8
# 搜索并生成单人播客
npm run generate -- --topic="气候变化影响" --out_dir=out --mode=single-male
```
---
## 参数说明
| 参数 | 说明 | 默认值 |
|------|------|--------|
| `--input` | 输入资料文件路径(与 --topic 二选一) | - |
| `--topic` | 搜索主题关键词(与 --input 二选一) | - |
| `--out_dir` | 输出目录(必需) | - |
| `--mode` | 播客模式dual / single-male / single-female | dual |
| `--duration` | 手动指定分钟数3-200 表示自动 | 0 |
| `--host_name` | 主持人/主播名称 | 小谱 |
| `--guest_name` | 嘉宾名称 | 锤锤 |
| `--voice_host` | 主持音色 | xiaochen |
| `--voice_guest` | 嘉宾音色 | chuichui |
| `--speed` | 语速0.5-2.0 | 1.0 |
| `--pause_ms` | 段间停顿毫秒数 | 200 |
---
## 可用音色
| 音色 | 特点 |
|------|------|
| xiaochen | 沉稳专业 |
| chuichui | 活泼可爱 |
| tongtong | 温暖亲切 |
| jam | 英音绅士 |
| kazi | 清晰标准 |
| douji | 自然流畅 |
| luodo | 富有感染力 |
---
## 技术架构
### generate.ts统一入口
- **文件模式**:读取用户上传文件 → 生成播客
- **搜索模式**:调用 web-search skill → 获取资料 → 生成播客
- **LLM**:使用 `z-ai-web-dev-sdk` (`chat.completions.create`)
- **TTS**:使用 `z-ai-web-dev-sdk` (`audio.tts.create`)
- **不需要** z-ai CLI
- 自动拼接音频片段
- 只输出最终文件,中间文件自动清理
### LLM 调用
- System prompt播客脚本编剧角色
- User prompt包含资料 + 硬性约束 + 呼吸感要求
- 输出校验:字数、结构、角色标签
- 自动重试:最多 3 次
### TTS 调用
- 使用 `zai.audio.tts.create()`
- 支持自定义音色、语速
- 自动拼接多个 wav 片段
- 临时文件自动清理
---
## 输出示例
### podcast_script.md片段
```markdown
**小谱**:大家好,欢迎收听今天的播客。今天我们来聊一个有趣的话题……
**锤锤**:是啊,这个话题真的很有意思。我最近也在关注……
**小谱**:说到这里,我想给大家举个例子……
```
---
## License
MIT