olenji.

Published application 1.1.0 · Versioned documentation · Markdown source

Model support and verification

Olenji exposes 30 distinct catalog identities: 29 transcription models and one speaker-embedding model. Seventeen reproduce the selectable ASR identities in FluidVoice at commit 0fccdeb014462e6f82889af38c7e9de92d87a130 (25 October 2026). The portable alternatives keep separate IDs so a conversion can never be mistaken for exact artifact parity.

Catalog coverage is not installation or a completed parity claim. olenji models parity --json reports installed, runtime-ready, and actually inference-validated counts separately. All seventeen reviewed FluidVoice selections have an installation and adapter path, including the public Pico archive. Mac-specific helpers still require compilation and inference validation on a compatible Mac; this build was developed and exercised on Linux CPU.

The 25 October 2026 comparison found a new selectable Qwen3 ASR 1.7B Q8_0 GGUF in FluidVoice. Olenji already contained that exact artifact as qwen3-asr.1.7b.q8_0; it now belongs to the current parity profiles. Its publisher revision, filename and 2,185,030,624-byte payload match the previously audited selection. This is distinct from FluidVoice's older disabled Qwen Core ML preview. The current settings enum has nineteen cases; that disabled preview and a hidden Nemotron streaming alias leave seventeen selectable identities. See the dated coverage evidence and FluidVoice's selection logic.

All thirteen exact Hugging Face selections were re-resolved against current publisher metadata: pinned revisions, selected file identities and sizes still match. The current Mini/Pico feed is byte-identical to the previously signature-verified envelope, at sequence 1 with no Mac overrides. The 24 October audit retains its original sixteen-model reference and execution results. This source/metadata refresh did not download weights or execute Qwen 1.7B inference.

Speech recognition, configured text providers and FluidVoice's private Fluid Intelligence enhancement runtime are distinct capabilities. Olenji's parity profile promises the public selectable speech identities. Its configurable translation interface covers compatible endpoints without claiming to download a private enhancement runtime or execute every paid text model. See provider compatibility.

The audit resolved every one of the 25 Hugging Face artifact selections to a public immutable revision with publisher LFS SHA-256 or Git blob identity for every selected file. It also downloaded the exact Pico archive through an ordinary public GET and verified its full 161,208,320-byte body, archive SHA-256 and embedded manifest SHA-256. These are artifact checks, not evidence of Apple inference. See machine-readable catalog audit.

The second holistic review pins all 25 Hugging Face selections in the shipped catalog and validates exact inference runtime versions. Apple helpers require Swift 6.2 or newer and build against the bundled reviewed Package.resolved using --force-resolved-versions. See the model review for dependency provenance, local-only inference, repair behavior and the separate Mac validation boundary.

Recorded model execution and current acceptance

The following were actually downloaded, integrity-checked and used to transcribe an 11-second public speech recording on Linux CPU during the earlier model audit. Their reports retain their original implementation identities; they are not fresh executions of every backend after each unrelated change. The current installed-build product journey is listed in VALIDATION.md. These are functional integration checks, not comparative accuracy or latency benchmarks.

Model Runtime Observed output Timing information
faster-whisper.tiny Faster Whisper 1.2.1 / CTranslate2 Correct expected speech text Segment plus 22 word timestamps
whisper.tiny.q8_0 transcribe.cpp 0.4.1, exact 45,981,088-byte GGUF Correct expected speech text Native segment bounds
moonshine.streaming-tiny.q8_0 transcribe.cpp 0.4.1 Correct expected speech text Input-clip coverage, explicitly not word alignment
fluid-speech.mini.onnx ONNX Runtime, reviewed local TDT adapter Correct expected speech text Input-clip coverage, explicitly not word alignment
qwen3-asr.0.6b.q8_0 transcribe.cpp 0.4.1, exact 850,423,456-byte GGUF Correct expected speech text with automatic language detection Input-clip coverage, explicitly not word alignment

The final model audit reran all five ASR backends after the bounded-window changes. It also transcribed a 132-second repeated-speech fixture through Faster Whisper: recognition crossed multiple windows and preserved global word/segment times through 130.5 seconds. Recorded real backend checks include the observed output and measurements; these single-fixture times are not performance benchmarks.

