Changelog

Every ASRbox release from the first public prerelease to the current version, newest first.

This page is adapted from the project CHANGELOG; GitHub Releases remains the authoritative, always up-to-date source. View GitHub Releases

v0.4.0

Current

Added

  • 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).

v0.3.3

Added

  • Six new speech-LM models join the local catalog (roadmap phase 2): Granite Speech 4.1 2B / 2B Plus (European languages; Plus outputs speaker attribution or word-level timestamps in a single pass), Cohere Transcribe 2B (14 languages incl. Chinese, manual language selection), ARK-ASR 0.6B / 3B (Chinese, English + 17 European languages), and Voxtral Mini 3B (8 languages with auto-detection, up to 30 minutes per pass). Models with a single-input cap automatically split long audio by VAD while keeping the timeline continuous.
  • Model details now show license information (sourced from the model status API), with a slot reserved for attribution-style licenses.

Changed

  • Qwen3-ASR and MOSS-Transcribe-Diarize moved to the unified transformers_speech_lm engine (one adapter per model) with unchanged behavior; future speech-LM models no longer require copying engine code.
  • transformers moved from a git-commit pin to PyPI 5.17.0, bringing a Qwen3-ASR parsing fix and several Whisper fixes; added the lightweight mistral-common[audio] dependency required by the Voxtral processor.
  • Models without automatic language detection (Cohere Transcribe) no longer offer the Auto / Mixed language options on the transcribe page; a task fails with a clear reason code and localized message when the required language is missing.

Fixed

  • Windows installer upgrades no longer leave files from the previous version: the installer cleans its own managed resource directory before copying new files, preventing stale dependency metadata from breaking speech-LM imports after an upgrade.

v0.3.2

Added

  • Three new local models: Paraformer Large Chinese (native character-level timestamps, ideal for Chinese subtitles), Fun-ASR-Nano (Tongyi 2025, multilingual with Chinese dialects), and Faster Whisper Distil Large V3 (English-only, about twice as fast as Large V3). All three can be downloaded on the models page, set as default, and picked directly on the transcribe page.
  • The models-page tier list now carries measured grades for the three newcomers (speed / accuracy / language coverage), measured on both Windows + RTX 5080 and macOS Apple Silicon CPU.

Changed

  • Compatibility hints are now shown separately from download errors: states like "model not downloaded" display their actual reason instead of a generic error message; real download errors still go through error mapping with the original backend text kept in a collapsible "Details" section.
  • A downloading model row now uses a full-width progress layout — filename, percentage and Pause/Stop share one line instead of squeezing into narrow columns.

Fixed

  • Fixed packaged builds limiting CPU inference to a single thread: the transcription worker now sizes its own thread pool, yielding roughly a 4× speedup on large CTranslate2 models with byte-identical subtitle output.
  • Fixed packaged builds failing to run faster-whisper models (missing Silero VAD assets) and to load FunASR models with VAD; the required resources now ship with the app.
  • Fixed a race on releasing port 17494 when the desktop app restarted its bundled backend, which could make the new instance refuse to start.

v0.3.1

Added

  • New "Batch replace" tab in the task center transcript: the full subtitle is shown as a segment list; typing a search term highlights matching segments in real time with a match count, and one click replaces the term across all matched segments. Saving reuses the batch update and atomically creates exactly one immutable edit version — timestamps and speakers are preserved, and the change is restorable via version history.

v0.3.0

Changed

  • A unified visual system across all pages: continuous light/dark surfaces replace translucent panels and full-screen gradients, and the dark theme mirrors the light layout.
  • The home page is now a single creation workspace: drop files, pick backend/model/language in one row, with a clearly divided recent-task list below.
  • On desktop the task center is a persistent three-pane workspace (task list, player & transcript, task status) with working recent/active/completed filters; narrow widths get an overlay drawer.
  • Model management becomes a compact row-based list with category filters, search, an expandable comparison ladder and default-model linkage.
  • The AI workbench keeps proofreading, translation and chat in one frame where each column scrolls inside its own region — the page never grows without bound.
  • Every user-visible message — health center, runtime warnings, errors, validation, empty/loading states, toasts and confirm dialogs — renders in the current interface language, with maintained Chinese/English mappings for stable error codes.
  • The release pipeline now generates one unified, basename-only SHA256SUMS.txt, restoring in-app update downloads for installed v0.2.x clients.

