AI engineering · 3 min read

Speech to text on an iPhone, offline, built with an AI agent in 6 steps

speech engines
3
work offline
2 of 3
automated tests
146
tickets, one plan
37
A recording with its sound wave as the seek bar and the transcript below it
The sound wave is the seek bar. The text sits below it.

Record a meeting, lock your phone, and read it as text without internet. Three speech engines behind one switch, and the 6 step method that kept an AI coding agent on track while it built the app.

Ken Ruiz Inoue · October 2026

1

Record, lock, read

Another Transformer records a meeting, a class or a voice note, and keeps recording with the phone locked. Then it turns the recording into text you can copy or save as a PDF, in English, Spanish or Japanese. Two of its three speech engines run on the phone, so it works with no internet and the audio never has to leave the device.

The record screen: a running timer and live sound bars, with a note that the phone can be locked
Recording keeps going with the phone locked.
A recording with its sound wave as the seek bar and the transcript below it
The sound wave is the seek bar. The text sits below it.
2

Three engines behind one switch

You pick the engine in Settings. Every engine sits behind the same small interface, so the screens never know which one wrote the text, and adding a fourth would touch one folder.

  • Built into iOS

    Default engine

    Apple Speech

    Free and offline. The app forces it to stay on the phone.

  • Pretrained, used as is

    Best offline quality

    Whisper base

    OpenAI's open model, 74M parameters, a one-time 148 MB download.

  • Cloud API

    Cloud option

    gpt-4o-mini-transcribe

    Uses your own OpenAI key. A build without a key never sends audio out.

3

If one cannot run, the next one takes over

An engine can be missing: Whisper before its download, OpenAI without a key, Apple Speech where on-device recognition is not available. The app then tries the next one, and the transcript says which engine wrote it.

One transcription, with Apple Speech picked
  1. 1

    Apple Speech

    Text? Done

    The engine picked in Settings goes first.

  2. 2

    Whisper

    Text? Done

    Next, if its model is downloaded.

  3. 3

    OpenAI

    Last step

    Last, if the build has a key. A stalled request gives up after 30 seconds.

The text shows which engine wrote it, so a silent fallback never hides a broken engine.

4

Built with an AI agent, in 6 steps

Claude Code wrote almost all of the code, 23 tickets on the first day. Speed was never the hard part. What kept it on track was the method around it: rules it reads first, questions answered before any code, a plan of small tickets that each say what done means, tests written before the code, an audit at the end of every phase, and my approval at every step.

The method, in order
  1. Rules first

  2. Questions

  3. Small tickets

  4. Test first

  5. Audit

  6. Approve

5

Where it stands

36 of the 37 tickets are done and 146 automated tests pass on every change. The last ticket is a round of checks on a real iPhone, because the phone keeps finding things the tests cannot see.

37

tickets in 11 phases

23

tickets on day 1

146

tests, run on every change

0

secret keys in git

The point

An AI agent makes building fast, so the work moves to the guardrails: rules it reads every time, small tickets with a clear definition of done, tests before code, and a human yes before anything ships. The same method works for any app an agent builds, not only this one.

Building something like this?

I build AI systems and mobile apps for companies that ship software. Tell me what you want to build and get a fixed quote.

Book a free 30-minute call

On Google Meet, in English, Spanish or Japanese.