{
  "schemaVersion": 1,
  "engineFamily": "whisper-file",
  "published": {
    "sanitizedAt": "2026-10-29T08:22:23.716Z",
    "sourceFileName": "whisper-metal-mac-027a6dd62-2026-10-29_08-19-05.json",
    "note": "Paths, transcripts, and local machine identifiers removed for public hosting."
  },
  "environment": {
    "collectedAt": "2026-10-29T08:19:05.892Z",
    "platform": "darwin",
    "arch": "arm64",
    "cpuModel": "Apple M4",
    "cpuCores": 10,
    "cpuPerformanceCores": 4,
    "cpuEfficiencyCores": 6,
    "totalMemoryGB": 16,
    "osVersion": "macOS 26.3.1",
    "gpuModel": "Apple M4",
    "gitShortSha": "027a6dd62",
    "engineFamily": "whisper-file",
    "gpuEngine": "Metal",
    "useGpu": true,
    "threads": 4,
    "warmupPasses": 1,
    "vadMode": "silero",
    "fileScenePreset": "general",
    "whisperCppCommit": "927cfce34f31707e17f2bff35c349632fb9e2c3a",
    "whisperBinary": {
      "fileName": "audionote-transcribe",
      "sizeBytes": 895008,
      "sha256": "7787b1c28a8f3999ce0e884ffee0a82871446bd2b9202d27c00fbbbe0e7872d7"
    }
  },
  "runConfig": {
    "engine": "whisper-file",
    "scene": "general",
    "useGpu": true,
    "gpuEngine": "Metal",
    "threads": 4,
    "languageFromCase": true,
    "warmupPasses": 1,
    "notes": "macOS Apple Silicon：whisper.cpp 走 Metal（GGML）+ CoreML encoder。GPU 路径不传 --threads / 由 processors 自动档决策，threads 只作为记录值保留。CoreML encoder 首次加载要编译模型，warmupPasses=1 先跑一遍丢弃，避免把编译时间算进 RTF。"
  },
  "manifestPath": "manifest.json",
  "modelsPath": "whisper-models.json",
  "modelRuns": [
    {
      "modelId": "Base",
      "whisperModel": "Base",
      "modelInfo": {
        "fileName": "base.bin",
        "sizeBytes": 147951465,
        "sha256": "60ed5bc3dd14eea856493d334349b405782ddcaf0028d4b5df4088345fba2efe",
        "quantization": "fp16",
        "ggml": {
          "nVocab": 51865,
          "nAudioLayer": 6,
          "nTextLayer": 6,
          "nMels": 80,
          "ftype": 1
        }
      },
      "warmupPasses": 1,
      "batch": {
        "engine": "whisper-file",
        "results": [
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "audio-benchmark",
            "segmentCount": 6,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0,
            "audioDurationMs": 34537,
            "preprocessElapsedMs": 16,
            "transcribeElapsedMs": 714,
            "totalElapsedMs": 730,
            "realTimeFactor": 0.0211,
            "sceneHint": "general",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "en-long-sentence-pause",
            "segmentCount": 19,
            "errorMetricKind": "wer",
            "wer": 0.0149,
            "cer": null,
            "insertionRate": 0.005,
            "deletionRate": 0,
            "substitutionRate": 0.01,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0,
            "audioDurationMs": 70993,
            "preprocessElapsedMs": 18,
            "transcribeElapsedMs": 1539,
            "totalElapsedMs": 1557,
            "realTimeFactor": 0.0219,
            "sceneHint": "speech",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "en-oral-correction",
            "segmentCount": 12,
            "errorMetricKind": "wer",
            "wer": 0.089,
            "cer": null,
            "insertionRate": 0.0366,
            "deletionRate": 0.0209,
            "substitutionRate": 0.0314,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0206,
            "audioDurationMs": 68449,
            "preprocessElapsedMs": 19,
            "transcribeElapsedMs": 1447,
            "totalElapsedMs": 1466,
            "realTimeFactor": 0.0214,
            "sceneHint": "dialogue",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "en-tech-talk-podcast",
            "segmentCount": 16,
            "errorMetricKind": "wer",
            "wer": 0.038,
            "cer": null,
            "insertionRate": 0.0127,
            "deletionRate": 0,
            "substitutionRate": 0.0253,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0063,
            "audioDurationMs": 79681,
            "preprocessElapsedMs": 18,
            "transcribeElapsedMs": 1360,
            "totalElapsedMs": 1378,
            "realTimeFactor": 0.0173,
            "sceneHint": "course",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Base",
            "caseId": "zh-tech-podcast",
            "segmentCount": 13,
            "errorMetricKind": "cer",
            "wer": null,
            "cer": 0.0263,
            "insertionRate": 0,
            "deletionRate": 0.0033,
            "substitutionRate": 0.023,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0066,
            "audioDurationMs": 74665,
            "preprocessElapsedMs": 18,
            "transcribeElapsedMs": 1668,
            "totalElapsedMs": 1686,
            "realTimeFactor": 0.0226,
            "sceneHint": "course",
            "notes": ["scene=general"]
          }
        ],
        "failures": [],
        "summary": {
          "caseCount": 5,
          "successCount": 5,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": 0.0355,
          "averageCer": 0.0263,
          "averageInsertionRate": 0.0109,
          "averageDeletionRate": 0.0048,
          "averageSubstitutionRate": 0.0179,
          "averageDuplicateTokenRate": 0,
          "averagePreprocessElapsedMs": 17.8,
          "averageTotalElapsedMs": 1363.4,
          "averageRealTimeFactor": 0.0209,
          "byScene": {
            "general": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 16,
              "averageTotalElapsedMs": 730,
              "averageRealTimeFactor": 0.0211
            },
            "speech": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0149,
              "averageCer": null,
              "averageInsertionRate": 0.005,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.01,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 18,
              "averageTotalElapsedMs": 1557,
              "averageRealTimeFactor": 0.0219
            },
            "dialogue": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.089,
              "averageCer": null,
              "averageInsertionRate": 0.0366,
              "averageDeletionRate": 0.0209,
              "averageSubstitutionRate": 0.0314,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 19,
              "averageTotalElapsedMs": 1466,
              "averageRealTimeFactor": 0.0214
            },
            "course": {
              "caseCount": 2,
              "successCount": 2,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.038,
              "averageCer": 0.0263,
              "averageInsertionRate": 0.0063,
              "averageDeletionRate": 0.0016,
              "averageSubstitutionRate": 0.0241,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 18,
              "averageTotalElapsedMs": 1532,
              "averageRealTimeFactor": 0.0199
            }
          }
        }
      }
    },
    {
      "modelId": "Small",
      "whisperModel": "Small",
      "modelInfo": {
        "fileName": "small.bin",
        "sizeBytes": 487601967,
        "sha256": "1be3a9b2063867b937e64e2ec7483364a79917e157fa98c5d94b5c1fffea987b",
        "quantization": "fp16",
        "ggml": {
          "nVocab": 51865,
          "nAudioLayer": 12,
          "nTextLayer": 12,
          "nMels": 80,
          "ftype": 1
        }
      },
      "warmupPasses": 1,
      "batch": {
        "engine": "whisper-file",
        "results": [
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "audio-benchmark",
            "segmentCount": 8,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0,
            "audioDurationMs": 34537,
            "preprocessElapsedMs": 20,
            "transcribeElapsedMs": 1808,
            "totalElapsedMs": 1828,
            "realTimeFactor": 0.0529,
            "sceneHint": "general",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "en-long-sentence-pause",
            "segmentCount": 17,
            "errorMetricKind": "wer",
            "wer": 0.005,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.005,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0,
            "audioDurationMs": 70993,
            "preprocessElapsedMs": 19,
            "transcribeElapsedMs": 3613,
            "totalElapsedMs": 3632,
            "realTimeFactor": 0.0512,
            "sceneHint": "speech",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "en-oral-correction",
            "segmentCount": 13,
            "errorMetricKind": "wer",
            "wer": 0.0628,
            "cer": null,
            "insertionRate": 0.0314,
            "deletionRate": 0.0157,
            "substitutionRate": 0.0157,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0258,
            "audioDurationMs": 68449,
            "preprocessElapsedMs": 17,
            "transcribeElapsedMs": 3473,
            "totalElapsedMs": 3490,
            "realTimeFactor": 0.051,
            "sceneHint": "dialogue",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "en-tech-talk-podcast",
            "segmentCount": 12,
            "errorMetricKind": "wer",
            "wer": 0.019,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0.0063,
            "substitutionRate": 0.0127,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0064,
            "audioDurationMs": 79681,
            "preprocessElapsedMs": 18,
            "transcribeElapsedMs": 3130,
            "totalElapsedMs": 3148,
            "realTimeFactor": 0.0395,
            "sceneHint": "course",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "Small",
            "caseId": "zh-tech-podcast",
            "segmentCount": 35,
            "errorMetricKind": "cer",
            "wer": null,
            "cer": 0.0296,
            "insertionRate": 0,
            "deletionRate": 0.0164,
            "substitutionRate": 0.0132,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0067,
            "audioDurationMs": 74665,
            "preprocessElapsedMs": 15,
            "transcribeElapsedMs": 4185,
            "totalElapsedMs": 4200,
            "realTimeFactor": 0.0563,
            "sceneHint": "course",
            "notes": ["scene=general"]
          }
        ],
        "failures": [],
        "summary": {
          "caseCount": 5,
          "successCount": 5,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": 0.0217,
          "averageCer": 0.0296,
          "averageInsertionRate": 0.0063,
          "averageDeletionRate": 0.0077,
          "averageSubstitutionRate": 0.0093,
          "averageDuplicateTokenRate": 0,
          "averagePreprocessElapsedMs": 17.8,
          "averageTotalElapsedMs": 3259.6,
          "averageRealTimeFactor": 0.0502,
          "byScene": {
            "general": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 20,
              "averageTotalElapsedMs": 1828,
              "averageRealTimeFactor": 0.0529
            },
            "speech": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.005,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0.005,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 19,
              "averageTotalElapsedMs": 3632,
              "averageRealTimeFactor": 0.0512
            },
            "dialogue": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0628,
              "averageCer": null,
              "averageInsertionRate": 0.0314,
              "averageDeletionRate": 0.0157,
              "averageSubstitutionRate": 0.0157,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 17,
              "averageTotalElapsedMs": 3490,
              "averageRealTimeFactor": 0.051
            },
            "course": {
              "caseCount": 2,
              "successCount": 2,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.019,
              "averageCer": 0.0296,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0.0114,
              "averageSubstitutionRate": 0.0129,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 16.5,
              "averageTotalElapsedMs": 3674,
              "averageRealTimeFactor": 0.0479
            }
          }
        }
      }
    },
    {
      "modelId": "LargeV3Turbo",
      "whisperModel": "LargeV3Turbo",
      "modelInfo": {
        "fileName": "large-v3-turbo.bin",
        "sizeBytes": 1624555275,
        "sha256": "1fc70f774d38eb169993ac391eea357ef47c88757ef72ee5943879b7e8e2bc69",
        "quantization": "fp16",
        "ggml": {
          "nVocab": 51866,
          "nAudioLayer": 32,
          "nTextLayer": 4,
          "nMels": 128,
          "ftype": 1
        }
      },
      "warmupPasses": 1,
      "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,
            "rawDuplicateTokenRate": 0,
            "audioDurationMs": 34537,
            "preprocessElapsedMs": 18,
            "transcribeElapsedMs": 2283,
            "totalElapsedMs": 2301,
            "realTimeFactor": 0.0666,
            "sceneHint": "general",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "en-long-sentence-pause",
            "segmentCount": 13,
            "errorMetricKind": "wer",
            "wer": 0,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0,
            "audioDurationMs": 70993,
            "preprocessElapsedMs": 17,
            "transcribeElapsedMs": 3790,
            "totalElapsedMs": 3807,
            "realTimeFactor": 0.0536,
            "sceneHint": "speech",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "en-oral-correction",
            "segmentCount": 18,
            "errorMetricKind": "wer",
            "wer": 0.0838,
            "cer": null,
            "insertionRate": 0.0366,
            "deletionRate": 0.0209,
            "substitutionRate": 0.0262,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0206,
            "audioDurationMs": 68449,
            "preprocessElapsedMs": 27,
            "transcribeElapsedMs": 3996,
            "totalElapsedMs": 4023,
            "realTimeFactor": 0.0588,
            "sceneHint": "dialogue",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "en-tech-talk-podcast",
            "segmentCount": 11,
            "errorMetricKind": "wer",
            "wer": 0.0127,
            "cer": null,
            "insertionRate": 0,
            "deletionRate": 0.0063,
            "substitutionRate": 0.0063,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0064,
            "audioDurationMs": 79681,
            "preprocessElapsedMs": 24,
            "transcribeElapsedMs": 3544,
            "totalElapsedMs": 3568,
            "realTimeFactor": 0.0448,
            "sceneHint": "course",
            "notes": ["scene=general"]
          },
          {
            "engine": "whisper-file",
            "model": "LargeV3Turbo",
            "caseId": "zh-tech-podcast",
            "segmentCount": 24,
            "errorMetricKind": "cer",
            "wer": null,
            "cer": 0.0033,
            "insertionRate": 0,
            "deletionRate": 0,
            "substitutionRate": 0.0033,
            "duplicateTokenRate": 0,
            "rawDuplicateTokenRate": 0.0066,
            "audioDurationMs": 74665,
            "preprocessElapsedMs": 30,
            "transcribeElapsedMs": 4754,
            "totalElapsedMs": 4784,
            "realTimeFactor": 0.0641,
            "sceneHint": "course",
            "notes": ["scene=general"]
          }
        ],
        "failures": [],
        "summary": {
          "caseCount": 5,
          "successCount": 5,
          "crashCount": 0,
          "crashRate": 0,
          "averageWer": 0.0241,
          "averageCer": 0.0033,
          "averageInsertionRate": 0.0073,
          "averageDeletionRate": 0.0054,
          "averageSubstitutionRate": 0.0072,
          "averageDuplicateTokenRate": 0,
          "averagePreprocessElapsedMs": 23.2,
          "averageTotalElapsedMs": 3696.6,
          "averageRealTimeFactor": 0.0576,
          "byScene": {
            "general": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 18,
              "averageTotalElapsedMs": 2301,
              "averageRealTimeFactor": 0.0666
            },
            "speech": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0,
              "averageCer": null,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0,
              "averageSubstitutionRate": 0,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 17,
              "averageTotalElapsedMs": 3807,
              "averageRealTimeFactor": 0.0536
            },
            "dialogue": {
              "caseCount": 1,
              "successCount": 1,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0838,
              "averageCer": null,
              "averageInsertionRate": 0.0366,
              "averageDeletionRate": 0.0209,
              "averageSubstitutionRate": 0.0262,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 27,
              "averageTotalElapsedMs": 4023,
              "averageRealTimeFactor": 0.0588
            },
            "course": {
              "caseCount": 2,
              "successCount": 2,
              "crashCount": 0,
              "crashRate": 0,
              "averageWer": 0.0127,
              "averageCer": 0.0033,
              "averageInsertionRate": 0,
              "averageDeletionRate": 0.0032,
              "averageSubstitutionRate": 0.0048,
              "averageDuplicateTokenRate": 0,
              "averagePreprocessElapsedMs": 27,
              "averageTotalElapsedMs": 4176,
              "averageRealTimeFactor": 0.0544
            }
          }
        }
      }
    },
    {
      "modelId": "LargeV3",
      "whisperModel": "LargeV3",
      "warmupPasses": 1,
      "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",
      "warmupPasses": 1,
      "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"
    }
  ]
}