Added

  • "Edit subtitles" mode: the transcript in the task center switches to an editable view that keeps the read-only row layout (play-from-segment, time range, speaker badge) while making every segment’s text editable; one save creates exactly one immutable edit version, and discard restores the saved text.
  • Segment playback padding (Settings → General): "play this sentence" previews can be padded by 0.5–3 seconds before and after the segment; the default stays strictly on the timeline, and the preference is included in settings export/import.
  • Player bar takeover: pausing/resuming from the persistent player bar or scrubbing its progress releases the segment bounds and keeps audio playing continuously until you pause.
  • Per-suggestion audio preview in AI proofreading: each suggestion can play its source segment and stops automatically at its end; modification reasons stay in the interface language of the run.
  • Configurable accent color: orange by default, with blue, purple, pink, red, green, cyan and gray options, applied to primary actions, selection and focus rings — included in settings export/import.
  • Global search gains a Cmd/Ctrl+K shortcut.
  • "Set as default" on model rows syncs the settings page and home preselection; Ollama, Qwen and OpenAI providers and models show the correct brand icons.

Fixed

  • The home result window is fixed-height with internal scrolling again, offering only SRT/TXT downloads.
  • Task-center header buttons with no behavior are gone; long IDs and filenames no longer clip primary actions.
  • Player load/play/pause/seek/volume stay in sync with transcript segments, including Range playback of media on external volumes.
  • Local Ollama proofreading of long subtitles no longer stalls at zero progress or fails whole runs: bounded batches with a per-request deadline, deterministic halving retries on timeout/truncation/context overflow, and visibly distinct queued vs. inferring states.
  • Long-subtitle translation sends fewer requests (64-segment / 6000-character safe first batch, compact ordered responses) while abnormal batches are still auto-split — incomplete results are never persisted.
  • Storage scans of large model/cache directories now run in the thread pool, so health checks stay responsive while a scan is in progress.

Removed

  • The legacy segment editor (subtitle preview toggle, per-segment time/speaker forms, per-segment copy, find & replace and full-text tools) is replaced by the new Edit subtitles mode; immutable transcript versioning underneath is unchanged.

v0.2.1

Added

  • The models page opens with a full-width model ladder: every local model gets one row with S/A/B/C grades for speed, accuracy and language coverage plus GPU/CPU, precise-timeline and speaker-diarization marks and its download status. Speed/accuracy grades come from a Windows + RTX 5080 measurement run and are labeled as reference values; unmeasured models fall back to estimates marked with *.

Changed

  • Ollama providers now use the Ollama native chat API instead of the OpenAI-compatible shim: per-request context size (default 32768, adjustable in compatibility settings), explicit non-thinking mode and JSON Schema output constraints. Default 4k-context Ollama installs no longer truncate real translation batches, and gateways that only speak the OpenAI-compatible API can pin the protocol back.

Fixed

  • Translation batches sent to local Ollama providers are capped at 16 segments / 1600 source characters: small local models visibly misplaced content in larger batches. Suspicious overlapping or implausibly long batches are halved and retried instead of being saved misaligned.
  • Ollama translation requests now get a 300-second total deadline (90 seconds for other protocols), and the waiting/timeout messages show the limit that actually applies; timeouts and incomplete responses go through the same deterministic split-and-retry path.
  • SenseVoice and Qwen3-ASR no longer claim precise timestamps: both are marked as producing an approximate timeline, consistently across the models page, the task detail output panel and the docs.
  • Subtitle line splitting no longer cuts English words in half — it prefers the last space within the per-line budget.
  • Fixed timestamp-less models (Qwen3-ASR, SenseVoice) losing every chunk after the first on media longer than two minutes.
  • Translation batches that exceed a provider’s context or output capacity are recursively halved, retried and merged back into the checkpoint instead of failing the whole run; the truncation error now tells local-provider users to raise the context length or switch models.

v0.2.0

Added

  • LLM provider setup can pull model IDs straight from the configured endpoint: "Fetch models" works before saving (reusing the stored key when editing), Ollama falls back to its native model listing, and picking an entry fills the default model field while manual entry stays available.
  • GPU acceleration status carries a machine-readable reason code with an explicit "Detect again" action, so a GPU that appears after installing a driver no longer stays stuck on "unavailable".
  • On macOS the acceleration settings tab now shows an Apple GPU panel (Metal/MPS and MLX availability plus the models that accelerate automatically) instead of the Windows-only CUDA controls.

