47 lines
4.6 KiB
Markdown
47 lines
4.6 KiB
Markdown
# Q1 对《E题V2》第四章的复核
|
||
|
||
本复核只涉及 `math/Q1`。主特征包从本机 Q1 原生缓存构建;OpenFace 特征来自锁定的 OpenFace 2.2.0 运行包。没有读取 `deep_learning/`。标签只用于 B0–B4 五折信息探针,不参与特征抽取、CTC 对齐或质量计算。
|
||
|
||
## 规格核对
|
||
|
||
| PDF 要求 | 当前实现 | 结论 |
|
||
|---|---|---|
|
||
| 冻结 BERT 词级特征与长文本分窗 | BERT-base-uncased 冻结;每词对最后四层取均值,保存字符跨度和 WordPiece 映射;窗口 510 子词、步长 384 | 已实现 |
|
||
| 固定转写的单调 CTC 对齐 | 同一状态图保存 Viterbi 硬路径和 forward–backward 占据后验;词边界后验分位数随特征保留 | 已实现;没有人工边界真值时不报告边界准确率或后验经验校准率 |
|
||
| 74 维音频、逐分量有效性与真实范围 | 40 log-Mel、13 MFCC、13 局部线性 ΔMFCC、8 韵律/谱量;16 kHz、400 样本窗、160 步长、FFT 512;保存实际音频采样范围 | 已实现;F0 和有声概率取 `librosa.pyin`,HNR 在检测 F0 处由自相关另算并以 dB 保存 |
|
||
| 35 维 OpenFace 面部特征 | OpenFace 2.2.0 导出 17 个 AU 强度、Pose6、Gaze6、Geometry6;置信度门槛 0.8;保留原始 PTS 和帧索引 | 已实现;几何量依据 68 点标记计算 |
|
||
| 0.1 秒物理时间主网格、真实末段与分量掩码 | 原生区间交叠投影;每维保存均值、方差、计数、物理覆盖率和掩码;B0 均值可以按质量加权,覆盖率独立按真实交叠计算 | 已实现 |
|
||
| 几何一致的 B1 视觉汇聚 | 头部旋转使用 SO(3) 加权均值,视线使用单位向量均值;其他分量按物理区间汇聚 | 已实现,可由 `geometry_aware=True` 读取 |
|
||
| 相对进度、多尺度、B4 和词查询接口 | 提供 50 段相位视图、0.1/0.3/0.7 秒多尺度视图、按需 B4 Wav2Vec2 视图和词到原生音频/视频行的 CSR `H_time` | 已实现;B4 复用本机原生缓存以控制包体积 |
|
||
| B0–B4 单因素对照 | 五折 `video_id` GroupKFold;所有缩放器在每折训练组拟合;输出 OOF Accuracy、Macro-F1、MAE、RMSE、Pearson 与视频组 Bootstrap 差值 | 已完成,V2 结果见 `results/model_comparison_v2/` |
|
||
|
||
## 记录的限制
|
||
|
||
1. `librosa.pyin` 的 `voiced_flag` 与 `voiced_prob` 分开保存;HNR 单独由 pYIN 检出的 F0 位置自相关周期性计算。pYIN 在 80 Hz 下界、25 ms 窗口会提示周期数不足,因此该范围内的 F0 需谨慎解释。字段语义未用周期强度冒称概率。
|
||
2. CTC 边界后验未做经验校准。没有人工词边界标注,故不能声称边界精度、IoU/MATE 或校准率;后验宽度只作为模型内部不确定性摘要。
|
||
3. `q1_io.get_view(sample, "speech", "sec")` 从本机 B4 原生缓存读取 Wav2Vec2 特征,不复制到主包。换机器若没有该缓存,需按清单重建 B4 特征。
|
||
4. B6 内容相似度探针关闭。主包保留的是物理时间查询矩阵,避免把内容相似误作时间对齐证据。
|
||
|
||
## 当前 V2 五折探针
|
||
|
||
100 条样本按 37 个来源 `video_id` 分组。表中 Accuracy 是 100 条折外预测的正确率;Macro-F1 是 Negative、Neutral、Positive 三类 F1 的等权平均。两者都是情感信息探针,不是对齐边界准确率。
|
||
|
||
| 分支 | OOF Accuracy | OOF Macro-F1 | OOF MAE | OOF RMSE | OOF Pearson |
|
||
|---|---:|---:|---:|---:|---:|
|
||
| B0 | 0.5900 | 0.3373 | 0.5345 | 0.7325 | 0.4255 |
|
||
| B1 | 0.5700 | 0.3084 | 0.5342 | 0.7444 | 0.3981 |
|
||
| B2 | 0.5500 | 0.2769 | 0.5308 | 0.7342 | 0.4232 |
|
||
| B3 | 0.5700 | 0.3084 | 0.5202 | 0.7371 | 0.4114 |
|
||
| B4 | 0.6000 | 0.3882 | 0.5393 | 0.7628 | 0.3413 |
|
||
|
||
Macro-F1 最高的是 B4,MAE 最低的是 B3;没有单一分支同时在分类与回归上占优。`comparison_summary.csv` 同时包含总体 OOF Accuracy 和逐折 Accuracy 均值/标准差。逐样本硬对齐词数和未定位词数见 `features_v2/sample_summary.csv`。
|
||
|
||
## 特征包审计
|
||
|
||
- 100 个 NPZ 样本、100 行样本汇总、300 行模态明细;总文件字节数 44,321,715(约 42.27 MiB)。
|
||
- `feature_manifest.json` 记录实际配置哈希、输入缓存来源、模型版本、包体积和各分支状态;每个样本均有对应配置哈希。
|
||
- 无穷/NaN 检查、OpenFace 样本提取、真实音频末帧范围、视觉原生帧索引与五折分组结果均已核对。
|
||
- 缺失边界用数值 `-1` 与 JSON `null` 表示;无证据的边界不被伪造成零秒。
|
||
|
||
完整 OOF 指标、折号、预测、Bootstrap 区间和运行参数保存在 `results/model_comparison_v2/`。构建特征时读取的原生缓存来源信息单独保存在 `source_cache_manifest.json`。
|