Skip to content

Commit 5cb10cc

Browse files
committed
fix(window-recognition): iqiyi/youku 移入娱乐负分(对齐设计文档 §3.2);追加沉底用例
1 parent c0aeeb1 commit 5cb10cc

10 files changed

Lines changed: 60 additions & 6 deletions

File tree

‎client/electron/windowRules.test.ts‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ describe('scoreWindow — 双向计分', () => {
3232
const r = scoreWindow({ title: '琅琊榜 第12集', processName: 'chrome.exe' });
3333
expect(r.score).toBeLessThanOrEqual(20);
3434
});
35+
it('影视客户端进程 -30 + 标题 -40 → 沉底(设计文档 §3.2 示例)', () => {
36+
const r = scoreWindow({ title: '琅琊榜 第12集', processName: 'iqiyi.exe' });
37+
expect(r.score).toBeLessThanOrEqual(-50);
38+
expect(r.filtered).toBe(false);
39+
});
3540
it('攻略正信号强过娱乐负分:游戏攻略可进推荐', () => {
3641
const r = scoreWindow({ title: '只狼全 Boss 打法教学', processName: 'steam.exe' });
3742
expect(r.score).toBeGreaterThanOrEqual(30); // +60 -30

‎client/electron/windowRules.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ const ENTERTAINMENT_TITLE_RE = /第\s*\d+\s*集|剧场版|预告片|\bmv\b|演
7878
/** 进程白名单(+50:会议/视频站客户端) */
7979
const PROCESS_HIGH_WHITELIST = new Set([
8080
'wemeet.exe', 'dingtalk.exe', 'zoom.exe', 'teams.exe', 'webex.exe',
81-
'bilibili.exe', 'bililive.exe', 'youku.exe', 'iqiyi.exe',
81+
'bilibili.exe', 'bililive.exe',
8282
]);
8383

8484
/** 进程白名单(+25:浏览器/播放器) */
@@ -92,6 +92,7 @@ const PROCESS_ENTERTAINMENT = new Set([
9292
'steam.exe', 'wegame.exe', 'leagueclient.exe', 'league of legends.exe',
9393
'gta5.exe', 'dota2.exe', 'csgo.exe', 'valorant.exe', 'genshinimpact.exe',
9494
'douyu.exe', 'huya.exe', 'netflix.exe', 'mangotv.exe',
95+
'youku.exe', 'iqiyi.exe',
9596
]);
9697

9798
/** 系统窗口进程黑名单(硬过滤) */

‎client/scripts/asr-eval/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ LOCAL_ASR_MODEL_DIR=... node scripts/asr-eval/eval.mjs --local
2929

3030
## 语料
3131

32-
见 `corpus/README.md`(清单入库、音频与转写不入库)。基线报告见 `docs/asr-eval-baseline/`。
32+
见 `corpus/README.md`(清单入库、音频与转写不入库)。基线报告产出后归档至 `docs/archive/`(机制见 docs/archive/README.md);历史基线:`docs/archive/2026-08-16/BASELINE-2026-08-16.md`。

‎docs/archive/2026-08-16/2026-08-16-classroom-recognition-upgrade.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
> - ✅ P0(7/7):评估基线 / Silero VAD / 置信度 / 离线ASR重复修复 / CPU优化 / 准确率即时提升 / 统计面板
55
> - ✅ P1(9/9):两遍重打分 / 动态热词闭环 / 修正回写 / 说话人手动重识别 / 中英混说spike / 内容分类 / 指令补帧 / 漏捕检测+手动补截 / 实时截图流
66
> - ✅ P2(8/8 按交付口径):本地OCR骨架(推理管线待模型环境联调,见集成文档)/ 公式引擎与版面(集成文档化)/ 采集期时间轴对齐 / VLM分类(规则版达标+接入路径文档化)/ 区域监测(安全评审路径文档化)/ 步骤化笔记 / 步骤复习联动
7-
> - ✅ 六项审查:见 `docs/knowledge/solutions/2026-08-classroom-recognition-review.md`(6 项发现已修复,3 项遗留观察备案)
7+
> - ✅ 六项审查:见 `docs/archive/2026-08-16/2026-08-classroom-recognition-review.md`(6 项发现已修复,3 项遗留观察备案)
88
> - 实施偏差记录:P0-4「剩余样本续喂」经分析不成立(端点命中块为静音块),实际修复为端点规则调优+重建流+跨final去重;P1-5 spike 结论为「本地双语模型混说已具备,缺口是基线验证」
99
>
1010
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
@@ -15,7 +15,7 @@
1515

1616
**Tech Stack:** Electron + React 18 + TypeScript、sherpa-onnx-node(既有)、silero-vad(ONNX)、rapidocr(ONNX)、sherpa-onnx 公式/重打分模型;Python FastAPI 网关(字段透传)。验证命令:`npm run lint` + `npm run test` + `npm run build`(client/)、`python -m pytest tests/ -q`(ai-gateway/)。
1717

18-
**Spec:** [2026-08-16-classroom-recognition-upgrade-design.md](../specs/2026-08-16-classroom-recognition-upgrade-design.md)
18+
**Spec:** [2026-08-16-classroom-recognition-upgrade-design.md](./2026-08-16-classroom-recognition-upgrade-design.md)
1919

2020
**Maturity Audit:** [classroom-recognition-maturity-audit.md](../../Foresight/classroom-recognition-maturity-audit.md)
2121

‎docs/archive/2026-08-16/2026-08-mixed-language-spike.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@
4141
## 附:相关文件
4242

4343
- 市场调研:`docs/Foresight/asr-market-2025-2026.md`(§2 中英混说)
44-
- 评估基线:`client/scripts/asr-eval/`、`docs/asr-eval-baseline/BASELINE-2026-08-16.md`
44+
- 评估基线:`client/scripts/asr-eval/`、`docs/archive/2026-08-16/BASELINE-2026-08-16.md`
4545
- 引擎配置:`client/electron/ai/local-asr/config.ts`、`modelManager.ts`

‎docs/archive/2026-08-16/README.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# 2026-08-16 归档索引
2+
3+
> 归档对象:课堂助手识别升级(P0/P1/P2 全部完成 ✅)+ 配套知识卡 + 评估基线
4+
5+
## 归档内容
6+
7+
- 实施计划:2026-08-16-classroom-recognition-upgrade.md(P0 7/7、P1 9/9、P2 8/8 全部完成,2026-08-16 状态更新)
8+
- 设计文档:2026-08-16-classroom-recognition-upgrade-design.md(已实施配套 spec)
9+
- 知识卡(已验收实施文档):
10+
- 2026-08-local-ocr-integration.md(P2-1 本地 OCR 完整实现:PP-OCRv5 det/rec 联调验证)
11+
- 2026-08-classroom-recognition-review.md(六维审查报告:6 项发现已修复 + 3 项遗留观察备案)
12+
- 2026-08-mixed-language-spike.md(P1-4/1-5 说话人重识别与中英混说 spike 结论)
13+
- 评估基线:BASELINE-2026-08-16.md(P0-1 评估基线工具产出,CER + 热词命中率基准)
14+
15+
## 技术债摘要
16+
17+
- 继承(carried):TD-001 WebGPU 渲染后端回退(P3,有意)
18+
- 新增(open):TD-002 课堂 hook 超行规范(P3)/ TD-003 本地 OCR 推理管线骨架态(P2)/ TD-004 VLM 分类待替换(P3)
19+
- 详见 tech-debt.md
20+
21+
## 备注
22+
23+
- 不归档:PWA 移动端设计/计划(v4 定稿,实施未开始)、窗口识别优化设计/计划(实施进行中,工作区存在未提交代码)
24+
- 归档文档内部断链已修正(plan↔spec 相对链接、review/BASELINE 路径引用)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# 技术债清单(权威:2026-08-16)
2+
3+
> 本清单为当前唯一权威债务清单,归档日滚动更新;旧归档清单仅历史追溯。
4+
> 昨日(2026-08-10 基线)债务已逐条核对:TD-001 今日无偿还提交(无 WebGPU/WebGL 相关变更),继承为 carried。
5+
6+
## 未偿债务
7+
8+
| ID | 摘要 | 类型 | 优先级 | 来源归档 | 状态 |
9+
|----|------|------|--------|----------|------|
10+
| TD-001 | WebGPU 渲染后端因 R3F 兼容性回退 WebGL;GPU 粒子已先迁 vertex shader,待 three/R3F 生态成熟后重试 | 有意 | P3 | 2026-08-10 | carried |
11+
| TD-002 | useClassroomEvents.ts(593 行)/ useClassroomCapture.ts(355 行)/ modelManager.ts(323 行)超 300 行规范(本次修改前既有问题);建议下个迭代把场景处理/修正回写/说话人标注拆子 hook | 腐化 | P3 | 2026-08-16 | open |
12+
| TD-003 | P2-1/2/3 本地 OCR 推理管线骨架态:模型文件未随仓库分发需环境联调;公式引擎与版面解析未接入(依赖 P2-1);P2-6 输入事件触发需安全评审后实施(降级契约完整、零回归) | 环境变化 | P2 | 2026-08-16 | open |
13+
| TD-004 | P2-5 VLM 分类:规则版已上线达标(≥80%),VLM 版待本地 VLM/网关视觉端点就绪后替换(接入路径已文档化) | 环境变化 | P3 | 2026-08-16 | open |
14+
15+
## 今日已偿
16+
17+
| ID | 摘要 | 偿还提交 |
18+
|----|------|----------|
19+
| (无) | | |

‎docs/archive/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,4 @@ docs/archive/
6464
| 归档日期 | 内容摘要 | 未偿债务 |
6565
|----------|---------|----------|
6666
| 2026-08-10 | 基线归档:性能优化/笔记创新/生物发光实施文档 + biolum 设计实施计划 + 本机制 spec;补充归档:5 份历史审计报告 + superdesign-init 快照 | 1(TD-001) |
67+
| 2026-08-16 | 课堂助手识别升级计划/设计(P0/P1/P2 全部完成)+ 3 份知识卡(OCR 集成/六项审查/混说 spike)+ ASR 评估基线 | 4(TD-001~004) |

‎docs/knowledge/index.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
|------|------|------|
3636
| 2026-08-01 | [熵减性能深度分析与优化路线图](./solutions/2026-08-performance-analysis-optimization-roadmap.md) | #性能分析 #内存泄漏 #重渲染 #3D性能 #基准测试 |
3737
| 2026-07-31 | [安装包分发加速:CDN 接入方案与下载源可切换设计](./solutions/2026-07-installer-cdn-distribution.md) | #CDN #阿里云 #安装包分发 #下载加速 |
38+
| 2026-08-16 | [课堂助手识别六项审查报告](../archive/2026-08-16/2026-08-classroom-recognition-review.md) `[ ] 已归档` | #代码审查 #课堂助手 #OCR #ASR |
39+
| 2026-08-16 | [本地 OCR 集成(PP-OCRv5 骨架与联调验证)](../archive/2026-08-16/2026-08-local-ocr-integration.md) `[ ] 已归档` | #OCR #PP-OCRv5 #ONNX #课堂助手 |
40+
| 2026-08-16 | [中英混说 spike 结论](../archive/2026-08-16/2026-08-mixed-language-spike.md) `[ ] 已归档` | #ASR #中英混说 #spike |
3841

3942
## 📖 analysis/ — 机制分析
4043

‎docs/superpowers/plans/2026-08-16-window-recognition-optimization.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ const ENTERTAINMENT_TITLE_RE = /第\s*\d+\s*集|剧场版|预告片|\bmv\b|演
248248
/** 进程白名单(+50:会议/视频站客户端) */
249249
const PROCESS_HIGH_WHITELIST = new Set([
250250
'wemeet.exe', 'dingtalk.exe', 'zoom.exe', 'teams.exe', 'webex.exe',
251-
'bilibili.exe', 'bililive.exe', 'youku.exe', 'iqiyi.exe',
251+
'bilibili.exe', 'bililive.exe',
252252
]);
253253

254254
/** 进程白名单(+25:浏览器/播放器) */
@@ -262,6 +262,7 @@ const PROCESS_ENTERTAINMENT = new Set([
262262
'steam.exe', 'wegame.exe', 'leagueclient.exe', 'league of legends.exe',
263263
'gta5.exe', 'dota2.exe', 'csgo.exe', 'valorant.exe', 'genshinimpact.exe',
264264
'douyu.exe', 'huya.exe', 'netflix.exe', 'mangotv.exe',
265+
'youku.exe', 'iqiyi.exe',
265266
]);
266267

267268
/** 系统窗口进程黑名单(硬过滤) */

0 commit comments

Comments
 (0)