Add optional Orukeet Core ML preview with verified Hugging Face install - #980
Open
Nathan-Roll1 wants to merge 6 commits into
Open
Nathan-Roll1 wants to merge 6 commits into
Nathan-Roll1 wants to merge 6 commits into
Conversation
|
The PR Policy check is blocking this PR because required template information is missing. Please update the PR description with:
Visual files detected:
Screenshots or video are required for UI, UX, settings, onboarding, overlay, menu bar, or visual behavior changes. If this PR has no visual changes, check the no-visual-change box in the template. If this remains incomplete for 48 hours after opening, the PR may be closed. |
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds an optional Orukeet Core ML preview in the model selector. Installation consumes the pinned Hugging Face manifest, verifies the archive's SHA-256 and byte count, and compiles its portable models on the Mac. Hugging Face counts the manifest download normally. Loading and transcription use the separate local Orukeet cache.
The preview reuses FluidVoice's existing transcription provider. Its speed and accuracy remain unrated; model defaults are unchanged.
Type of Change
Related Issue or Discussion
Proposal: #981. Maintainer acceptance is pending.
Testing
swiftlint --strict --config .swiftlint.yml Sources Tests Package.swiftswiftformat --config .swiftformat Sources3fd63887) and matching auxiliary dependency revisions, English, German and French recordings each produced identical text over three runs (nine decodes); one-second silence returned empty text on three runs. Corrupt archives, cancellation, and a failed final move preserved the previous valid cache. Removing the encoder made the installation incomplete and loading failed locally. Throttled local HTTP transfers delivered intermediate progress with and without Content-Length; HTTP failure, interruption and cancellation left no retained temporary files.The full Xcode 26.6 app build and focused XCTest run passed at
f7c3c8c: two tests passed, two fixture-dependent tests skipped, zero failures. The regression file is now registered in the Xcode test target. The skipped model/HTTP cases were exercised by the local harness above.Screenshots / Video
The actual built app completed a fresh Hugging Face download with visible progress, installed and activated Orukeet, and transcribed the English recording through File Transcription with the expected text. These are captures from that app; the following commit only adds screenshots.
Preview and download progress
Notes
The optional preview keeps CC BY-SA 4.0 weight licensing and Oruk/NVIDIA attribution. It uses the baseline Core ML profile, which preserves the joint outputs expected by the existing runtime. Custom vocabulary boosting remains unavailable for this preview.
The standalone upstream Package.swift points at a missing Sources/FluidVoice directory; the full build used the app's Xcode project. GUI checks used an ad-hoc signed debug build with onboarding preconfigured; microphone and Accessibility permissions were not granted, so live microphone/global typing is outside these checks. The CI archive's duplicated CTranscribe framework aliases were verified byte-identical and restored to standard symlinks for local signing; executable code was unchanged.