The original default-wheel check created a separate managed Faster Whisper runtime and used copied verified tiny weights to transcribe the same recording. The audited wheel was installed into another fresh virtual environment outside the source checkout, without inference extras, and used that managed runtime through its updated packaged worker. The wheel's 40-tool MCP interface, modern/legacy protocol negotiation, local API, authentication, browser assets and native source resources were checked independently. No additional model weights were needed for the wheel check.

The WeSpeaker model was separately downloaded and run through Sherpa ONNX, producing 256-dimensional acoustic embeddings. A small fixture of two recordings of voice A and one of voice B clustered the A recordings together (cosine similarity 0.8893) and kept B separate. A combined roughly 23-second A → B → A recording through the full HTTP transcription and diarization path produced two anonymous speaker IDs and reused A's ID when that voice returned; a 0.64-second turn remained unknown. This verifies the acoustic integration on those fixtures, not named identity, general diarization accuracy or separation of overlapping voices.

Other model sizes share implemented adapters but have not each been downloaded and accuracy-tested in this environment. The Swift helpers call the real APIs documented by their pinned dependencies; their compilation, Apple permissions and inference still need Mac hardware. Catalog status says so. GPU acceleration and Windows runtime behavior were not exercised here.

Exact FluidVoice identities

The platform column below describes the model family route. It is not a promise that every CPU/Python combination on that OS has a compatible runtime. The reviewed binary baseline is standard CPython 3.11–3.14, 64-bit desktop systems and glibc 2.28+ on Linux. Detailed constraints and real execution evidence are in NATIVE_PORTABILITY.md.

The default application dependency lock resolves to binary packages on all six reviewed Windows/macOS/Linux x64/ARM64 targets under Python 3.12. This verifies installable dependency metadata, not native execution on those targets. runtime_support in model inspection and planning supplies the actual interpreter-specific answer.

ID Artifact / backend License Platform
whisper.tiny.q8_0 whisper-tiny-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
whisper.base.q8_0 whisper-base-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
whisper.small.q8_0 whisper-small-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
whisper.medium.q8_0 whisper-medium-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
whisper.large-v3-turbo.q8_0 whisper-large-v3-turbo-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
whisper.large-v3.q8_0 whisper-large-v3-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
qwen3-asr.1.7b.q8_0 Qwen3-ASR-1.7B-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
parakeet.tdt-v3.coreml FluidInference/parakeet-tdt-0.6b-v3-coreml / apple-coreml CC-BY-4.0 darwin-arm64 · macOS 14+
parakeet.tdt-v2.coreml FluidInference/parakeet-tdt-0.6b-v2-coreml / apple-coreml CC-BY-4.0 darwin-arm64 · macOS 14+
fluid-speech.mini.coreml fluid-mini / apple-coreml CC-BY-4.0 darwin-arm64 · macOS 15+
fluid-speech.pico.coreml Public FluidVoice Pico 1.1.1 archive / apple-coreml unresolved; see below darwin-arm64 · macOS 15+
parakeet.flash.160ms.coreml FluidInference/parakeet-realtime-eou-120m-coreml / apple-coreml NVIDIA-Open-Model-License darwin-arm64 · macOS 14+
cohere.transcribe-2026-03.6bit.coreml BarathwajAnandan/cohere-transcribe-03-2026-CoreML-6bit / apple-coreml GPL-3.0 darwin-arm64 · macOS 15+
nemotron.3.5.offline.6bit.coreml BarathwajAnandan/nemotron-3.5-asr-offline-6bit-CoreML / apple-coreml OpenMDW-1.1 darwin-arm64 · macOS 14+
nemotron.3.5.streaming320.int8.coreml BarathwajAnandan/nemotron-3.5-asr-streaming320-int8-CoreML / apple-coreml OpenMDW-1.1 darwin-arm64 · macOS 15+
apple.speech.legacy legacy / apple-speech Apple-OS-terms darwin · macOS 14+
apple.speech.analyzer analyzer / apple-speech Apple-OS-terms darwin-arm64 · macOS 26+

Additional identities

