On-device voice cloning for Mac: Transcription Studio now speaks in a cloned voice, on 346 MB instead of 2.7 GB

Transcription Studio now turns text into speech on your Mac, in a voice cloned from seconds of audio. The same model, on 346 MB instead of 2.7 GB.

Transcription Studio has spent months turning audio into text on a Mac with nothing leaving the machine. On 2 August 2026 it started going the other way. Hand it a sentence and it speaks, in a voice cloned from a few seconds of audio you supply. No training run, no upload. One native app, one local service, both directions of audio.

We had speech before this. It ran through a Python stack borrowed from the open-source world: a virtual environment, a second runtime beside our own, 2.7 GB on disk, 1.5 GB of memory once it woke up, and about four seconds before the first audio came back. It worked. It was also rented: someone else’s runtime, doing one job, that could move under us at any release.

Going native usually means accepting a different model, and a different model means a different voice. That is what stops most ports before they start. It didn’t apply here. An open-source Swift package carries a native port of the exact model we were already running, checked against the original until they matched sample for sample. Same voice, same audio quality, inside the engine our app already used to recognize speech.

The gate was an ear

Nine engines were measured on the same recordings, one of them the incumbent. The table of numbers is real, and it decided nothing.

The decision was four clips, shuffled and played back with no labels. The Core ML port was picked on the short sentence and on the long passage, over the Python original running the identical model. We had hoped for a tie. Preferring the port to the thing it was ported from is what made it a finding rather than an assumption. The candidate built to sound better, at about seven times the compute cost, lost on the only test that mattered.

Then the rest followed. Disk: 2.7 GB to 346 MB. Peak memory: 1,540 MB to 636 MB. First audio for a short note in the same warm-process test: about 4.3 seconds to about 1.4, and about 0.3 through the always-on local service where the model stays loaded. That last number is the one you feel: you press play and the voice is already there.

The Python stack was then deleted. Not disabled, not left behind a flag as a fallback. Removed, with its virtual environment and cached weights, about 5.6 GB off the machine. A fallback nobody exercises is not a fallback. It is a second system quietly rotting.

What it refuses to do

The cloning engine speaks English and refuses anything else outright. The part of it that turns letters into sounds only knows English, so another language would not come out accented. It would come out wrong, and confidently wrong is the more expensive failure.

It won’t trust a label it can check, either. The model trims a reference clip to five seconds but still tries to speak whatever the accompanying transcript claims is in it, so a stale transcript makes it say words that aren’t there. Rather than trust text someone typed next to the clip, the app transcribes the clip itself, with word timestamps, and trims audio and text to match.

And the two never drag each other into memory. A day of nothing but transcribing never loads the voice at all.

Each of those is the same decision in a different place. A local system earns your trust by being specific about what it will not attempt.

Running it is not the same as selling it

Transcription Studio is not on the App Store. It is a native macOS and iOS app FCT built and uses daily. The speech path described here shipped on 2 August and has run in production here since. The models are open weights we run on our own hardware.

That is why the week was worth spending. The model can be rented. The machine it runs on, the boundary it runs inside, and the decision about what leaves the building should not be.

Frequently asked questions

What does voice cloning mean here?

You hand the app a few seconds of someone's voice and it speaks new text in that voice. No training run, no model to fine-tune. The reference clip stays on your machine and the speech is made there too. It is the same idea as the transcription side of the app, pointed the other direction.

Why replace something that already worked?

The old path worked and was rented: a Python environment and a second runtime sitting beside our own to do one job, 2.7 GB on disk and 1.5 GB of memory when it woke up. Every dependency like that is a thing you don't control that can move under you. The replacement runs the same model inside the engine the app already used to recognize speech, so the number of things we depend on went down.

How was the winner actually chosen?

By ear, blind. Nine engines were measured on the same recordings, and the table of numbers decided nothing on its own. Four clips were played back with no labels, and the Core ML version was picked on both the short sentence and the long passage, including over the Python original running the identical model. A candidate that might have sounded better at about seven times the compute cost lost on the only test that mattered.

Can I get Transcription Studio?

Not yet. It is not on the App Store. It is a native Mac and iOS app FCT built and runs every day as its own daily driver, and the local service behind it powers our own transcription and voice work. We would rather say that plainly than announce a date we haven't earned.

Talk about building on-device AI you ownMore from the newsroom