echo99
Download

Technology

The technology and models inside echo99

Native macOS recording and open AI models for transcription, speaker identification, and summaries—all on your Mac.

Native capture without a virtual audio driver

echo99 is a native Swift menu-bar app. It records the two sides of a call as two separate tracks, using only what macOS itself provides:

The tracks are written as plain WAV files and kept separate on purpose: your mic is always “Me”, and the system track carries everyone else. Keeping them apart is what makes accurate speaker labeling possible. More detail in how system-audio capture works.

The models, rated

Every model below is open, downloaded once from Hugging Face, and run on your Mac. You pick them in the app’s Config window: speech models in Config → Models, summary models in Config → LLM. Each model name links to the original model from its creators (NVIDIA, pyannote, Google, Qwen and others) on Hugging Face; echo99 runs Core ML and GGUF conversions of them.

The ratings compare the models within one table, not across tables. They summarize our own tests on our development Macs together with the published model cards. Use them as a guide to choosing; they are not a benchmark.

Speech-to-text after the call

When a recording stops, echo99 transcribes both tracks with NVIDIA’s open Parakeet models, converted to Core ML. This is the transcript that is saved.

ModelAccuracySpeedParametersBest for
Parakeet TDT v3 Default 0.6B Everyday calls in any of 25 languages, with word-level timestamps.Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian
Parakeet Ultra Optional 0.6B The most accurate choice for the same 25 languages: a further-trained v3 with a larger download.
Parakeet Unified Optional 0.6B English calls where accuracy matters most: it reads the audio in overlapping full-context windows.

Live transcript preview

An optional preview window (Config → Experiments) shows what is being said while the call records. It is only a preview: the saved transcript always comes from the after-call model above, and the preview never affects the recording.

ModelAccuracySpeedParametersBest for
Parakeet EOU 120M Default 120M English. Light enough for any Mac, Intel included, and it detects the end of each sentence on its own.
Parakeet Unified Streaming ExperimentalApple silicon only 0.6B English with punctuation, closest to the final transcript. Needs Silero VAD.
Nemotron 3.5 Multilingual ExperimentalApple silicon only 0.6B Calls in any of 28 languages; the language is detected automatically. Needs Silero VAD.Arabic, Bulgarian, Chinese (Mandarin), Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Hindi, Hungarian, Italian, Japanese, Korean, Norwegian (Bokmål), Polish, Portuguese, Romanian, Russian, Slovak, Spanish, Swedish, Turkish, Ukrainian, Vietnamese

Speaker diarization

Diarization (telling the other voices apart) runs on the system track only; your microphone is always “Me”. In Config → Models the online diarizer is listed as speaker-diarization and the offline one as speaker-diarization (offline).

ModelAccuracySpeedSpeakersBest for
Online diarizer Default Automatic Most calls. pyannote segmentation with WeSpeaker voice embeddings. It is fast, and speaker recognition uses the same model.
Offline diarizer Optional Automatic, or set 1 to 4 Calls with several people on the other side. Global clustering (VBx) on the pyannote community model looks at the whole recording at once; best when you tell it how many speakers there were.
Nemotron 3 Experimental Up to 8 Larger calls. NVIDIA's end-to-end diarizer counts speakers well, but can miss short stretches of speech.

Summaries: a local language model

Summaries are written by a small open language model that runs on your Mac. On Apple silicon it runs on the GPU through Metal; on Intel Macs it runs on the CPU. Each model is a 4-bit quantized GGUF file:

ModelQualitySpeedMemoryBest for
Qwen3.5 2B Optional About 2.5 GB Older or busy Macs: the fastest and smallest.
Gemma 4 E2B Default About 4.5 GB Most people: balanced quality and speed.
Gemma 4 E4B Optional About 8 GB Better summaries when you can wait longer for them.
Gemma 4 12B Optional About 12 GB The best summaries, on a Mac with plenty of memory.

Every model file is downloaded from Hugging Face at a pinned revision and checked against its known SHA-256 hash before it is installed. The model works with a 32,768-token context; a transcript too long to fit is reported instead of being summarized in part. See meeting summaries for how to use them.

Helper models

Three small models do supporting work. They have no rating because there is nothing to choose between.

ModelWhat it does
Parakeet CTC 110M Optional Custom vocabulary: boosts the names and jargon you tell echo99 to expect.
Silero VAD Optional Finds silence: lets transcription skip long quiet stretches, and tells the experimental live models when a sentence has ended.
WeSpeaker v2 Turns a voice into a voiceprint for speaker recognition. It ships inside the default online diarizer.

Recognizing people across recordings

Diarization only separates voices within a single recording. Putting a name to a voice, and having echo99 recognize that person next time, is a second step, and it also runs on-device:

The matching is plain vector math and needs no network; the voiceprints always come from WeSpeaker v2, whichever diarizer you picked. Voiceprints are biometric data and stay on your Mac. Each voice you name also keeps a short voice sample from the call, which you can play in Manage Voices; samples are never exported. Recognition is on by default for new installs. You can turn it off in the welcome window or later in Config → Transcription. The speaker identification guide covers what that means for your privacy and control.

All inference on your Mac

Every speech model above runs through Core ML; on Apple silicon most of them are accelerated by the Apple Neural Engine, while the Nemotron 3 diarizer runs on the CPU. Models are downloaded once from Hugging Face; after that, recording, transcription, speaker labeling, and summaries all work with Wi-Fi off. Your audio and transcripts are never sent to a server. There is no server-side transcription or summarization at all.

The on-device speech runtime is FluidAudio, the open-source Swift SDK by Fluid Inference that brings these speech models to Core ML.

Powered by Fluid Inference

Try echo99 on your next call

Free download. No account. Recording and transcription stay on your Mac.

Download for macOS

Free · macOS 14.4+ · Apple silicon & Intel · Notarized by Apple