ID Artifact / backend License Platform
faster-whisper.tiny Systran/faster-whisper-tiny / faster-whisper MIT linux, darwin, windows
faster-whisper.base Systran/faster-whisper-base / faster-whisper MIT linux, darwin, windows
faster-whisper.small Systran/faster-whisper-small / faster-whisper MIT linux, darwin, windows
faster-whisper.medium Systran/faster-whisper-medium / faster-whisper MIT linux, darwin, windows
faster-whisper.large-v3-turbo mobiuslabsgmbh/faster-whisper-large-v3-turbo / faster-whisper MIT linux, darwin, windows
faster-whisper.large-v3 Systran/faster-whisper-large-v3 / faster-whisper MIT linux, darwin, windows
qwen3-asr.0.6b.q8_0 Qwen3-ASR-0.6B-Q8_0.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
moonshine.streaming-tiny.q8_0 moonshine-streaming-tiny-Q8_0.gguf / transcribe.cpp MIT linux, darwin, windows
moonshine.streaming-small.q8_0 moonshine-streaming-small-Q8_0.gguf / transcribe.cpp MIT linux, darwin, windows
moonshine.streaming-medium.q8_0 moonshine-streaming-medium-Q8_0.gguf / transcribe.cpp MIT linux, darwin, windows
voxtral.realtime-4b.q4_k_m Voxtral-Mini-4B-Realtime-2602-Q4_K_M.gguf / transcribe.cpp Apache-2.0 linux, darwin, windows
fluid-speech.mini.onnx FluidVoice-Labs/fluid-speech-mini-onnx / onnxruntime CC-BY-4.0 linux, darwin, windows
diarization.wespeaker.en wespeaker_en_voxceleb_resnet34.onnx / sherpa-onnx Apache-2.0 linux, darwin, windows

Installation and privacy

olenji models plan-install --profile fluidvoice-parity --compatible-only --json
olenji models install faster-whisper.tiny --json
olenji models install whisper.tiny.q8_0 --json
olenji models install fluid-speech.mini.onnx --json
olenji models install apple.speech.analyzer --language tr-TR --json
olenji models verify faster-whisper.tiny --json
olenji models parity --json

fluidvoice, fluidvoice-parity and fluidvoice-exact select the current seventeen identities. The historical fluidvoice-2026-10-22 profile preserves its original sixteen-model membership; installing it does not establish current parity. The parity report always uses the current reviewed reference and requires successful inference validation for every selection.

Installation uses a managed model directory and isolated runtime environments when the current application environment lacks the backend. No global Python environment is modified. Standard runtime installs require binary distributions, avoiding accidental builds of large inference dependencies. transcribe.cpp explicitly pins both its wrapper and native package to 0.4.1; its separate fallback can build the pinned 4d7c1ccefd39e5a9ea36cca5f8fefc6dcc14b99b source with Git, CMake and a suitable C++ compiler. Apple helpers use the pinned FluidAudio fork eb1e6628998e47022799d305b52c2680d3576801 and local Swift developer tools. SpeechAnalyzer needs macOS 26 and Xcode 26 / Swift 6.2.

Downloads resolve an immutable Hugging Face commit and verify available publisher LFS SHA-256 values or repository blob hashes. Each installed file receives a local SHA-256 inventory. Mini and Pico Core ML additionally check FluidVoice's pinned archive byte counts, archive SHA-256 values and extracted manifest SHA-256 values. Core ML allowlists select the exact runtime assets, avoiding unused alternate encoders and duplicate uncompiled models. The WeSpeaker GitHub release has no publisher digest; its manifest says local-sha256, which protects subsequent local integrity but is not a publisher-authenticated checksum. Partial HTTP downloads resume with Range requests; changed identities restart, failed hashes never become installed models, and archive extraction rejects path escapes, links and special files. Explicit verification persists corruption status and serializes its manifest updates with installation and removal.

Active inference holds a model lease; long-lived speaker sessions can hold shared pins without serializing separate readers. OS file locks protect these reservations across CLI processes and release them if a process exits. Models in use cannot be removed or replaced, and warm caches are discarded when an idle installation is removed/replaced.

