Notes from building Liner Notes, an iPhone diary app that turns the day’s conversations into text on the device. Each one is a problem I ran into, what I measured, and what I changed.
- On iOS, run background audio processing on the Neural Engine
In an iOS BGContinuedProcessingTask, CPU work ran 12-21x slower while Core ML on the Neural Engine stayed within 2x. Three causes and the fix, measured.
- Choosing a speech recognizer by benchmark alone is risky. Measure with the audio your app actually handles
On read speech Apple's recognizer looked best; on conversation its error rate was 1.8x Parakeet's. How to compare Japanese speech recognizers, with data.
- Same transcription accuracy, three times the errors in the summary
Two recognizers with the same CER produced 3x the summary errors. Why a stricter summary prompt made it worse, and how to compare by summary quality.
- Apple's Private Cloud Compute refused 10.6% of my app's requests as unsafe
Apple's Private Cloud Compute (Foundation Models) refused 10.6% of 614 production requests and rate-limited 9.6%. What broke and how I redesigned.
- I built an AI copy of myself following prior research. Whatever I fed it, agreement stopped at 62–67%
Following prior research, I built an AI copy of myself. Diary or one line, agreement stayed at 62-67%. What identifies a person is how they speak.
- What I measured building an on-device diary app for iPhone
A shorter overview of all five notes in one post.