docs(03): capture phase context

This commit is contained in:
2026-03-13 18:49:57 +08:00
parent cfd61d6cf6
commit 2148f1632a
@@ -0,0 +1,98 @@
# Phase 3: Processing Skills - Context
**Gathered:** 2026-03-13
**Status:** Ready for planning
<domain>
## Phase Boundary
集成 ASR 处理能力,支持视频内容的多模态文字提取。将现有分散的 ASR 工具(B站字幕下载、Whisper.cpp、FunASR)整合为统一的管道步骤,与 Phase 2 的内容获取能力衔接。
**明确排除**:OCR 处理不需要集成。
</domain>
<decisions>
## Implementation Decisions
### ASR 引擎选择策略
- **优先级顺序**:B站官方字幕 → Whisper.cpp 本地识别
- 官方字幕质量最高且无计算成本,优先使用
- 无官方字幕时,默认使用 Whisper.cpp 进行语音识别
- FunASR 保留作为备选,不作为默认选项
### 说话者分离
- HF_TOKEN 配置时自动启用带说话者分离的 Whisper(pyannote.audio)
- 无需显式参数控制,根据环境变量自动判断
- 说话者分离结果合并到标准输出格式中
### 输出格式
- 保留全部格式:txt(纯文本)+ srt(字幕)+ json(结构化数据)
- 与现有 ASR 工具输出保持一致
- JSON 包含 segments(带时间戳的分段)和完整文本
### OCR 处理
- **不集成 OCR 功能**
- Phase 3 专注于 ASR/字幕处理
- OCR 相关计划(03-02)移除
### 工作流集成
- ASR 作为管道步骤执行,完成后记录到 workflow_state.json
- B站字幕下载集成到 ASR 步骤(统一入口:先尝试官方字幕,无则 ASR)
- 输出文件与内容放在同一目录,不创建子目录
### Schema 复用
- 复用 Phase 1 定义的 StepInput/StepOutput 格式
- ASR 输出符合统一的 JSON Schema 规范
- 包含 success、tool、segments、text 等标准字段
### Claude's Discretion
- Whisper 模型默认选择(base/small/medium)
- 重试机制的具体参数(继承 Phase 1 的 tenacity 配置)
- 音频转换的临时文件处理策略
</decisions>
<specifics>
## Specific Ideas
- "官方字幕质量最高,优先使用" — 无需计算资源,直接复用
- "HF_TOKEN 配置时自动启用说话者分离" — 无需用户手动指定
- 输出与内容同目录,保持文件组织简洁
</specifics>
<code_context>
## Existing Code Insights
### Reusable Assets
- `kb-whisper/whisper.py`: Whisper.cpp 封装,已支持 txt/srt/json 输出,可直接复用核心逻辑
- `kb-whisper-diarization/whisper_diarization.py`: 说话者分离实现,pyannote.audio 集成
- `kb-funasr/funasr_tool.py`: FunASR 中文识别,备选方案
- Phase 1 的 Schema 体系:StepInput/StepOutput 定义,状态管理基础设施
### Established Patterns
- CLI + JSON 输出模式:所有工具统一使用 `{"success": true/false, ...}` 格式
- 音频转换流程:ffmpeg 转 16kHz WAV → ASR 处理 → 清理临时文件
- 环境变量配置:从 ~/.kb_env 加载,pydantic-settings 管理
### Integration Points
- Phase 2 内容目录:ASR 输出写入同一目录
- workflow_state.json:ASR 步骤状态记录
- B站内容下载器:需要添加官方字幕下载接口
</code_context>
<deferred>
## Deferred Ideas
- OCR 视频帧文字识别 — 不需要,明确排除
- 进度可见性(实时显示 ASR 进度)— v2 需求
- 并行 ASR 处理 — v2 需求
</deferred>
---
*Phase: 03-processing-skills*
*Context gathered: 2026-03-13*