{
  "schemaVersion": 1,
  "engineFamily": "whisper-file",
  "published": {
    "sanitizedAt": "2026-09-21T01:38:41.461Z",
    "sourceFileName": "whisper-vulkan-win-5202a48f0-2026-09-20_15-57-04.json",
    "note": "Paths, transcripts, and local machine identifiers removed for public hosting."
  },
  "environment": {
    "collectedAt": "2026-09-20T15:57:04.094Z",
    "platform": "win32",
    "arch": "x64",
    "cpuModel": "AMD Ryzen Threadripper 3960X",
    "gpuModel": "NVIDIA GeForce RTX 3080",
    "nodeVersion": "v24.14.0",
    "gitShortSha": "5202a48f0",
    "engineFamily": "whisper-file",
    "gpuEngine": "Vulkan",
    "useGpu": true,
    "threads": 4
  },
  "runConfig": {
    "engine": "whisper-file",
    "scene": "general",
    "useGpu": true,
    "gpuEngine": "Vulkan",
    "threads": 4,
    "languageFromCase": true,
    "notes": "Windows 通用 GPU（Vulkan whisper.cpp）。与 CUDA 矩阵共用 manifest，便于对比 RTF/WER。"
  },
  "manifestPath": "manifest.json",
  "modelsPath": "whisper-models.json",
  "modelRuns": [
    {
      "modelId": "Base",
      "whisperModel": "Base",
      "batch": {
        "engine": "whisper-file",
        "results": [
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "audio-benchmark",
            "segmentCount": 10,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "audioDurationMs": 34537,
            "preprocessElapsedMs": 1049,
            "transcribeElapsedMs": 12135,
            "totalElapsedMs": 13184,
            "realTimeFactor": 0.3817,
            "sceneHint": "general",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "en-long-sentence-pause",
            "segmentCount": 23,
            "errorMetricKind": "wer",
            "wer": 0.0049,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.0049,
            "duplicateTokenRate": 0,
            "audioDurationMs": 70993,
            "preprocessElapsedMs": 100,
            "transcribeElapsedMs": 3115,
            "totalElapsedMs": 3215,
            "realTimeFactor": 0.0453,
            "sceneHint": "speech",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "en-oral-correction",
            "segmentCount": 12,
            "errorMetricKind": "wer",
            "wer": 0.0792,
            "cer": null,
            "insertionRate": 0.005,
            "deletionRate": 0.0347,
            "substitutionRate": 0.0396,
            "duplicateTokenRate": 0.0204,
            "audioDurationMs": 68449,
            "preprocessElapsedMs": 98,
            "transcribeElapsedMs": 3104,
            "totalElapsedMs": 3202,
            "realTimeFactor": 0.0468,
            "sceneHint": "dialogue",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "en-tech-talk-podcast",
            "segmentCount": 22,
            "errorMetricKind": "wer",
            "wer": 0.012,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.012,
            "duplicateTokenRate": 0.006,
            "audioDurationMs": 79681,
            "preprocessElapsedMs": 105,
            "transcribeElapsedMs": 2831,
            "totalElapsedMs": 2936,
            "realTimeFactor": 0.0368,
            "sceneHint": "course",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "zh-tech-podcast",
            "segmentCount": 13,
            "errorMetricKind": "cer",
            "wer": null,
            "cer": 0.0355,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.0355,
            "duplicateTokenRate": 0.5714,
            "audioDurationMs": 74665,
            "preprocessElapsedMs": 97,
            "transcribeElapsedMs": 3728,
            "totalElapsedMs": 3825,
            "realTimeFactor": 0.0512,
            "sceneHint": "course",
            "notes": ["scene=general"]
          }
        ],
        "failures": [],
        "summary": {
          "caseCount": 5,
          "successCount": 5,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": 0.024,
          "averageCer": 0.0355,
          "averageInsertionRate": 0.001,
          "averageDeletionRate": 0.0069,
          "averageSubstitutionRate": 0.0184,
          "averageDuplicateTokenRate": 0.1196,
          "averagePreprocessElapsedMs": 289.8,
          "averageTotalElapsedMs": 5272.4,
          "averageRealTimeFactor": 0.1124,
          "byScene": {
            "general": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 1049,
              "averageTotalElapsedMs": 13184,
              "averageRealTimeFactor": 0.3817
            },
            "speech": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0049,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.0049,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 100,
              "averageTotalElapsedMs": 3215,
              "averageRealTimeFactor": 0.0453
            },
            "dialogue": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0792,
              "averageCer": null,
              "averageInsertionRate": 0.005,
              "averageDeletionRate": 0.0347,
              "averageSubstitutionRate": 0.0396,
              "averageDuplicateTokenRate": 0.0204,
              "averagePreprocessElapsedMs": 98,
              "averageTotalElapsedMs": 3202,
              "averageRealTimeFactor": 0.0468
            },
            "course": {
              "caseCount": 2,
              "successCount": 2,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.012,
              "averageCer": 0.0355,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.0238,
              "averageDuplicateTokenRate": 0.2887,
              "averagePreprocessElapsedMs": 101,
              "averageTotalElapsedMs": 3380.5,
              "averageRealTimeFactor": 0.044
            }
          }
        }
      }
    },
    {
      "modelId": "Small",
      "whisperModel": "Small",
      "batch": {
        "engine": "whisper-file",
        "results": [
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "audio-benchmark",
            "segmentCount": 12,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "audioDurationMs": 34537,
            "preprocessElapsedMs": 93,
            "transcribeElapsedMs": 2800,
            "totalElapsedMs": 2893,
            "realTimeFactor": 0.0838,
            "sceneHint": "general",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "en-long-sentence-pause",
            "segmentCount": 21,
            "errorMetricKind": "wer",
            "wer": 0.0049,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.0049,
            "duplicateTokenRate": 0,
            "audioDurationMs": 70993,
            "preprocessElapsedMs": 103,
            "transcribeElapsedMs": 4596,
            "totalElapsedMs": 4699,
            "realTimeFactor": 0.0662,
            "sceneHint": "speech",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "en-oral-correction",
            "segmentCount": 13,
            "errorMetricKind": "wer",
            "wer": 0.0644,
            "cer": null,
            "insertionRate": 0.005,
            "deletionRate": 0.0149,
            "substitutionRate": 0.0446,
            "duplicateTokenRate": 0.025,
            "audioDurationMs": 68449,
            "preprocessElapsedMs": 96,
            "transcribeElapsedMs": 4612,
            "totalElapsedMs": 4708,
            "realTimeFactor": 0.0688,
            "sceneHint": "dialogue",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "en-tech-talk-podcast",
            "segmentCount": 12,
            "errorMetricKind": "wer",
            "wer": 0.006,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.006,
            "duplicateTokenRate": 0.006,
            "audioDurationMs": 79681,
            "preprocessElapsedMs": 108,
            "transcribeElapsedMs": 3943,
            "totalElapsedMs": 4051,
            "realTimeFactor": 0.0508,
            "sceneHint": "course",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "zh-tech-podcast",
            "segmentCount": 36,
            "errorMetricKind": "cer",
            "wer": null,
            "cer": 0.0065,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.0065,
            "duplicateTokenRate": 0.8333,
            "audioDurationMs": 74665,
            "preprocessElapsedMs": 101,
            "transcribeElapsedMs": 5779,
            "totalElapsedMs": 5880,
            "realTimeFactor": 0.0788,
            "sceneHint": "course",
            "notes": ["scene=general"]
          }
        ],
        "failures": [],
        "summary": {
          "caseCount": 5,
          "successCount": 5,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": 0.0188,
          "averageCer": 0.0065,
          "averageInsertionRate": 0.001,
          "averageDeletionRate": 0.003,
          "averageSubstitutionRate": 0.0124,
          "averageDuplicateTokenRate": 0.1729,
          "averagePreprocessElapsedMs": 100.2,
          "averageTotalElapsedMs": 4446.2,
          "averageRealTimeFactor": 0.0697,
          "byScene": {
            "general": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 93,
              "averageTotalElapsedMs": 2893,
              "averageRealTimeFactor": 0.0838
            },
            "speech": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0049,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.0049,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 103,
              "averageTotalElapsedMs": 4699,
              "averageRealTimeFactor": 0.0662
            },
            "dialogue": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0644,
              "averageCer": null,
              "averageInsertionRate": 0.005,
              "averageDeletionRate": 0.0149,
              "averageSubstitutionRate": 0.0446,
              "averageDuplicateTokenRate": 0.025,
              "averagePreprocessElapsedMs": 96,
              "averageTotalElapsedMs": 4708,
              "averageRealTimeFactor": 0.0688
            },
            "course": {
              "caseCount": 2,
              "successCount": 2,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.006,
              "averageCer": 0.0065,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.0063,
              "averageDuplicateTokenRate": 0.4197,
              "averagePreprocessElapsedMs": 104.5,
              "averageTotalElapsedMs": 4965.5,
              "averageRealTimeFactor": 0.0648
            }
          }
        }
      }
    },
    {
      "modelId": "LargeV3Turbo",
      "whisperModel": "LargeV3Turbo",
      "batch": {
        "engine": "whisper-file",
        "results": [
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "audio-benchmark",
            "segmentCount": 6,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "audioDurationMs": 34537,
            "preprocessElapsedMs": 103,
            "transcribeElapsedMs": 2777,
            "totalElapsedMs": 2880,
            "realTimeFactor": 0.0834,
            "sceneHint": "general",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "en-long-sentence-pause",
            "segmentCount": 14,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "audioDurationMs": 70993,
            "preprocessElapsedMs": 99,
            "transcribeElapsedMs": 4056,
            "totalElapsedMs": 4155,
            "realTimeFactor": 0.0585,
            "sceneHint": "speech",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "en-oral-correction",
            "segmentCount": 32,
            "errorMetricKind": "wer",
            "wer": 0.0743,
            "cer": null,
            "insertionRate": 0.005,
            "deletionRate": 0.0198,
            "substitutionRate": 0.0495,
            "duplicateTokenRate": 0.0201,
            "audioDurationMs": 68449,
            "preprocessElapsedMs": 98,
            "transcribeElapsedMs": 4323,
            "totalElapsedMs": 4421,
            "realTimeFactor": 0.0646,
            "sceneHint": "dialogue",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "en-tech-talk-podcast",
            "segmentCount": 11,
            "errorMetricKind": "wer",
            "wer": 0.006,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.006,
            "duplicateTokenRate": 0.006,
            "audioDurationMs": 79681,
            "preprocessElapsedMs": 103,
            "transcribeElapsedMs": 3864,
            "totalElapsedMs": 3967,
            "realTimeFactor": 0.0498,
            "sceneHint": "course",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "zh-tech-podcast",
            "segmentCount": 13,
            "errorMetricKind": "cer",
            "wer": null,
            "cer": 0.0097,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.0097,
            "duplicateTokenRate": 0.5714,
            "audioDurationMs": 74665,
            "preprocessElapsedMs": 98,
            "transcribeElapsedMs": 4760,
            "totalElapsedMs": 4858,
            "realTimeFactor": 0.0651,
            "sceneHint": "course",
            "notes": ["scene=general"]
          }
        ],
        "failures": [],
        "summary": {
          "caseCount": 5,
          "successCount": 5,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": 0.0201,
          "averageCer": 0.0097,
          "averageInsertionRate": 0.001,
          "averageDeletionRate": 0.004,
          "averageSubstitutionRate": 0.013,
          "averageDuplicateTokenRate": 0.1195,
          "averagePreprocessElapsedMs": 100.2,
          "averageTotalElapsedMs": 4056.2,
          "averageRealTimeFactor": 0.0643,
          "byScene": {
            "general": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 103,
              "averageTotalElapsedMs": 2880,
              "averageRealTimeFactor": 0.0834
            },
            "speech": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 99,
              "averageTotalElapsedMs": 4155,
              "averageRealTimeFactor": 0.0585
            },
            "dialogue": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0743,
              "averageCer": null,
              "averageInsertionRate": 0.005,
              "averageDeletionRate": 0.0198,
              "averageSubstitutionRate": 0.0495,
              "averageDuplicateTokenRate": 0.0201,
              "averagePreprocessElapsedMs": 98,
              "averageTotalElapsedMs": 4421,
              "averageRealTimeFactor": 0.0646
            },
            "course": {
              "caseCount": 2,
              "successCount": 2,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.006,
              "averageCer": 0.0097,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.0078,
              "averageDuplicateTokenRate": 0.2887,
              "averagePreprocessElapsedMs": 100.5,
              "averageTotalElapsedMs": 4412.5,
              "averageRealTimeFactor": 0.0575
            }
          }
        }
      }
    },
    {
      "modelId": "LargeV3",
      "whisperModel": "LargeV3",
      "batch": {
        "engine": "whisper-file",
        "results": [],
        "failures": [],
        "summary": {
          "caseCount": 0,
          "successCount": 0,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": null,
          "averageCer": null,
          "averageInsertionRate": null,
          "averageDeletionRate": null,
          "averageSubstitutionRate": null,
          "averageDuplicateTokenRate": 0,
          "averagePreprocessElapsedMs": 0,
          "averageTotalElapsedMs": 0,
          "averageRealTimeFactor": null,
          "byScene": {}
        }
      }
    },
    {
      "modelId": "BelleLargeV3TurboChinese",
      "whisperModel": "BelleLargeV3TurboChinese",
      "batch": {
        "engine": "whisper-file",
        "results": [],
        "failures": [],
        "summary": {
          "caseCount": 0,
          "successCount": 0,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": null,
          "averageCer": null,
          "averageInsertionRate": null,
          "averageDeletionRate": null,
          "averageSubstitutionRate": null,
          "averageDuplicateTokenRate": 0,
          "averagePreprocessElapsedMs": 0,
          "averageTotalElapsedMs": 0,
          "averageRealTimeFactor": null,
          "byScene": {}
        }
      }
    }
  ],
  "skipped": [
    {
      "modelId": "LargeV3",
      "caseId": "audio-benchmark",
      "reason": "whisper_model_missing"
    },
    {
      "modelId": "LargeV3",
      "caseId": "en-long-sentence-pause",
      "reason": "whisper_model_missing"
    },
    {
      "modelId": "LargeV3",
      "caseId": "en-oral-correction",
      "reason": "whisper_model_missing"
    },
    {
      "modelId": "LargeV3",
      "caseId": "en-tech-talk-podcast",
      "reason": "whisper_model_missing"
    },
    {
      "modelId": "LargeV3",
      "caseId": "zh-tech-podcast",
      "reason": "whisper_model_missing"
    },
    {
      "modelId": "BelleLargeV3TurboChinese",
      "caseId": "audio-benchmark",
      "reason": "language_not_supported"
    },
    {
      "modelId": "BelleLargeV3TurboChinese",
      "caseId": "en-long-sentence-pause",
      "reason": "language_not_supported"
    },
    {
      "modelId": "BelleLargeV3TurboChinese",
      "caseId": "en-oral-correction",
      "reason": "language_not_supported"
    },
    {
      "modelId": "BelleLargeV3TurboChinese",
      "caseId": "en-tech-talk-podcast",
      "reason": "language_not_supported"
    },
    {
      "modelId": "BelleLargeV3TurboChinese",
      "caseId": "zh-tech-podcast",
      "reason": "whisper_model_missing"
    }
  ]
}
