Skip to content

Custom vocabulary (promptTokens) makes Large v3 Turbo return empty transcripts #181

Description

@flesler

Summary

With custom vocabulary enabled, Large v3 Turbo (Compact) (openai_whisper-large-v3-v20240930_turbo_632MB) often returns empty text (Result: ... / “Transcription produced no usable text”). The same audio works on other models (e.g. Distil Large v3 Turbo), and clearing vocabulary makes Large v3 Turbo work again.

This looks separate from the silent-PCM / warm-engine issue in #176 / #178 — here the mic path is fine; WhisperKit returns no usable text when promptTokens are set on this turbo variant.

Repro

  1. Set custom vocabulary (e.g. GraphQL, HTML, Git, AWS, MongoDB, Zod, Jira, UTF-8, JSON)
  2. Load Large v3 Turbo (Compact)
  3. Dictate normally
  4. Observe empty transcriptions
  5. Clear vocabulary (or switch to Distil Large v3 Turbo) → works again

Likely cause

VocaMac passes vocabulary to WhisperKit as promptTokens (with usePrefillPrompt). There is a known WhisperKit issue where promptTokens + turbo/distilled models hit the firstTokenLogProbThreshold gate and abort as “no speech”:

VocaMac 0.7.0 depends on WhisperKit ≥0.9.4; may not include a fix yet.

Environment

  • VocaMac 0.7.0
  • Apple M5 Max
  • Model: openai_whisper-large-v3-v20240930_turbo_632MB
  • Custom vocabulary non-empty

Notes

Not proposing a PR yet — not sure the right fix is small (bump WhisperKit vs disable promptTokens on turbo vs expose decode thresholds). Happy to test builds.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions