Skip to content

chore(main): release 2.0.0 - #17

Open
the-mighty-teapot[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main
Open

the-mighty-teapot[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main

Conversation

@the-mighty-teapot

@the-mighty-teapot the-mighty-teapot Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

🤖 I have created a release beep boop

2.0.0 (2026-10-12)

⚠ BREAKING CHANGES

  • service: drop PARAKEET_MODELS_DIR, use the HF cache (#114)
  • service: long audio is cut at pauses found by loudness instead of by Silero-VAD, so chunk boundaries move and transcripts can differ slightly. Set PARAKEET_VAD=silero for the old behaviour, e.g. for speech over a noise bed within ~5 dB of it, where volume missed some pauses.
  • words: align_words and PARAKEET_ALIGN_WORDS are removed; send aligner instead. /health reports aligner state as "name:quantization". A custom catalog's aligners entries need the new shape.
  • api: model is required and names a model, not a precision: parakeet-v3-fp32/-fp16/-int8 and the other -quant names are gone (send quantization instead, default fp32 also on GPU), as are the aliases (parakeet-tdt-0.6b-v3, HF repo ids, whisper-large, whisper-turbo, ...) and PARAKEET_DEFAULT_MODEL. Nothing is preloaded unless PARAKEET_PRELOAD_MODELS is set. Model cards drop aliases, gain quantizations, and report owned_by as the model's author (nvidia, openai); /health drops default_model.
  • models: PARAKEET_CHUNK_TARGET_SEC and PARAKEET_CHUNK_MAX_SEC are removed; chunk lengths are per model. PARAKEET_CHUNK_MIN_SEC remains.

🌟 Features

  • api: name a model and pick its precision separately; fix the Whisper catalog (da78ff9)
  • compare: a page to compare models and aligners by ear (#48) (1a88458)
  • models: add opt-in Whisper model support (#25) (2e6aaf5)
  • models: opt-in LRU cap on the loaded-model cache (#37) (dd71261)
  • models: serve parakeet-v3 from Olicorne's re-export (#42) (a819f87)
  • models: YAML model catalog with pinned, explicit files (#41) (f2439eb)
  • service: a cleaner transcription page, with a player that follows along (#111) (d020ed9)
  • service: a transcription page at / and /transcribe, uploaded or recorded (#108) (996cc26), closes #106
  • service: cut speech with no pause in the quietest gap between words (8837c1d)
  • service: drop PARAKEET_MODELS_DIR, use the HF cache (#114) (1a1d268)
  • service: find pauses in long audio by volume by default (b94ca73)
  • service: forced-alignment endpoint with a per-word score (#104) (bbd918c), closes #85
  • service: hear how numbers were said without a named aligner (#113) (74a956f)
  • service: list aligners in /health as models are listed (9fe46e9), closes #107
  • service: opt-in check for a word Parakeet makes up as a clip ends in a pause (#112) (019ef2c), closes #110
  • service: opt-in vad_filter returns nothing for short audio without speech (#83) (3e6ac15)
  • service: PARAKEET_VAD=volume finds pauses by loudness, ~30x faster (f6a207b)
  • service: unload models and aligners left idle for 6 hours (#70) (47e779f)
  • words: fp16 aligners; fp16/fp32 aligners on the GPU when the models are (#57) (61e699b)
  • words: named word aligners from the model catalog, in Parakeet v3's 25 languages (#45) (07193b4)
  • words: retime_words moves word times out of pauses by loudness (0464b42)
  • words: Whisper word timestamps via forced alignment + real language list (#34) (612aec4)

🩹 Fixes

  • docker: compose healthchecks wait for /healthz, not /health (510625e)
  • models: answer 503 naming the model when it cannot be loaded (#50) (8c2a679)
  • models: chunk Parakeet v2 at 25/30 s so long audio stops dropping speech (#39) (4037c62)
  • models: keep ONNX external data beside its model in the HF cache (73a44e0), closes #35
  • service: answer aligner_quantization with a 400 naming aligner=name:quantization (4d06ebc)
  • service: call the API stt-api in its docs (43d3ae8)
  • service: count a margin frame louder than -50 dBFS as sound, whatever its floor (d82b41e)
  • service: count every token with a word character when finding a skipped stretch (4bd641a)
  • service: count only words clear of the first decode's, and lose none, to keep a redo (174bdf6)
  • service: cut at a short pause before the minimum when it costs no piece (ae2be04)
  • service: cut parakeet-v2's chunks in pauses again after room for context (edf9b9e)
  • service: decode a clip or piece heard as nothing again in parts (#117) (8131dfb)
  • service: decode MP4/M4A/MOV/3GP with the moov index at the end (#97) (dab2aca), closes #90
  • service: document responses, errors and form fields in /docs (0448965)
  • service: don't hold the model lock while a model loads (#99) (cd79b14), closes #92
  • service: find a skipped stretch that a lone punctuation token splits (e26addf)
  • service: hear again what is past a quiet phrase's reach, and keep a sound only half a second past it (7667b46)
  • service: hear quieter speakers' turns in long audio, not breaths or clicks (#75) (936ab1a)
  • service: join a quiet stretch's sounds across a fixed 400 ms, not PARAKEET_VAD_MIN_SILENCE_MS (9ef4e2b)
  • service: join quiet sounds across PARAKEET_VAD_MIN_SILENCE_MS where it is longer than 400 ms (4c9ed66)
  • service: keep a forced cut that already sits in a gap, and score cuts without a DC offset (553e16b)
  • service: keep a quiet word near a phrase whole, not cut where the phrase's reach ends (9e931e4)
  • service: keep a split first or last range's whole margin (9126951)
  • service: keep a stalled chunk's redo only if it hears words there (6841a9f)
  • service: keep each word at a cut in speech once, not twice or never (5b63524)
  • service: keep Parakeet's apostrophe-led words apart in its text (3a6943f)
  • service: keep silence past the speech from adding a piece (a3b8220)
  • service: keep sound in a split range's margin, and move a cut only out of a word (ca8f355)
  • service: keep the cut before the minimum from cutting speech at other trim gaps (112759c)
  • service: keep the space before an apostrophe-led word (40f5e17), closes #93
  • service: keep words only one piece heard near a cut by their own time (308d7d6)
  • service: list timestamp_granularities once in the API docs (b8bee32)
  • service: load fp32 models from an NFS models volume (#87) (78f5335)
  • service: load models straight from the HF cache, no load folder (#89) (103861a)
  • service: overlap long audio's chunks so Parakeet invents no words at cuts (#69) (a9c5036)
  • service: redo each skipped stretch when a piece heard only mid-way (0b9fb0e), closes #96
  • service: redo speech a piece skipped on its own, one-piece clips too (#79) (4101302)
  • service: size the first range's lead margin by all its phrases (707aa75)
  • service: slide cuts later in the pause and shrink the lead margin to fit (1bc09b9)
  • service: split speech with no pause evenly, leaving no sliver (497b0dc)
  • service: square loudness frames in blocks, not the whole file at once (8b9be2e)
  • service: stop calling the -35 dBFS chunks cut at their full length (0525c14)
  • service: stop decoding just past the audio length limit (#101) (04c26e3), closes #91
  • service: take a slow DC offset out before measuring loudness (#82) (64a9e37)
  • service: trim the first phrase's lead margin to the pieces it needs (45ab84c)
  • words: don't hold the aligner cache lock while downloading a model (#56) (6397a85), closes #55

📚 Documentation

  • add the 1.5.0 to 2.0.0 upgrade guide (63b735e)
  • correct what the docs say is true today (a459ae5)
  • describe the gap test and the margin's -50 dBFS rule, and drop figures that held for one recording set (69c7879)
  • docker: state the GPU image's minimum GPU and driver (#62) (5ca261a)
  • restructure the README around using the API; one config reference (42d6208)
  • say a chunk under the minimum is also cut where that adds no chunk (ed4be7f)
  • say a split range gives up only a shared pause, and what that costs with no context (07e0a17)
  • say breaths add up to speech only when closer than 400 ms (567a233)
  • service: describe how a forced cut moves and what a split range's margin keeps (d4183b9)
  • service: measure PARAKEET_VAD=volume on three audiobooks and two noise beds (41c18cb)
  • service: say only what was measured about PARAKEET_VAD=volume (47c00c3)
  • state the conditions behind the forced-cut figures, and that v2's gain depends on slack (1a8a88a)
  • words: Parakeet times words into pauses; name an aligner (#61) (900650f)

⚡ Performance

  • service: give each audio thread its own Silero VAD (7400eb2)

🧹 Chores

🤖 Automation

  • docker: smoke-test every image before it is published (05b8d45), closes #94
  • docker: smoke-test the CPU image by loading parakeet-v3 int8 (#52) (ae10c97)
  • let Renovate bump the contract job's torch pin with the Dockerfiles (226461a)
  • run the real Silero VAD in the contract job, and pin silero-vad (d228f04), closes #95

This PR was generated with Release Please. See documentation.

@the-mighty-teapot
the-mighty-teapot Bot force-pushed the release-please--branches--main branch 6 times, most recently from 62b3722 to acf98c0 Compare September 27, 2026 17:35
@the-mighty-teapot
the-mighty-teapot Bot force-pushed the release-please--branches--main branch 13 times, most recently from 0fb8f51 to a88ee16 Compare October 1, 2026 17:16
@the-mighty-teapot
the-mighty-teapot Bot force-pushed the release-please--branches--main branch 10 times, most recently from 351780f to 998155d Compare October 9, 2026 01:14
@the-mighty-teapot
the-mighty-teapot Bot force-pushed the release-please--branches--main branch 28 times, most recently from da7a188 to 0db026e Compare October 12, 2026 04:16
@the-mighty-teapot
the-mighty-teapot Bot force-pushed the release-please--branches--main branch from 0db026e to b5e1480 Compare October 12, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment