# Roadshow Notes

> 将手机录音自动转录并生成专业投资路演/调研纪要，保存到Obsidian。扫描录音文件夹的新录音，Whisper转写后由Claude生成结构化纪要（含Q&A结构+Alpha派公司背景）。

- Skill: `wupfagi/roadshow-notes` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add wupfagi/roadshow-notes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wupfagi/roadshow-notes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wupfagi (https://skillmd.com/u/wupfagi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wupfagi/roadshow-notes

---


将录音转成专业投资纪要。参数（可选，指定文件名）：$ARGUMENTS

## 执行步骤

### Step 1 — 找到待处理录音，合并多段

```bash
AUDIO_DIR="/Users/wupfagi/Documents/投研数据/录音"
DONE_DIR="$AUDIO_DIR/.done"
mkdir -p "$DONE_DIR"

# 列出所有未处理的录音（.m4a / .mp3 / .wav）
find "$AUDIO_DIR" -maxdepth 1 -type f \( -name "*.m4a" -o -name "*.mp3" -o -name "*.wav" \) | sort
```

若参数指定了文件名，只处理该文件；否则处理所有找到的文件。
若无新文件，输出「录音文件夹为空，无需处理」并退出。

**多段录音合并检测**：文件名前缀相同的录音视为同一场路演的多段（如 `方邦260319_1.m4a`、`方邦260319_2.m4a`，或 `方邦260319.m4a`、`方邦260319_续.m4a`）。检测规则：去掉尾部数字/`_续`/`_part`后前缀相同，且录音日期相同。合并处理：分别转录后，将转录文本按顺序拼接，加分隔线 `--- [第2段] ---`，作为一份完整转录稿生成一份纪要。

---

### Step 2 — Whisper 转录

对每个录音文件执行（使用 large 模型，专业术语识别更准）：

```bash
/usr/bin/python3 /Users/wupfagi/.claude/skills/roadshow-notes/transcribe.py \
  "{录音文件路径}" --model large
```

- 转录结果自动保存为同目录下的 `.txt` 文件
- 如转录失败（文件损坏/格式不支持），跳过并提示

转录完成后，读取 `.txt` 文件内容。

---

### Step 3 — 提取元信息

从文件名和转录内容中推断：

| 字段 | 来源 |
|------|------|
| 公司名称 | 文件名（如 `方邦260319.m4a` → 方邦） |
| 股票代码 | 从转录内容或公司名推断（如能识别） |
| 录音日期 | 文件名中的日期（`260319` → 2026-03-19），或文件修改时间 |
| 受访人 | 从转录内容开头识别（如"凯总"、"董秘"、"CEO"等） |
| 参与方 | 从转录内容识别提问方 |

---

### Step 4 — Alpha派查询公司基本面背景

用公司名查询基本面背景，补充纪要上下文：

```bash
/usr/bin/python3 /Users/wupfagi/.claude/skills/alphapai-research/scripts/alphapai_client.py \
  qa --mode Think \
  --question "{公司名称}的主营业务、核心产品、近期业绩情况和主要竞争对手是什么？"
```

查询结果用于：
1. 辅助 Claude 理解转录中的专业术语和业务背景
2. 在纪要中补充「公司基本面背景」章节

---

### Step 5 — 生成投资纪要

综合转录稿 + Alpha派背景，生成结构化纪要。

**Q&A结构识别**：转录稿中区分提问方（买方/研究员）和受访人（公司/董秘），按以下格式重组关键问答：

```
**Q：{提问内容}**
> A：{受访人回答要点}
```

对话区分规则：语气词"我们""公司""我"通常是受访人；"请问""您觉得""能否介绍"通常是提问方。无法区分时按叙述体处理。

**完整纪要模板**：

```markdown
# {公司全称} 投研路演纪要

**公司：** {公司全称}
**路演日期：** {YYYY年M月D日}
**录音文件：** {原始文件名}
**受访人：** {受访人}
**参与方：** {参与方}
**整理日期：** {今日日期}

---

## 零、公司基本面背景
[来自Alpha派，3-5句话：主营/产品/近期业绩/主要竞争对手]

---

## 一、整体业绩目标与核心指引
[表格或要点，提炼核心数字和指引]

## 二、各业务板块拆解
[按产品线/业务分段，含目标、客户、节奏、竞争格局]

### 关键问答
**Q：{关键问题}**
> A：{要点回答}

## 三、关键时间节点
| 时间 | 事件 |
|------|------|

## 四、核心投资逻辑
[编号列出，每条一句话]

## 五、主要风险点
| 风险 | 说明 |
|------|------|

## 六、其他重要信息
[人才、战略、竞争对手等]

## 补充说明
[录音不清晰或存疑的内容，标注为[疑似XXX]，列出需后续核实的点]

---
*本纪要根据录音转录文字整理，部分专有名词依据上下文推断，已用[疑似XXX]标注。投资决策请以公司正式公告及实地调研为准。*
```

**生成要求**：
- 专有名词若发音不清晰，用`[疑似XXX]`标注
- 数字、时间节点、百分比等关键数据必须准确提炼，不得遗漏
- 竞争格局、客户动态、价格信息重点保留
- 保密信息按受访人原意处理
- 语言简洁专业，避免冗余

---

### Step 6 — 保存纪要

```bash
NOTES_DIR="/Users/wupfagi/Documents/投研数据/路演纪要"
mkdir -p "$NOTES_DIR"
OUTFILE="$NOTES_DIR/路演纪要_{公司名}_{录音日期}.md"
```

将生成的纪要写入 `$OUTFILE`。

---

### Step 6.5 — 待核实清单提取

从纪要「补充说明」章节中，提取所有 `[疑似XXX]` 标注和明确标记为「待核实」的内容，追加到统一清单：

```bash
CHECKLIST="/Users/wupfagi/Documents/投研数据/待核实清单.md"
```

追加格式：
```markdown
## {公司名} — {录音日期}（来源：{纪要文件名}）

- [ ] [疑似XXX] → 待核实：{原文上下文一句话}
- [ ] {其他待核实项}
```

若清单文件不存在则新建，已有同公司同日期的条目则追加而非覆盖。

---

### Step 6.7 — 自动关联线索池

```bash
CLUE_POOL="/Users/wupfagi/Documents/投研数据/缠论分析/线索池.md"
```

读取线索池，检查当前公司名或代码是否已在其中：

- **在线索池中**：在对应行追加「📋 已路演 {录音日期}」，并按以下规则更新状态：
  - 「观察中」或「等待入场」→ 升级为「深研中」
  - 「已入场」→ 只追加路演记录，**不改变状态**（持仓期间的路演信息仅作记录）
  - 「深研中」或「已退出」→ 只追加路演记录，不改状态
- **不在线索池中**：在纪要末尾追加提示 `> 💡 该公司不在当前线索池，如有意向可运行 /decision-log 建档`

---

### Step 7 — 归档录音

```bash
# 将已处理的录音和转录txt移入.done
mv "{录音文件路径}" "$DONE_DIR/"
mv "{转录txt路径}" "$DONE_DIR/"
```

---

### Step 8 — 输出汇总

```
✅ 处理完成
   录音：{文件名}
   纪要：{输出路径}

📋 关键提炼：
   - {1-3句话概括本次路演最重要的信息}
```

若处理多个文件，逐一汇报。

声明：本纪要仅供投研参考，不构成投资建议。

