v0.4.0
CurrentAdded
- New local model FireRedASR2 AED 1.1B (roadmap phase 3 engine): open-sourced by Xiaohongshu, first place on public Chinese benchmarks (AISHELL-1 CER 0.57%), Chinese/English with code-switching and word-level timestamps aggregated into segment timelines, Apache-2.0. The inference code ships as a minimal vendored set with zero new Python dependencies; long audio is split by VAD (60 seconds per input).
- Server/Docker builds gain a NeMo engine (roadmap phase 4, server deployments only — desktop builds hide these entries entirely): two CC-BY-4.0 models, parakeet-tdt-0.6b-v3 (25 European languages, word-level timestamps) and canary-1b-flash (English, German, French, Spanish), with attribution shown in model details. CUDA-only and not yet verified on real CUDA hardware, which is documented as an explicit hand-off item.
Changed
- The initial translation batch cap for local Ollama providers returns to 16 segments / 1600 characters: oversized batches were more likely to trigger split retries on long subtitles, making them slower in practice.
Fixed
- Cross-segment translation misalignment can no longer be silently published: sanity checks are now normalized by translated length, and the complete result is verified once more after all batches finish, before the translated version is written. Affected segments get one targeted retranslation; if that still fails, the run stops with an explicit error code while keeping the successful batches (with a localized notice), instead of publishing a translation that does not match the timeline.
- Local transcription workers now send liveness heartbeats: slow chunks are no longer killed by the stall timeout while inference keeps advancing, and task rows refresh periodically during inference. A run is only declared stalled when the process is alive but its heartbeat has frozen, or a hard cap passes with no output — the local queue stays usable.
- Three new per-segment translation integrity checks: wholesale source echo, model meta-commentary leaking into the output (such as "(Note: ...)"), and placeholder translations (such as "(no translation)"). All three previously slipped past every batch-level check and got published; legitimate verbatim returns are unaffected.
- Updated the transitive source-map-js dependency to 1.2.2, fixing security advisory GHSA-68fv-2mgg-jv7q (high-severity denial of service).