The Mini/Pico version selection is pinned to FluidVoice's reviewed source. The audit verified the official model feed's Ed25519 signature and sequence 1; its Mac entries were empty and the built-in Mac fallback remained 1.1.1. Olenji does not execute a dynamic model feed or trust unreviewed URLs from it. Pico's archive SHA-256 is 542f74f639438bf37ff134a7a75daddb50d301deb87696994e11ff272df21512; its embedded manifest SHA-256 is a87ee649edc18aca6d30f251e75237f48c995448b865ffee35ab343ed3e66121. Publisher catalog and signing keys and official Pico archive.

Inference receives installed local paths. Hub libraries in managed workers have offline mode enabled; no model or provider is silently substituted. Managed workers disable Hugging Face telemetry and set ORT_DISABLE_TELEMETRY=1 before optional runtime initialization; the ONNX Runtime API also disables legacy telemetry events. ONNX Runtime's privacy documentation explains why setting the environment before initialization matters. The Mini ONNX adapter loads only pinned data/graph assets; it does not execute the model repository's Python script. Its NumPy feature extraction and greedy token/duration decoding implement the publisher's documented graph contract.

Apple Legacy checks on-device eligibility for the requested locale when local-only inference is selected. Network recognition must be explicitly permitted for that session. Apple SpeechAnalyzer prepares missing OS assets through a separate explicit installation operation, and inference fails if the requested locale's assets are missing. Reinstalling an already installed Apple speech identity with a new --language prepares that locale and records the requested locales. This history does not guarantee macOS will retain the assets; the helper checks eligibility again at inference. OS speech assets may be retained by macOS after an Olenji catalog installation is removed.

Language selection

Language choices follow both model coverage and the implemented runtime contract. An explicit unsupported language is rejected before inference, including Turkish with an English-only Moonshine or Fluid Speech model. No model is silently substituted.

Model family Input language behavior
Whisper / Faster Whisper Automatic detection or an explicitly supported language
Qwen3 ASR / Voxtral Automatic detection only in the pinned transcribe.cpp adapters; explicit hints return an actionable error
Cohere Core ML Explicit supported language required to construct the decoder prompt
Apple Legacy / SpeechAnalyzer Explicit locale required; actual supported locales and on-device eligibility are checked by the OS
English-only models English or automatic selection; another explicit language is rejected

Qwen's automatic-only restriction is an adapter limit documented by transcribe.cpp. Language support describes transcription into the spoken language. Translation into Turkish is a separate provider or agent operation; it does not change an English-only recognizer into a Turkish speech recognizer.

Live behavior and timestamps

The application live pipeline uses bounded speech utterances and actual interim recognition. Its metadata calls this buffered live transcription. Several underlying models also support native streaming, but their upstream capability is not a promise that the current application capture path carries a persistent native stream. The UI receives real partial hypotheses and committed text; no synthetic transcript is used to animate live sessions.

Whisper GGUF currently exposes native segment timestamps through transcribe.cpp; the portable Faster Whisper variants provide word timestamps. Models without alignment emit timing: clip with the supplied audio bounds. These bounds describe input coverage and must not be interpreted as accurate individual-word alignment. Diarization is a separate audio-embedding/clustering step; it identifies recurring voices rather than personal identity.

All file adapters now read normalized audio in windows of at most 60 seconds, rather than loading an entire long recording into a NumPy array. A quiet boundary near the window end reduces the chance of cutting through a word; each sample belongs to exactly one window and segment/word times are offset into the original recording. Native transcribe.cpp windows additionally respect the lower model-specific runtime limit with headroom. Mini ONNX applies its own shorter acoustic windows inside this outer bound. The Apple wrapper invokes the helper separately for each file window, which bounds native audio arrays but currently reloads the model between windows. Boundary context can still affect recognition; this implementation does not claim lossless recognition across arbitrary cuts. Tests check bounded input sizes, sample conservation, actual runtime limits and global timestamp offsets. Native input-limit contract.

Licenses and attribution

Each installed model retains its own license. Source-code licensing for Olenji does not replace weight licensing. Download availability and redistribution terms are separate metadata.

Primary references