Private local recognition
Microphone capture, conversion, recognition, rendering, and transcript storage remain on the device after the system-managed language model is available.
SpeechTranscriberA resilient, privacy-first transcription experience with bounded memory, failure-aware lifecycle handling, incremental local storage, and no application cloud service in the recognition path.
What makes it different
Four product promises map directly to implementation boundaries and concrete failure classes.
Microphone capture, conversion, recognition, rendering, and transcript storage remain on the device after the system-managed language model is available.
SpeechTranscriberThe microphone callback stays minimal. Conversion moves to a dedicated queue, while saturation becomes visible instead of silently losing data.
AudioInputPipelineCapture and analyzer queues are bounded. Final text writes incrementally to disk, while the view retains a controlled working set.
TranscriptArchiveInterruptions, route changes, model installation, cancellation, backgrounding, resets, and final delivery converge on explicit state and cleanup paths.
TranscriptionSessionArchitecture
Local Speech treats microphone audio like a production stream: capture quickly, buffer deliberately, convert away from the real-time callback, and fail visibly when integrity cannot be guaranteed.
Volatile text appears progressively. Final text becomes stable transcript segments and is eligible for sharing.
Finalized segments append to a file in the app’s Documents directory instead of accumulating indefinitely in RAM.
Trust boundary
The source defines no remote transcription endpoint, third-party analytics SDK, or application-controlled audio-upload path. That guarantee is separate from Apple’s language-asset delivery.
Red-team hardening
Technical detail remains available on demand without interrupting the primary narrative.
Capture and analyzer queues have explicit limits. Saturation is surfaced as an integrity failure rather than silently dropping audio or growing memory without control.
Calls, Siri, AirPods transitions, media-service resets, and backgrounding converge on explicit session-state and cleanup paths.
Final transcript segments append incrementally to local storage. Volatile text remains separate until the framework marks it final.
The app distinguishes initial model availability from the active local recognition path. Offline validation remains a physical-device gate.
Validation boundary
The current status is intentionally visible without dominating the opening proposition.
| Evidence | Status | What it confirms |
|---|---|---|
| Architecture and source review | Reviewed | Confirms intended boundaries, bounded queues, lifecycle handling, and local storage strategy. |
| Control-alignment gate | Reviewed | Confirms centered labels, stable control geometry, and no clipping or overflow in tested layouts. |
| Physical iPhone transcription | Pending | Confirms device capability, locale support, audio capture, and recognition output. |
| Offline test after model installation | Pending | Confirms recognition remains functional without active connectivity. |
| One-hour memory and thermal profile | Pending | Confirms bounded behavior under sustained device load. |
| Interruption and microphone-route matrix | Pending | Confirms recovery across calls, Siri, AirPods, and audio-service resets. |
Build path
XcodeGen allows a cloud macOS runner to create the project, sign the application, and publish it through TestFlight.
Add the Swift source, project.yml, and README to a repository.
Use a macOS cloud image with Xcode 26 and the iOS 26 SDK.
Configure the developer team, archive the app, and upload it to App Store Connect.
Exercise model installation, airplane mode, long sessions, interruptions, route changes, and finalization.
Local by architecture
Local Speech shows what on-device AI looks like when the implementation respects resource limits, lifecycle, failure integrity, and user trust.