Removed

  • Global keyboard shortcuts (mod+n / mod+f / mod+, / mod+k), the settings shortcuts card and the command palette are removed; global search remains available from its top-bar button.

Changed

  • The models page now defaults to the "All" category, so the full catalog is visible on entry.
  • Not-downloaded models show a localized status description instead of the raw backend English sentence, and the CUDA panel becomes a compact two-card layout with localized failure reasons.

Fixed

  • The Windows installer and uninstaller now use the ASRbox application icon instead of the default NSIS icon.

v0.1.9

Added

  • Windows x64 desktop edition with the same Tauri 2 + bundled FastAPI sidecar architecture as macOS, shipped as an NSIS per-user installer.
  • Vendored Windows ffmpeg/ffprobe 8.1.2 with full provenance, checksums and GPL source-offer coverage matching the macOS binaries.
  • The desktop updater recognizes and verifies the Windows installer; install guidance in Settings → About is platform-aware (Gatekeeper on macOS, SmartScreen on Windows).
  • Optional CUDA acceleration on Windows: the settings page downloads a byte-verified PyTorch cu128 kit on demand and enables GPU transcription on NVIDIA hardware; without the kit everything stays CPU-only.
  • A default-model selector in Settings (covering local models and enabled online providers); the transcribe page preselects the saved default model and language on open.

Fixed

  • Windows no longer flashes console windows: the release shell is built GUI-subsystem and backend child processes are created without windows.
  • The backend test suite is fully green on Windows (423 passed) with the same assertion semantics as macOS.

v0.1.8

Added

  • AI chat assistant in a new Chat tab on the AI page: a built-in offline knowledge base distilled from the user docs answers app-usage questions without any network access; bound to a transcription task, it answers questions about the content — summaries, whether a line appears, mm:ss time positions.
  • Replies stream token by token and can be stopped with partial content kept; sessions and messages persist locally. The privacy boundary matches proofreading: only session messages, the bound transcript and matched knowledge passages are sent.

v0.1.7

Fixed

  • Qwen3-ASR local transcription no longer truncates output at a fixed 512-token budget: the default budget scales with audio duration (320 tokens per minute, floored at 1024, capped at 8192) and can still be overridden per task.
  • Local Whisper-family engines now default to anti-hallucination decoding (no cross-window prompt carry-over plus repeat suppression), so low-quality or silent audio no longer produces hundreds of repeated words; quality reports also flag English word-level repetition.

Added

  • Model selectors and download guidance now show whether each model supports CPU and/or GPU inference, with specific CUDA, MPS and MLX labels.

v0.1.6

Added

  • AI subtitle translation between preset or custom languages: translations are preserved as independent immutable versions with explicit cancellation/resumption and saved batch progress, exportable in all six formats as translated or bilingual subtitles.
  • Configurable protocol details for translation and proofreading (thinking mode, output constraints, JSON/SSE transport), with built-in subtitle tests that find usable settings in bounded requests.

Fixed

  • Ollama translation now requests non-thinking mode and a JSON Schema with required subtitle fields, supporting local thinking models.
  • Translation enforces a 90-second total deadline and shows batch waiting time; DeepSeek requests explicitly disable V4 thinking.
  • Updated the Nano ID dependency to address security advisory GHSA-2v37-7h3g-55p8.

v0.1.5

Changed

  • Desktop and Web API credentials now use Authorization headers; native audio playback receives a path-scoped ticket with a 30-minute idle timeout and a 24-hour maximum lifetime.
  • Runtime compatibility probes run in a bounded short-lived process; media tools and desktop update networking have explicit deadlines.

Fixed

  • Hardened model deletion, concurrent task retry/re-transcribe/delete transitions and atomic transcript version writes; failed-chunk retry now has single-writer claiming.
  • Rejected symlink aliases inside executable bundles and broad WebView shell opening, sanitized ZIP entry names, and bounded large transcript diffs.

Security

  • Tokenless containers now fail closed when their declared published address is non-loopback; query credentials are stripped from routine access logs; packaged desktop instances no longer adopt an already-running backend they do not own.

v0.1.4

Added

  • A new About tab in Settings: build/platform identity, author and support links, stable/prerelease channel selection, optional background update checks and in-app notifications.
  • The macOS desktop app can check GitHub Releases and download the matching Apple Silicon DMG with progress, cancel/retry and SHA-256 verification; installation remains a manual replacement.

v0.1.3

