41 lines
2.5 KiB
Markdown
41 lines
2.5 KiB
Markdown
# Q1:模态对齐与特征分支
|
||
|
||
本目录按《E题V2》第四章构建 Q1 对齐特征。规格核对与限制见 [`V2_REVIEW.md`](V2_REVIEW.md),可供后续训练读取的主特征包位于 `features_v2/`。
|
||
|
||
## V2 特征包
|
||
|
||
- 100 个样本、300 条模态明细;主物理时间视图为 0.1 秒,并保留真实末段长度。
|
||
- 文本采用冻结 BERT 词级特征;音频 74 维;视觉采用 OpenFace 2.2.0 的 35 维输出。
|
||
- 原生词、音频窗、视频帧与源索引均保留;另提供逐词 CTC 后验、50 段相位视图、多尺度视图、B4 语音视图和物理时间查询矩阵。
|
||
- 每个时间视图包含均值、方差、计数、逐维物理覆盖率、掩码和独立质量摘要。质量加权只影响特征汇聚,不改变物理覆盖率。
|
||
- B4 Wav2Vec2 视图通过接口从本机 `cache/native/` 按需读取;不复制进主包。
|
||
- 特征文件共 44,321,715 字节(约 42.27 MiB)。`feature_manifest.json` 记录配置哈希、源运行信息及精确字节数。
|
||
|
||
## 读取接口
|
||
|
||
```python
|
||
from q1_io import load_sample, get_view, csr_from_sample
|
||
|
||
sample = load_sample("video_id/clip_id")
|
||
primary = get_view(sample, "audio", "sec")
|
||
multiscale = get_view(sample, "audio", "multi", context_s=0.3)
|
||
posterior_text = get_view(sample, "text", "posterior")
|
||
word_to_audio = csr_from_sample(sample, "query_word_audio_H_time")
|
||
b4_speech = get_view(sample, "speech", "sec")
|
||
```
|
||
|
||
`get_view` 支持 `sec`、`word`、`phase50`、`multi` 和文本专用 `posterior`。多尺度视图从原生行按窗口重新聚合;`speech` 视图依赖本机原生缓存。清单文件为 `features_v2/manifest_q1.jsonl`、`sample_summary.csv` 和 `modality_summary.csv`。
|
||
|
||
## 重建和五折探针
|
||
|
||
在仓库根目录运行:
|
||
|
||
```bash
|
||
uv run --project math/Q1 python math/Q1/build_v2.py
|
||
uv run --project math/Q1 python math/Q1/compare_v2.py
|
||
```
|
||
|
||
特征重建依赖 `cache/native/`、`source_cache_manifest.json`、附件一视频及本机模型资源。`build_v2.py` 复用 `compare_models.py` 中的标签读取、缓存解析和数据结构;V2 对照入口是 `compare_v2.py`。B0–B4 五折 `video_id` 分组探针写入 `results/model_comparison_v2/`,每折缩放器只在训练视频组拟合;报告包含 Accuracy、Macro-F1、MAE、RMSE 和 Pearson。无人工词边界真值时,不报告边界误差或 CTC 后验校准率。
|
||
|
||
词到原生音频窗和视频帧的 `H_time` 查询矩阵示例可用 `visualize_alignment.py` 重绘;默认展示样本 `-iRBcNs9oI8/8`,也可通过 `--sample-id` 指定样本。图与样本清单写入 `results/`。
|