Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions THIRD-PARTY-LICENSES.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ Prebuilt artifacts (the Swift xcframework, the native Python wheels, and the
npm platform packages) carry these same texts alongside the binaries — see each
binding's packaging for the bundled `LICENSE.ggml` / `LICENSE.miniz` / `LICENSE.silero_vad` files.

The Whisper alignment-head presets come from
[whisper.cpp v1.8.3](https://github.com/ggml-org/whisper.cpp/blob/v1.8.3/src/whisper.cpp),
copyright (c) 2023–2024 The ggml authors, under the
[MIT license](https://github.com/ggml-org/whisper.cpp/blob/v1.8.3/LICENSE)
(the terms are reproduced under ggml below).

Conversion-time tooling also includes `scripts/lib/phonon.py`, adapted from
Fermion Research's Apache-2.0 container reader at
`FermionResearch/Phonon-2@7e153e4054c0a10db6d47d6fff5c062d4c77c154`.
Expand Down
1 change: 1 addition & 0 deletions docs/environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ its var is unset. Convention: `TRANSCRIBE_<FAMILY>_GGUF`.
| `TRANSCRIBE_COHERE_GGUF` | `cohere_real_smoke`, `cohere_e2e_smoke` |
| `TRANSCRIBE_GRANITE5_CTC_GGUF` | `granite5_ctc_real_smoke`, `granite5_ctc_e2e_smoke` |
| `TRANSCRIBE_WHISPER_GGUF` | `whisper_e2e_smoke`, `whisper_tokenize_parity` |
| `TRANSCRIBE_WHISPER_WORD_GGUF` | `whisper_word_timestamps_smoke` (stock OpenAI Whisper GGUF, e.g. Base) |
| `TRANSCRIBE_QWEN3_ASR_GGUF` (+ `_0_6B_GGUF` / `_1_7B_GGUF`) | qwen3_asr smokes / parity |
| `TRANSCRIBE_MOONSHINE_STREAMING_TINY_GGUF` | moonshine_streaming smokes, `stream_offline_interleave_smoke` |
| `TRANSCRIBE_VOXTRAL_REALTIME_GGUF` | `voxtral_realtime_real_smoke`, `stream_offline_interleave_smoke` |
Expand Down
19 changes: 16 additions & 3 deletions docs/models/whisper.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,26 @@ All Whisper variants support:
- **Transcription** of 16 kHz mono WAV input.
- **Long-form audio** via 30-second chunked decoding with the
prev-context window assembly described in the family doc.
- **Segment timestamps** — the finest granularity the library emits for
Whisper (`max_timestamp_kind = segment`). Word-level timestamps are not
currently exposed.
- **Segment timestamps** — the default under `AUTO`, when no transcript prefix is set.
- **Translation** (any supported language → English) on multilingual
checkpoints — `.en` variants are transcribe-only.

What's not supported (consistent across the family): real-time
streaming (whisper is not streaming-first; chunked 30-second windows
only), VAD, speaker diarization. See the family doc for the full
runtime contract.

## Word timestamps

The OpenAI Whisper GGUF variants advertise `TRANSCRIBE_TIMESTAMPS_WORD`
as their maximum timestamp granularity. Request it with
`transcribe_run_params::timestamps` or `--timestamps word` in the CLI.
The decoder aligns the accepted text to the audio with a second cross-attention
pass and dynamic time warping (DTW). Word times are in milliseconds relative to
the input, including across 30-second windows. Languages such as Japanese
use complete UTF-8 token pieces as timing units.

This mode adds decoder work and uses the serial path for offline batches.
It requires a model-specific alignment-head preset, so legacy `.bin` models
and other Whisper variants advertise segment granularity. A transcript prefix
requires `AUTO` or `NONE`.
1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ add_library(transcribe
arch/whisper/weights.cpp
arch/whisper/encoder.cpp
arch/whisper/decoder.cpp
arch/whisper/alignment.cpp
arch/whisper/bin_load.cpp
arch/whisper/public.cpp
arch/moonshine/model.cpp
Expand Down
Loading