OrbNote supports transcribing voice messages to text after recording. Transcription runs on-device, with audio never sent to a server.
Dual-engine architecture
OrbNote uses two transcription engines and automatically selects the best option:
| Engine | Characteristics | Use case |
|---|---|---|
| Apple Speech | Built into the system, no download needed, multilingual | First-time use, quick transcription |
| WhisperKit | Requires local model download, higher accuracy | High-precision transcription needs |
Engine selection logic
The system selects a transcription engine in the following order:
- If the user manually specifies an engine, that engine is used.
- If the platform does not support WhisperKit (e.g., watchOS or Share Extension), Apple Speech is used.
- If the WhisperKit model is downloaded and ready, WhisperKit is used.
- Otherwise, Apple Speech is used, with a prompt to download the Whisper model for better accuracy.
When the engine is not manually specified, a WhisperKit failure automatically falls back to Apple Speech. A manually specified WhisperKit failure reports an error directly.
How transcripts are stored
After transcription, the text is stored in the attachment's metadata:
transcribedText: The final transcript text.transcription_status: Status marker (in progress / completed / failed).- The transcript is included in the message's search index and can be found via global search.
Automatic vs. manual transcription
| User type | Transcription method |
|---|---|
| Free user | Manually trigger transcription |
| Pro user | Automatic transcription after recording completes |
For more on message editing and operations, read Message operations.
