{
  "metrics_doc": {
    "prose_recall": "truth \u6bb5\u843d\u6309 '. ' \u5207\u53e5\uff0c\u5f52\u4e00\u5316\u540e \u22654 \u8bcd\u7684\u53e5\u5b50\u5728\u8f93\u51fa\u4e2d\u51fa\u73b0\u7684\u6bd4\u4f8b",
    "reading_order": "\u6bcf\u6bb5\u524d 6 \u8bcd\u4f5c\u951a\u70b9\u5728\u8f93\u51fa\u4e2d\u7684\u4f4d\u7f6e\uff0c\u76f8\u90bb\u6bb5\u5bf9\u4f4d\u7f6e\u4e25\u683c\u9012\u589e\u7684\u6bd4\u4f8b\uff1b\u951a\u70b9\u7f3a\u5931\u8ba1 0",
    "table_rows_intact": "truth \u6bcf\u884c\uff0c\u5b58\u5728\u67d0\u6761\u8f93\u51fa\u884c\u5305\u542b\u8be5\u884c\u6240\u6709\u5355\u5143\u683c\u5b57\u7b26\u4e32\u7684\u6bd4\u4f8b",
    "table_header_intact": "leaf_header\uff08\u65e0\u5219 header\uff09\u5168\u90e8\u5355\u5143\u683c\u51fa\u73b0\u5728\u540c\u4e00\u8f93\u51fa\u884c\uff1a1 \u6216 0\uff1b\u53ea\u6d4b\u53f6\u5b50\u5355\u5143\u683c\u540c\u884c\uff0c\u4e0d\u6d4b\u8de8\u5217\u5206\u7ec4\u8bed\u4e49\uff1bdoc \u7c7b\u6837\u672c\u6709\u591a\u5f20\u8868/\u5de5\u4f5c\u8868\u65f6\u4e3a\u6ee1\u8db3\u8be5\u6761\u4ef6\u7684\u8868\u6240\u5360\u6bd4\u4f8b",
    "table_pipe_detected": "\u8f93\u51fa\u662f\u5426\u542b markdown \u8868\u683c\uff08| \u5f00\u5934\u7ed3\u5c3e\u884c\u4e14\u4e0b\u4e00\u884c\u4e3a\u5206\u9694\u884c\uff09\uff1atrue/false",
    "pages_covered": "mixed \u7684 page_anchors \u5404\u81ea\u51fa\u73b0\u5728\u8f93\u51fa\u4e2d\u7684\u6bd4\u4f8b\uff1b\u7b2c\u4e09\u4e2a\u951a\u70b9\u5728\u626b\u63cf\u9875\uff0c\u65e0 OCR \u65f6\u4e0a\u9650 2/3",
    "scan_text_recall": "scan \u6587\u672c\u6309 prose_recall \u53e3\u5f84\u7684\u53ec\u56de\uff1b\u65e0 OCR \u9884\u671f\u4e3a 0",
    "equation_recall": "expressions \u7ecf\u6570\u5b66\u6807\u8bb0\u5f52\u4e00\u5316\uff08\u53bb $ / \\[ \\] \u5b9a\u754c\u3001\\mathsf{} \u7b49\u5b57\u4f53\u5305\u88f9\u3001\\{ \u2192 {\u3001^{\\wedge} \u2192 ^\u3001\\_ \u2192 _\u3001\u53bb\u5168\u90e8\u7a7a\u767d\uff09\u540e\u5b50\u4e32\u547d\u4e2d\u7684\u6bd4\u4f8b\uff1b\u5bf9\u6240\u6709\u5de5\u5177\u540c\u4e00\u53e3\u5f84\uff0c\u8861\u91cf\u6570\u5b66\u5185\u5bb9\u662f\u5426\u53ef\u6062\u590d\u800c\u975e\u8f93\u51fa\u683c\u5f0f",
    "equation_recall_exact": "expressions \u4ec5\u505a\u5927\u5c0f\u5199/\u7a7a\u767d\u5f52\u4e00\u5316\u7684\u7eaf\u6587\u672c\u7cbe\u786e\u5b50\u4e32\u547d\u4e2d\u6bd4\u4f8b\uff08\u65e7\u53e3\u5f84\uff0c\u4fdd\u7559\u4f5c\u5bf9\u7167\uff1a\u8f93\u51fa LaTeX \u6807\u8bb0\u7684\u8def\u5f84\u5728\u6b64\u5217\u5fc5\u7136\u504f\u4f4e\uff09",
    "heading_recall": "doc \u7c7b\uff1atruth \u6807\u9898\u6587\u5b57\u51fa\u73b0\u5728\u67d0\u6761\u4ee5 # \u5f00\u5934\u7684\u8f93\u51fa\u884c\u91cc\u7684\u6bd4\u4f8b\uff08\u4e0d\u8bba\u7ea7\u522b\uff09",
    "heading_level_exact": "doc \u7c7b\uff1atruth \u6807\u9898\u4ee5\u6070\u597d level \u4e2a # \u8f93\u51fa\u7684\u6bd4\u4f8b\uff1btruth level \u4e3a\u7a7a\u7684\u6807\u9898\uff08\u5e7b\u706f\u7247\u6807\u9898\u3001EPUB \u7ae0\u540d\uff09\u4e0d\u8ba1\u5165",
    "list_items_intact": "doc \u7c7b\uff1atruth \u5217\u8868\u9879\uff08\u542b\u5e7b\u706f\u7247\u8981\u70b9\uff09\u51fa\u73b0\u5728\u4ee5 - * + \u6216 \u6570\u5b57. \u6570\u5b57) \u5f00\u5934\u7684\u8f93\u51fa\u884c\u91cc\u7684\u6bd4\u4f8b",
    "code_block_intact": "doc \u7c7b\uff1atruth \u4ee3\u7801\u5757\u7684\u6bcf\u4e00\u884c\u90fd\u51fa\u73b0\u5728 ``` / ~~~ \u56f4\u680f\u5185\u7684\u6bd4\u4f8b\uff08\u6309\u5757\u8ba1\uff09",
    "boilerplate_excluded": "doc \u7c7b\uff1a\u5bfc\u822a\u3001\u6807\u8bed\u3001Cookie \u6a2a\u5e45\u3001\u9875\u811a\u7b49\u6837\u677f\u5b57\u7b26\u4e32\u6ca1\u6709\u51fa\u73b0\u5728\u8f93\u51fa\u4e2d\u7684\u6bd4\u4f8b\uff1b\u8d8a\u9ad8\u8bf4\u660e\u6b63\u6587\u62bd\u53d6\u8d8a\u5e72\u51c0",
    "slide_order": "doc \u7c7b\uff1a\u5e7b\u706f\u7247\u6807\u9898\u6309 reading_order \u53e3\u5f84\uff08\u524d 6 \u8bcd\u951a\u70b9\uff09\u76f8\u90bb\u5bf9\u4f4d\u7f6e\u4e25\u683c\u9012\u589e\u7684\u6bd4\u4f8b",
    "notes_recall": "doc \u7c7b\uff1a\u5e7b\u706f\u7247\u6f14\u8bb2\u8005\u5907\u6ce8\u5168\u6587\u51fa\u73b0\u5728\u8f93\u51fa\u4e2d\u7684\u6bd4\u4f8b",
    "sheet_coverage": "doc \u7c7b\uff1a\u81f3\u5c11\u6709\u4e00\u884c\u6570\u636e\u6309 table_rows_intact \u53e3\u5f84\u5b8c\u6574\u51fa\u73b0\u7684\u5de5\u4f5c\u8868\u6240\u5360\u6bd4\u4f8b",
    "elapsed_s": "lab_run \u5b9e\u6d4b\u8017\u65f6\uff08\u79d2\uff09\uff0c\u900f\u4f20",
    "error": "lab_run \u8bb0\u5f55\u7684\u5f02\u5e38\u6587\u672c\uff0c\u900f\u4f20\uff1b\u65e0\u5f02\u5e38\u4e3a null"
  },
  "tools": {
    "markovo": {
      "version": "2026-09-19.v3-media-unified",
      "device": null,
      "elapsed_s": null,
      "error": null,
      "note": "Reused original public API receipts dated 2026-10-27/28"
    },
    "markitdown": {
      "version": "0.1.8",
      "dependencies": {
        "speech_recognition": false,
        "pydub": false
      }
    },
    "ffmpeg-subtitles": {
      "version": "7.1",
      "contract": "existing text subtitles, not speech recognition"
    }
  },
  "python": "3.11.14",
  "date": "2026-11-05",
  "cells": [
    {
      "tool": "markovo",
      "sample": "screen-recording",
      "kind": "prose",
      "prose_recall": 0.6667,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": null,
      "error": null
    },
    {
      "tool": "markovo",
      "sample": "speech",
      "kind": "prose",
      "prose_recall": 0.1667,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": null,
      "error": null
    },
    {
      "tool": "markitdown",
      "sample": "screen-recording",
      "kind": "prose",
      "prose_recall": 0.0,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0548,
      "error": null
    },
    {
      "tool": "markitdown",
      "sample": "captioned-recording",
      "kind": "prose",
      "prose_recall": 0.0,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0106,
      "error": null
    },
    {
      "tool": "markitdown",
      "sample": "silent-visual",
      "kind": "prose",
      "prose_recall": null,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.008,
      "error": null
    },
    {
      "tool": "markitdown",
      "sample": "speech",
      "kind": "prose",
      "prose_recall": 0.0,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0074,
      "error": null
    },
    {
      "tool": "ffmpeg-subtitles",
      "sample": "screen-recording",
      "kind": "prose",
      "prose_recall": 0.0,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0122,
      "error": "Stream map '' matches no streams."
    },
    {
      "tool": "ffmpeg-subtitles",
      "sample": "captioned-recording",
      "kind": "prose",
      "prose_recall": 1.0,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0109,
      "error": null
    },
    {
      "tool": "ffmpeg-subtitles",
      "sample": "silent-visual",
      "kind": "prose",
      "prose_recall": null,
      "reading_order": null,
      "table_rows_intact": null,
      "table_header_intact": null,
      "table_pipe_detected": null,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": null,
      "heading_level_exact": null,
      "list_items_intact": null,
      "code_block_intact": null,
      "boilerplate_excluded": null,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0075,
      "error": "Stream map '' matches no streams."
    }
  ],
  "media_observations": [
    {
      "sample": "screen-recording",
      "input_video_stream_present": true,
      "input_audio_stream_present": true,
      "input_subtitle_stream_present": false,
      "markitdown_output_characters": 0,
      "ffmpeg_extracted_subtitle_cues": 0
    },
    {
      "sample": "captioned-recording",
      "input_video_stream_present": true,
      "input_audio_stream_present": true,
      "input_subtitle_stream_present": true,
      "markitdown_output_characters": 0,
      "ffmpeg_extracted_subtitle_cues": 3
    },
    {
      "sample": "silent-visual",
      "input_video_stream_present": true,
      "input_audio_stream_present": false,
      "input_subtitle_stream_present": false,
      "markitdown_output_characters": 0,
      "ffmpeg_extracted_subtitle_cues": 0
    }
  ],
  "media_boundary": "One synthetic spoken fixture, authored captions, and a visual-only control. No WER, independent ASR engine, timing alignment, noisy or multi-speaker benchmark.",
  "media_method": "Input stream descriptions from FFmpeg inspection; raw UTF-8 Markdown character count; SRT cue number followed by timestamp. Not ASR accuracy."
}
