@pls-compile-owo/fisheye 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/lib/danmaku.mjs +4 -1
- package/package.json +1 -1
- package/test/golden/ad-truth/BV1WhaA6hE7s.json +14425 -0
- package/test/golden.test.mjs +29 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 规范与 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## [0.8.3] - 2026-11-14
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- 广告段检测:片头/片尾 60s 内的低置信度段不再判为广告(片头低弹幕是正常现象,首次人工真值样本 BV1WhaA6hE7s 暴露的误报)。
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- 广告段真值样本(`test/golden/ad-truth/`):人工标注广告段 + golden 测试验证覆盖率 ≥80% 且无片头片尾误报。
|
|
14
|
+
|
|
5
15
|
## [0.8.2] - 2026-11-14
|
|
6
16
|
|
|
7
17
|
### Fixed
|
package/lib/danmaku.mjs
CHANGED
|
@@ -31,7 +31,7 @@ export function detectAdSegments(danmaku, duration, bucketSec = 30, stepSec = 10
|
|
|
31
31
|
if (!long.length) return []
|
|
32
32
|
|
|
33
33
|
const hits = danmaku.filter((d) => AD_SEGMENT_SIGNAL.test(d.text))
|
|
34
|
-
|
|
34
|
+
const out = long.map((sp) => {
|
|
35
35
|
const near = hits.filter((h) => h.t >= sp.from - 20 && h.t <= sp.to + 20)
|
|
36
36
|
// dens 是「30s 窗、10s 步长」的滑窗,同一条弹幕会被相邻 3 个桶各计一次。
|
|
37
37
|
// 分母必须用「实际桶数」而不是 (时长/bucketSec),否则 ratio 虚高约 3 倍
|
|
@@ -49,6 +49,9 @@ export function detectAdSegments(danmaku, duration, bucketSec = 30, stepSec = 10
|
|
|
49
49
|
keywords: near.slice(0, 3).map((h) => h.text),
|
|
50
50
|
}
|
|
51
51
|
})
|
|
52
|
+
// 片头/片尾 60s 内的「低置信度」段丢弃:开头结尾弹幕本来就少,不是广告信号。
|
|
53
|
+
// 高置信度(有广告关键词)不受此限——片头口播广告仍是广告。
|
|
54
|
+
return out.filter((s) => s.confidence === 'high' || (s.from >= 60 && s.to <= duration - 60))
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
// 按时间桶聚合,找「观众最激动」的时段。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pls-compile-owo/fisheye",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "Token-budget-aware video understanding for AI agents: official subtitles -> burned-in subtitle band -> danmaku highlights -> adaptive keyframe grids -> targeted refine.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|