Added

  • MOSS-Transcribe-Diarize 0.9B local model (Apache 2.0): end-to-end transcription, segment timestamps and [S01]-style speaker diarization in a single pass, with 50+ languages and up to roughly 90 minutes of audio per run — no HF_TOKEN or separate diarization model needed.
  • Detailed per-model introductions on the Models page (capabilities, language coverage, recommended scenarios and known limitations, in Chinese and English) plus a "Speaker diarization" category filter.
  • README guidance for the macOS "app is damaged" Gatekeeper dialog, with the one-time xattr fix and a screenshot, in Chinese and English.

Changed

  • When a transcription result already carries speaker labels, pyannote post-processing is skipped instead of overwriting the engine-native labels.

Fixed

  • Fixed Qwen3-ASR and FunASR (SenseVoice) failing to load after model-storage relocation: snapshot paths are re-anchored under the current storage root.
  • Fixed SenseVoice failing in the packaged app because the FunASR model registry stayed empty under PyInstaller.
  • A hung local transcription worker is now terminated after a configurable no-progress window (default 20 minutes); the task fails as LOCAL_WORKER_STALLED with completed chunks kept retryable.

v0.1.2-rc.2

Pre-release

Added

  • The MOSS-Transcribe-Diarize 0.9B local model and the per-model introductions on the Models page (same content as the 0.1.3 stable release).

Changed

  • Engine-native speaker labels are preserved — pyannote post-processing is skipped when the transcript already carries speakers.

Fixed

  • Privacy cleanup: agent interaction records removed from version control and ignored going forward.

v0.1.2-rc.1

Pre-release

Fixed

  • Fixed Qwen3-ASR and FunASR failing to load after model-storage relocation: snapshot paths are re-anchored under the current storage root.
  • Fixed the FunASR model registry staying empty in the packaged app, which broke SenseVoice.
  • Hung local transcription workers are now terminated after a timeout instead of pinning a task in "transcribing" forever.

v0.1.1

Added

  • Desktop media ingest modes: reference the original file in place (new default — no copy, no import wait) or keep managed copies; browser and Docker uploads remain managed copies.
  • Configurable uploads and derived-audio directories; location changes apply to new work only, existing files keep working.
  • Task deletion, bulk deletion and storage cleanup only remove ASRbox-managed files and never touch referenced originals.
  • Desktop relink: when a referenced source is moved or deleted, point the task at the new path and regenerate derived audio.
  • Optional automatic deletion of derived audio (normalized wav and chunks) after a successful transcription.

Changed

  • Desktop drag-and-drop import now uses native Tauri drag events with real file paths, following the same ingest mode as the file picker.
  • Derived audio is task-named and written under the configurable derived-audio directory instead of beside the source file.

v0.1.0-rc.2

Pre-release

Added

  • Linux CPU Docker deployment: a multi-stage non-root image with same-origin Web UI/API, bundled ffmpeg, health checks and a persistent /data volume.
  • Model storage relocation settings with selectable target roots, adopt mode, shared-cache handling and progress polling.
  • A dedicated AI workspace for LLM subtitle proofreading: provider presets and connection testing, ordered suggestions, and explicit versioned application.
  • Docker and AI proofreading guides in Chinese and English.

Security

  • Docker binds to 127.0.0.1 by default; LAN exposure is explicit and documented with token, VPN or authenticated-proxy requirements.

v0.1.0-beta.1

Pre-release

Added

  • Pause, resume, stop and retry controls for managed model downloads, keeping reusable partial files after interruptions.
  • The model storage panel shows real capacity: resolved directory, per-model bytes and free/total filesystem space.
  • Per-launch token protection for the desktop loopback API; bounded streaming uploads and batch limits.

Changed

  • Positioned the MVP as a macOS Apple Silicon public beta.

Fixed

  • Fixed real MP4 transcription failing on mismatched PyTorch / TorchCodec binary versions.
  • Fixed timestamp-free single-segment results producing a zero-length subtitle.

Verified

  • All 14 registered local models completed non-empty transcription of a real MP4 excerpt on Apple Silicon; the frozen backend, .app and DMG passed smoke and integrity checks.

v0.1.0-rc.1

Pre-release

Added

  • The first macOS Apple Silicon prerelease, generated by GitHub Release CI.
  • The Tauri desktop MVP: bundled backend sidecar, vendored ffmpeg/ffprobe for media inspection, and a shared Web UI.

Known issues

  • The macOS package is not signed or notarized.
  • Windows and Linux packages are not published yet.