{
  "_doc": "Hand-written (2026-10-21, Daniel: a 'Which model should I use?' helper with the options on a speed-accuracy gradient). Drives /models/choose and the Variants section on /models/sabich through chooser.js; nothing in the JS names a model. `variants`: one entry per model the chooser can recommend. `gradient` (0 = smallest and fastest, 100 = most accurate), `speed` and `accuracy` (1-5) are ESTIMATES from model size and each model's own evaluations, which were not scored on the same test set: say so wherever they are shown. `status` is 'available' when the Hugging Face page returns 200 (checked with curl; gated repos return 200 for the page) and 'coming-soon' otherwise. `rules`: checked in order, the first whose `when` matches the form wins; a `when` key that is absent matches anything; values are the form's option values (device phone|computer|wearable; gpu none|amd|nvidia|apple; vram 4|8|12|16; priority speed|balanced|accuracy; live true|false). `how` says which build or runtime to use, `note` is an optional caveat. Meant to be replaced by the Hebrish app catalogue v2 (Hebrish-ASR/Hebrish-App shared/) once it carries the same fields.",
  "checked": "2026-10-21",
  "estimate_note": "Positions are estimates from model size and each model's own evaluations. The models have not all been scored on the same test set, so read them as a rough order, not a ranking.",
  "variants": [
    {
      "id": "sabich-asr4all-s",
      "name": "Sabich-asr4all-S",
      "line": "sabich",
      "base": "asr4all S",
      "params": "28M",
      "size": "113 MB fp32; ONNX about 108 MB",
      "status": "available",
      "page": "/models/sabich-asr4all",
      "repo": "Hebrish/Sabich-asr4all-S",
      "for": "Wearables and very low-power boards",
      "traits": ["streaming", "CPU, ONNX", "numbers as words", "not in the Hebrish apps yet"],
      "gradient": 4,
      "speed": 5,
      "accuracy": 2
    },
    {
      "id": "sabich-asr4all-m",
      "name": "Sabich-asr4all-M",
      "line": "sabich",
      "base": "asr4all M",
      "params": "56M",
      "size": "223 MB fp32; ONNX about 214 MB",
      "status": "available",
      "page": "/models/sabich-asr4all",
      "repo": "Hebrish/Sabich-asr4all-M",
      "for": "Wearables and low-power boards, a little more accurate than S",
      "traits": ["streaming", "CPU, ONNX", "numbers as words", "not in the Hebrish apps yet"],
      "gradient": 14,
      "speed": 5,
      "accuracy": 2
    },
    {
      "id": "sabich-parakeet-110m",
      "name": "Sabich-Parakeet-110M",
      "line": "sabich",
      "base": "Parakeet TDT-CTC 110M",
      "params": "114M",
      "size": "about 137 MB (sherpa-onnx int8)",
      "status": "available",
      "page": "/models/sabich-110m",
      "repo": "Hebrish/Sabich-Parakeet-110M",
      "for": "Low-end phones, watches and wearables",
      "traits": [],
      "gradient": 30,
      "speed": 4,
      "accuracy": 3
    },
    {
      "id": "shakshuka",
      "name": "Shakshuka",
      "line": "shakshuka",
      "base": "Nemotron Speech Streaming 0.6B",
      "params": "0.6B",
      "size": "about 662 MB (sherpa-onnx int8)",
      "status": "available",
      "page": "/models/shakshuka",
      "repo": "Hebrish/Shakshuka",
      "for": "Live text while you speak: captions, live dictation",
      "traits": ["streaming"],
      "gradient": 54,
      "speed": 4,
      "accuracy": 4
    },
    {
      "id": "jachnun",
      "name": "Jachnun",
      "line": "jachnun",
      "base": "Parakeet TDT 0.6B v2",
      "params": "0.6B",
      "size": "about 660 MB (sherpa-onnx int8)",
      "status": "available",
      "page": "/models/jachnun",
      "repo": "Hebrish/Jachnun",
      "for": "Code-switching only, without the tech vocabulary",
      "traits": ["in the Hebrish apps"],
      "gradient": 61,
      "speed": 3,
      "accuracy": 4
    },
    {
      "id": "sabich",
      "name": "Sabich",
      "line": "sabich",
      "base": "Parakeet TDT 0.6B v2",
      "params": "0.6B",
      "size": "about 661 MB (sherpa-onnx int8)",
      "status": "available",
      "page": "/models/sabich",
      "repo": "Hebrish/Sabich",
      "for": "Phones and computers without a GPU: the default",
      "traits": ["in the Hebrish apps", "recommended"],
      "gradient": 67,
      "speed": 3,
      "accuracy": 4
    },
    {
      "id": "sabich-qwen3-asr-1.7b",
      "name": "Sabich-Qwen3-ASR-1.7B",
      "line": "sabich",
      "base": "Qwen3-ASR 1.7B",
      "params": "2.0B",
      "size": "4.1 GB (bf16); GGUF Q8_0 about 2 GB",
      "status": "available",
      "page": "/models/sabich-qwen3",
      "repo": "Hebrish/Sabich-Qwen3-ASR-1.7B",
      "for": "Desktop GPUs: the highest accuracy",
      "traits": ["not in the Hebrish apps yet"],
      "gradient": 95,
      "speed": 2,
      "accuracy": 5
    },
    {
      "id": "sabich-canary-qwen-2.5b",
      "name": "Sabich-Canary-Qwen-2.5B",
      "line": "sabich",
      "base": "Canary-Qwen 2.5B",
      "params": "2.56B",
      "size": "about 5 GB (bf16), about 6 GB of VRAM; NeMo only",
      "status": "available",
      "page": "/models/sabich-canary-qwen",
      "repo": "Hebrish/Sabich-Canary-Qwen-2.5B",
      "for": "Desktop GPUs: the best plain English of the Sabich variants, behind Sabich-Qwen3-ASR-1.7B on code-switching",
      "traits": ["audio in pieces of 40 s or less", "not in the Hebrish apps yet"],
      "gradient": 88,
      "speed": 2,
      "accuracy": 4
    }
  ],
  "rules": [
    {
      "when": {"device": ["wearable"], "live": [true]},
      "pick": "sabich-asr4all-s",
      "how": "the ONNX bundle with ONNX Runtime, or Transformers remote code, on the CPU (streaming)",
      "reason": "The smallest Sabich, and it streams, so text appears while you speak.",
      "runner_up": "sabich-parakeet-110m",
      "runner_how": "sherpa-onnx int8 (not streaming)"
    },
    {
      "when": {"live": [true]},
      "pick": "shakshuka",
      "how": "NeMo cache-aware streaming, or the sherpa-onnx int8 and GGUF builds",
      "reason": "Shakshuka is the streaming line: the words appear while you are still talking.",
      "runner_up": "sabich",
      "runner_how": "if you can wait a moment after you stop speaking: the Hebrish apps",
      "note": "Shakshuka is not in the Hebrish apps yet."
    },
    {
      "when": {"device": ["wearable"], "priority": ["speed"]},
      "pick": "sabich-asr4all-s",
      "how": "the ONNX bundle with ONNX Runtime, or Transformers remote code, on the CPU",
      "reason": "At 28M parameters it is the smallest and fastest Sabich, built for wearables and very low-power boards. It writes numbers as words.",
      "runner_up": "sabich-parakeet-110m",
      "runner_how": "sherpa-onnx int8 or GGUF"
    },
    {
      "when": {"device": ["wearable"]},
      "pick": "sabich-parakeet-110m",
      "how": "sherpa-onnx int8 (about 137 MB) or GGUF Q8_0 (135 MB) with transcribe.cpp",
      "reason": "NVIDIA's smallest Parakeet with all of Sabich's training: about a fifth of the size of Sabich, and it writes numbers in digits.",
      "runner_up": "sabich-asr4all-m",
      "runner_how": "smaller still: the ONNX bundle on the CPU, numbers as words"
    },
    {
      "when": {"device": ["phone"], "priority": ["speed"]},
      "pick": "sabich-parakeet-110m",
      "how": "sherpa-onnx int8 or GGUF Q8_0 in Offline Voice Input",
      "reason": "About a fifth of the size of Sabich, for older and low-end phones. Expect it to be less accurate.",
      "runner_up": "sabich",
      "runner_how": "in the Hebrish app",
      "note": "Sabich-Parakeet-110M is not in the Hebrish apps yet."
    },
    {
      "when": {"device": ["phone"], "priority": ["accuracy"]},
      "pick": "sabich",
      "how": "the Hebrish app for Android (about 660 MB, downloaded once)",
      "reason": "The most accurate model that runs well on a phone, and the default in the Hebrish app.",
      "runner_up": "sabich-qwen3-asr-1.7b",
      "runner_how": "transcribe.cpp Q4_K_M GGUF in Offline Voice Input: it runs, but slowly"
    },
    {
      "when": {"device": ["phone"]},
      "pick": "sabich",
      "how": "the Hebrish app for Android (about 660 MB, downloaded once)",
      "reason": "The default for phones: code-switching plus tech vocabulary, on the device.",
      "runner_up": "sabich-parakeet-110m",
      "runner_how": "if your phone is short on memory or speed"
    },
    {
      "when": {"device": ["computer"], "gpu": ["none"], "priority": ["speed"]},
      "pick": "sabich",
      "how": "the Hebrish app for Ubuntu or Windows (int8, on the CPU)",
      "reason": "It runs on the CPU at dictation speed, so there is no need to go smaller.",
      "runner_up": "sabich-parakeet-110m",
      "runner_how": "sherpa-onnx int8, on older or slower CPUs"
    },
    {
      "when": {"device": ["computer"], "gpu": ["none"]},
      "pick": "sabich",
      "how": "the Hebrish app for Ubuntu or Windows (int8, on the CPU)",
      "reason": "Without a GPU, Sabich is the best balance: accurate and quick on the CPU.",
      "runner_up": "sabich-qwen3-asr-1.7b",
      "runner_how": "GGUF with llama.cpp on the CPU: it runs, but expect it to be slow"
    },
    {
      "when": {"device": ["computer"], "gpu": ["apple"]},
      "pick": "sabich",
      "how": "the MLX build with parakeet-mlx on Apple silicon",
      "reason": "Sabich has an MLX build for Apple silicon; there is no Hebrish app for Mac yet.",
      "runner_up": "sabich-qwen3-asr-1.7b",
      "runner_how": "GGUF with llama.cpp's Metal backend (not tested yet)"
    },
    {
      "when": {"device": ["computer"], "gpu": ["amd", "nvidia"], "priority": ["speed"]},
      "pick": "sabich",
      "how": "the Hebrish app for Ubuntu or Windows, or ONNX / GGUF in your own tools",
      "reason": "Smaller and quicker than the Qwen model, and close behind it on accuracy.",
      "runner_up": "sabich-qwen3-asr-1.7b",
      "runner_how": "bf16 in Transformers, about 5 GB of VRAM"
    },
    {
      "when": {"device": ["computer"], "gpu": ["amd", "nvidia"], "vram": ["4"], "priority": ["accuracy"]},
      "pick": "sabich-qwen3-asr-1.7b",
      "how": "GGUF Q8_0 (about 2 GB) with llama.cpp: HIP or Vulkan on AMD, CUDA on NVIDIA",
      "reason": "The highest accuracy, and the Q8_0 GGUF fits in 4 GB of VRAM.",
      "runner_up": "sabich",
      "runner_how": "the Hebrish app, on the CPU",
      "note": "The bf16 weights need about 5 GB of VRAM; the Q8_0 GGUF needs about 2.2 GB."
    },
    {
      "when": {"device": ["computer"], "gpu": ["amd", "nvidia"], "vram": ["4"]},
      "pick": "sabich",
      "how": "the Hebrish app for Ubuntu or Windows",
      "reason": "With 4 GB of VRAM or less, Sabich is the quicker all-round choice.",
      "runner_up": "sabich-qwen3-asr-1.7b",
      "runner_how": "GGUF Q8_0 (about 2 GB) with llama.cpp"
    },
    {
      "when": {"device": ["computer"], "gpu": ["amd", "nvidia"]},
      "pick": "sabich-qwen3-asr-1.7b",
      "how": "bf16 in Transformers (about 5 GB of VRAM; PyTorch ROCm on AMD, CUDA on NVIDIA), or GGUF with llama.cpp",
      "reason": "Your GPU has room for it, so you get the highest accuracy at a good speed.",
      "runner_up": "sabich",
      "runner_how": "the Hebrish app, if you want dictation in every app now"
    },
    {
      "when": {},
      "pick": "sabich",
      "how": "the Hebrish apps",
      "reason": "The default: code-switching plus tech vocabulary.",
      "runner_up": "jachnun",
      "runner_how": "code-switching only"
    }
  ]
}
