{
  "formatVersion": 1,
  "scope": "Curated public research extract; not the full raw run.",
  "canonical": "https://embiro.ai/research/whisper-silence-and-decoding",
  "fieldNote": 4,
  "slug": "whisper-silence-and-decoding",
  "title": "Silence should stay silent.",
  "description": "A Whisper adapter retry caught a decoder incompatibility and a hallucinated transcript on silent audio.",
  "category": "Serving",
  "art": "speech-wave",
  "thumbnail": {
    "src": "/research/thumbnails/whisper-silence-and-decoding.webp",
    "alt": "An irregular sound wave passing through an acoustic filter into a quiet line."
  },
  "date": "2026-10-10",
  "published": "2026-10-12",
  "updated": "2026-10-12",
  "author": "Embiro Labs Research",
  "status": "Exploratory benchmark",
  "headline": "A successful transcript can still be a bug.",
  "metric": "0.679s",
  "metricLabel": "median · six warm synthetic clips",
  "method": [
    "Cape Town T4; pinned Faster-Whisper large-v3, Faster Whisper 1.2.0, CTranslate2 4.8.2, CUDA INT8_FLOAT16, beam five, English hint and VAD.",
    "Three eSpeak NG synthetic English clips at 145 words/minute, converted to mono 16 kHz PCM16, repeated twice after a separate first request. Instance-loopback HTTP."
  ],
  "sections": [
    {
      "title": "Two issues, two different fixes",
      "paragraphs": [
        "The retry reproduced a PyAV decoder-argument incompatibility. The adapter validated PCM16 WAV frames directly and passed normalised samples to Whisper. The earlier category-test startup timeout was not reproduced, so its original cause remains unconfirmed.",
        "A three-second silent recording initially produced “Thank you.” Enabling voice-activity filtering made that same fixture return an empty transcript. One silence success does not eliminate hallucinations on noise or other non-speech inputs."
      ]
    },
    {
      "title": "Names deserve explicit tests",
      "paragraphs": [
        "The collection message transcribed exactly, while the longer policy message consistently rendered “Kampala” as “compiler”. Synthetic English is useful for adapter checks, but cannot validate local pronunciation, accents or language support."
      ]
    },
    {
      "title": "The complete request path",
      "paragraphs": [
        "Both a synchronous gateway request and a queued job completed, with recorded audio-second usage matching the configured rounding rule. The rate card was synthetic. Later real-recording and mixed-load studies extended this early feasibility check."
      ]
    }
  ],
  "limitations": [
    "Three synthetic clips are not an ASR quality benchmark. No real accents, Swahili, Luganda, long recordings or concurrent media traffic were tested here.",
    "The test proves behavior for one silence recording, not universal hallucination prevention."
  ],
  "tables": [
    {
      "title": "Warm repeat timings",
      "columns": [
        "Fixture",
        "Audio (s)",
        "Run 1 (s)",
        "Run 2 (s)"
      ],
      "rows": [
        [
          "Collection",
          "4.12",
          "0.563",
          "0.562"
        ],
        [
          "Payment",
          "6.34",
          "0.681",
          "0.678"
        ],
        [
          "Policy",
          "18.71",
          "1.362",
          "1.355"
        ]
      ],
      "note": "Separate cold request: 0.812 seconds. Timings exclude public-network transit."
    }
  ],
  "references": [],
  "audio": [],
  "evidence": [
    {
      "file": "speech-results.json",
      "sha256": "0bbea356a922eb6d8af401e93b654988caa0e8e391806c003bc5b7ee8ace227d"
    },
    {
      "file": "before-vad-results.json",
      "sha256": "36570049f018a7dd0801224fce59e19e7c7b0b6b019c96bb5d1b88f3ceb3e59a"
    }
  ]
}
