Transcribe Offline is an open-source desktop app for local transcription,
speaker diarization, and transcript review/edit workflows.
It is implemented as a native Rust/egui GUI on top of
Openresearchtools-Engine.
- Windows x64*: Transcribe-Offline.exe
- macOS arm64*: Transcribe-offline.dmg
- Linux amd64: install
transcribe-offlinethrough APT.
For the first Open Research Tools installation on a system, copy and run this one command:
wget -qO /tmp/keyring.deb https://keyring.openresearchtools.com && sudo apt install -y /tmp/keyring.deb && sudo apt update && sudo apt install -y transcribe-offlineIf the Open Research Tools APT repository is already configured:
sudo apt install transcribe-offlineThe Linux app package uses system-installed Openresearchtools-Engine runtimes and depends on both APT packages:
openresearchtools-enginefor Vulkan (/opt/openresearchtools/engine/vulkan)openresearchtools-engine-cudafor CUDA (/opt/openresearchtools/engine/cuda)
The Vulkan/CUDA selector switches directly between those locations. Linux does not download, unpack, unblock, or replace the engine from inside the app. The APT installation above resolves both engine dependencies automatically.
Transcribe Offline now supports true realtime live transcription with true realtime live speaker diarization.
This is not a batch-style “record a chunk, stop, and transcribe later” workflow. The live pipeline is designed around continuous streaming audio, continuous session state, and sliding-context realtime model execution so transcription and speaker diarization can update as speech is happening.
This was made possible by the native runtime work in Openresearchtools-Engine, which extends a ggml / llama.cpp-based backend with the in-process bridge, streaming audio session handling, realtime decoding logic, and backend support needed to run these models locally with CUDA, Vulkan, and Metal acceleration.
For live transcription, this app uses converted realtime GGUF artifacts published at openresearchtools/Voxtral-Mini-4B-Realtime-2602, based on the upstream Voxtral realtime model from mistralai/Voxtral-Mini-4B-Realtime-2602.
For live speaker diarization, this app uses converted GGUF artifacts published at openresearchtools/diar_streaming_sortformer_4spk-v2.1-gguf, based on the upstream NVIDIA Sortformer model from nvidia/diar_streaming_sortformer_4spk-v2.1.
We are grateful to the original model creators and upstream projects for making these capabilities possible. Our use, conversion, packaging, and local runtime integration of these models does not imply endorsement, sponsorship, or affiliation by upstream authors or maintainers of packages and models.
- transcription workflows (
speech/subtitle/transcript), - realtime live transcription with optional live speaker diarization,
- speaker diarization,
- local transcript chat and anonymisation,
- and desktop-first editing/playback flows.
Runs the engine audio path for:
speechoutput,subtitleoutput,transcriptoutput with speaker diarization.
Uses the engine's native realtime Sortformer diarization path together with the offline transcript assembly/sanitization flow.
Provides side-by-side transcript/edit views, playback-linked navigation, autosave, speaker rename tools, and anonymisation pass tooling.
Uses the engine bridge chat path with local GGUF models for transcript Q&A and
anonymisation extraction.
For chat/anonymisation, you can use any llama.cpp-compatible GGUF model;
instruction-following chat models are recommended.
Anonymisation is a beta function. For real-world use, always manually review the output transcript to confirm no unintended sensitive data remains.
Designed to be local‑first. However, no software can guarantee absolute privacy or security. Please consider your threat model and institutional policies before processing sensitive material.
This app is an open-source hobby development effort by the repository owner. We do not currently have funding for full paid code-signing and notarization pipelines across all platforms/releases.
Because of that, operating-system protections or hardened security environments (for example Windows SmartScreen, enterprise endpoint controls, or macOS Gatekeeper policies) may block unsigned binaries.
If your environment blocks unsigned binaries, the recommended path is:
- build this desktop app from source on the target device,
- build Openresearchtools-Engine from source on the same target device,
- and use those locally-built artifacts in your deployment.
- If SmartScreen shows "Windows protected your PC", use
More info->Run anywayonly if your policy allows it. - In the app, go to
Settings -> Runtime Setupand run:Download/Repair runtimeUnblock unsigned runtimeRecheck
- The Windows unblock script clears Mark-of-the-Web flags in the selected
runtime directory by running
Unblock-Filerecursively on runtime files.
- Try
Right click -> Openon first launch. - If blocked by Gatekeeper, use
System Settings -> Privacy & Security -> Open Anywaywhen available and policy permits. - In the app, after runtime install/repair, click
Unblock unsigned runtimethenRecheck. - The macOS unblock script removes quarantine attributes recursively
(
xattr -dr com.apple.quarantine) and restores executable bits for runtime binaries/scripts where needed (chmod +xon relevant files).
- Offline-first runtime flow with in-app runtime install/repair on Windows/macOS and APT-managed Vulkan/CUDA runtimes on Linux.
- Native desktop orchestration of Openresearchtools-Engine (
llama-server-bridge). - Single device selection model (CPU or selected GPU) for runtime execution.
- Built-in transcript editing, playback follow, anonymisation, and export workflow.
- This app is a GUI/orchestration layer.
- Openresearchtools-Engine provides the local runtime components.
- The app invokes runtime features through
llama-server-bridge. - Playback decode in the app uses the Rust
Symphoniastack; runtime-side media conversion uses engine FFmpeg components.
Transcribe Offlineis a reference example of integrating Openresearchtools-Engine in a native desktop GUI.- This app uses
llama-server-bridgefrom Openresearchtools-Engine. - Openresearchtools-Engine runs on a modified
llama.cppruntime path with native Whisper transcription, Voxtral realtime transcription, and Sortformer diarization integrations. - This desktop app itself is a wrapper/orchestrator around that runtime.
- This desktop app relies on Openresearchtools-Engine runtime media components (FFmpeg/PDFium) at runtime.
Openresearchtools-Engine: embeddable runtime used by this app (llama-server-bridge, runtime orchestration, and model/device execution path).egui/eframe: native immediate-mode GUI framework used to build this desktop application UI.llama.cppandggml: core inference runtime and device/offload mechanics used through Openresearchtools-Engine.whisper.cpp: transcription backbone used by the engine audio pipeline.mistralai/Voxtral-Mini-4B-Realtime-2602: upstream realtime speech-to-text model reference used for the app's live transcription path.nvidia/diar_streaming_sortformer_4spk-v2.1: upstream realtime diarization model reference used for the app's live diarization path.Qwen/Qwen3.5-9B: upstream local chat/anonymisation model family reference used by the app's managed GGUF downloads.FFmpeg(LGPL shared runtime builds): media decoding/normalization path used by Openresearchtools-Engine runtime for audio conversion.Symphonia: Rust audio decoding stack used by this desktop app for local playback.
openresearchtools/whisper-large-v3-turbo-GGMLandopenresearchtools/whisper-large-v3-GGML: converted Whisper runtime artifacts used by the app's managed transcription downloads.openai/whisper-large-v3-turboandopenai/whisper-large-v3: upstream Whisper model family references for the managed transcription downloads.openresearchtools/Voxtral-Mini-4B-Realtime-2602: converted realtime Voxtral artifacts used by the app's live transcription downloads.mistralai/Voxtral-Mini-4B-Realtime-2602: upstream Voxtral realtime model family reference for the managed live downloads.openresearchtools/diar_streaming_sortformer_4spk-v2.1-gguf: converted Sortformer diarization artifact used by the app's live diarization path.nvidia/diar_streaming_sortformer_4spk-v2.1: upstream Sortformer diarization model reference for the managed live downloads.openresearchtools/Qwen3.5-9B-GGUF: converted GGUF chat/anonymisation artifacts used by the app's local chat helpers.Qwen/Qwen3.5-9B: upstream chat model family reference for the managed local LLM downloads.
This project is independent work by OpenResearchTools. This project is not affiliated with, sponsored by, or endorsed by the maintainers/owners of any third-party projects listed above or in the bundled notices/license files.
All third-party names and marks remain property of their respective owners.
The Transcribe Offline application source code is licensed under the MIT License; third-party dependencies and bundled components remain licensed under their respective original licenses.
Read these files in this repo:
- Notice page (app + models + engine):
licenses/THIRD_PARTY_NOTICES_ALL.md - Full app third-party licenses (full text per package):
licenses/THIRD_PARTY_LICENSES_ALL.md - Full engine third-party licenses (full text per package/file):
licenses/ENGINE_THIRD_PARTY_LICENSES_FULL.md Help -> NoticesHelp -> App licensesHelp -> Engine licenses
- Whisper model binaries are fetched from
openresearchtools/whisper-large-v3-turbo-GGMLandopenresearchtools/whisper-large-v3-GGML. - Live transcription model binaries are fetched from
openresearchtools/Voxtral-Mini-4B-Realtime-2602. - Live diarization model binaries are fetched from
openresearchtools/diar_streaming_sortformer_4spk-v2.1-gguf. - Local chat/anonymisation GGUF models are fetched from
openresearchtools/Qwen3.5-9B-GGUF. - OpenResearchTools publishes converted model artifacts for runtime compatibility.
Converted-model note:
- These converted artifacts are provided for interoperability with this runtime.
- They are not upstream-official releases and are not endorsed by upstream model owners.
- Use follows the original model licenses and model-card terms.
For citations and model lineage references, see the bundled Notices document:
licenses/THIRD_PARTY_NOTICES_ALL.md
Suggested citation:
Rutkauskas, L. (2026). Transcribe Offline (Version 2.1.0) [Computer software]. OpenResearchTools. https://github.com/openresearchtools/transcribeoffline.
BibTeX:
@software{Rutkauskas_TranscribeOffline_2026,
author = {Rutkauskas, L.},
title = {Transcribe Offline},
version = {2.1.0},
date = {2026-03-04},
url = {https://github.com/openresearchtools/transcribeoffline},
publisher = {OpenResearchTools},
license = {MIT}
}