Phonon-2, an open English speech recognition model from Fermion Research released on 29 September 2026, is a 164 MB download that Fermion says averages 5.21% word error on the Open ASR Leaderboard's seven English sets, ahead of Whisper large-v3-turbo's published 6.58%. We installed it on a 6-thread Zen 5 Linux server and ran it against Whisper large-v3-turbo on the same 73 LibriSpeech clips. Phonon-2 transcribed an 8.6-minute file in 4.6 seconds against Whisper's 71.0 seconds, about 15x faster, and a full hour in 39.3 seconds. Accuracy came out level: 4.02% word error against Whisper's 3.59%, five errors apart on 1,169 words. The catches are names and subtitles. On Linux, the --hotwords switch that fixes misspelled names is silently ignored, and the output comes in 30-second blocks with no word timestamps.

What Fermion released on 29 September

Phonon-2 is a compressed copy of NVIDIA's Parakeet TDT 0.6B v3, a 2,508 MB (about 2.5 GB) English model. Fermion's encoder stores every weight as one of five learned levels in about 2.1 bits, which is how the download shrinks to 164 MB while, on Fermion's numbers, staying within 0.25 points of its teacher's 4.96% average. The weights are on Hugging Face under CC-BY-4.0, the same licence as Parakeet, so commercial use is allowed with attribution. The command line and engines are Apache 2.0 on GitHub.

One package, fermion-research on PyPI, runs the model three ways: through MLX on Apple silicon, on plain CPUs under Linux, Windows and macOS, and on NVIDIA GPUs through a CUDA Docker image. It transcribes files, transcribes the microphone live, and serves an OpenAI-compatible HTTP endpoint. Fermion's speed claims are 174x real time on an M5 MacBook Air, 143x on eight Zen 5 cores (16 vCPU) and 6,680x on one H100 in batches of 128.

Phonon-2 is also the engine inside Detta, Fermion's Mac dictation app. Detta is free and in beta. It needs Apple silicon and macOS 26.2 or later, and asks you to sign in with Google.

Phonon-2 download of 164 MB next to its 2.5 GB Parakeet TDT teacher model
Phonon-2 packs NVIDIA's 2.5 GB Parakeet teacher into a 164 MB download.

How we tested it

The machine is our own workstation container: an AMD Ryzen 7 9700X (Zen 5) with 6 logical cores visible and the avx512-vnni instruction tier, running fermion-research 0.2.6 with the CPU build of torch 2.14.1. The baseline is OpenAI's Whisper large-v3-turbo, MIT licensed, run through faster-whisper 1.2.1 at int8 with greedy decoding on the same 6 threads. That is the setup most people use to run Whisper on a CPU.

The audio is the 73-clip LibriSpeech sample Hugging Face keeps for testing (librispeech_asr_dummy, 481 seconds of read audiobook speech with reference transcripts). We scored both models with Whisper's own English text normalizer, the scoring the leaderboard uses, so "recognising" and "recognizing" count as the same word. For speed we joined the clips into one 517.5-second file, then tiled it to exactly one hour. Each Phonon-2 clip went through its OpenAI-compatible server using the unmodified OpenAI Python SDK.

The sample is small and full of character names from two audiobooks, so treat the accuracy numbers as a sanity check, not a leaderboard. The speed numbers are the solid part.

Speed: about 15x faster than Whisper turbo on CPU

Measure (same 6-thread Zen 5 box)Phonon-2Whisper large-v3-turbo (int8)
Download164 MB1,618 MB
8.6-minute file, decode time4.4 to 4.6 s (113x to 118x real time)71.0 s (7.3x real time)
8.6-minute file, total with model load10.5 to 10.7 s72.7 s
One hour of audio39.3 s total, 32.6 s decode (110.5x)about 8 minutes (estimated at 7.3x)
73 clips one by one7.8 s over the local server150.4 s
Peak memory1.69 GB, 2.06 GB on the hour1.67 GB
First run in a new environment14.6 s load (runtime compile)1.7 s load

The gap is large and it held on every run. Phonon-2 decoded the 517.5-second file in 4.40 to 4.59 seconds across three runs. Whisper turbo needed 71.0 seconds for the same file. Per clip over HTTP, Phonon-2's median response was 0.1 seconds.

Against Fermion's own speed claim, our 110x to 118x on 6 threads sits where you would expect next to its 143x on 16 vCPU. The "hour in about 20 seconds" headline is the MacBook Air number. On a 6-thread Linux box, plan on about 40 seconds an hour, model load included.

Two numbers surprised us. The small download does not mean a small footprint: peak memory was 1.69 GB, the same as Whisper turbo, and 2.06 GB on the hour-long file. And the first run in a fresh environment spends 14.6 seconds compiling the runtime before it decodes anything. Later loads take about 6 seconds, so for short files a long-running server beats calling the command each time.

Phonon-2 transcribed an 8.6-minute file in 4.6 seconds against 71.0 seconds for Whisper large-v3-turbo on CPU
Same file, same 6 threads: 4.6 seconds for Phonon-2, 71.0 seconds for Whisper turbo.

Accuracy: level on our sample, names are the weak spot

Scored with the Whisper normalizer, Phonon-2 made 47 errors on 1,169 words (4.02%) and Whisper turbo made 42 (3.59%). With a simpler scorer that only lowercases and strips punctuation the order flips, 4.26% against 4.61%. Five errors either way on a sample this size is a tie. Both are above Fermion's 1.72% LibriSpeech clean figure, measured with the Open ASR Leaderboard code, because our clips come from a different split and lean heavily on invented names.

The names are where most errors came from. The sample has 26 name occurrences. Phonon-2 got 8 right and Whisper turbo 11. Neither model got "Kaliko" right once in six tries; Phonon-2 wrote "Calico" every time. Phonon-2 also produced "Rugado", "Virgado" and "Ruggedot's" for Ruggedo, and "Brian" or "Brienne" for Brion. Ordinary words were close to clean on both.

That matters for creators more than a benchmark average does. Podcast guests, product names, channel names and place names are exactly the words a transcript has to get right, and exactly the words a speech model has rarely heard.

The hotword fix only works on a Mac

Fermion's answer to names is --hotwords: you pass a comma-separated list and the decoder nudges toward those spellings. The help text describes it in detail and says nothing about platform. On our Linux box we ran the 12 clips containing Kaliko, Ruggedo, Brion and Irolg with --hotwords "Kaliko,Ruggedo,Brion", and the transcripts came back identical to the run without it. The package source shows why: on any engine other than MLX the list is dropped before decoding starts. The runtime's status line reads "hotwords": [] and "hotword_bias": "not available on this decoder", and with --verbose the tool prints one line to stderr: "--hotwords is available on the Apple-silicon (MLX) engine only; decoding without it". The HTTP server also accepts the OpenAI prompt field and ignores it, without an error.

Whisper has a working equivalent on CPU. Passing the four names as initial_prompt took Whisper turbo from 4 of 16 name occurrences right to 16 of 16 on those same clips. Phonon-2 on Linux got 2 of 16, and there is no setting that changes it. If your recordings are full of names, that single result outweighs the speed table.

Names transcribed correctly: Phonon-2 on Linux 2 of 16, Whisper turbo with a name prompt 16 of 16
With a four-name prompt Whisper turbo got 16 of 16 names; Phonon-2 on Linux got 2 of 16.

Subtitles: 30-second blocks, no word timestamps

The server answers in three formats: json, text and verbose_json. Asking for srt or vtt returns a 400 error, and asking for word timestamps returns no words. Segment timing is coarse. On the 517.5-second file Phonon-2 returned 17 segments with a median length of 30.9 seconds (25.5 to 34.5). Whisper turbo returned 200 segments with a median of 1.7 seconds. A 30-second subtitle block is not a subtitle, so for captions on YouTube, Reels or TikTok you would still need Whisper, or a separate alignment step.

File formats are fine for audio work. WAV, FLAC, OGG and AIFF are documented, and an MP3 decoded without complaint in our test. Anything else, such as M4A or a video file, has to be converted first; the server's error message says so and gives the command, ffmpeg -i in.m4a -ar 16000 -ac 1 out.wav.

Median segment length: 30.9 seconds for Phonon-2 against 1.7 seconds for Whisper turbo
Median segment: 30.9 seconds from Phonon-2, 1.7 seconds from Whisper turbo. Only one is subtitle-sized.

How to run Phonon-2 as a local transcription server

This is the setup we used on Linux. It takes about five minutes and needs no GPU.

  1. Install the CPU build of torch first, so pip skips the GPU build: pip install --no-deps torch --index-url https://download.pytorch.org/whl/cpu, then pip install fermion-research torch safetensors soundfile scipy zstandard. Use a virtual environment.
  2. Transcribe one file to trigger the 0.16 GB download and the one-time runtime compile: phonon transcribe recording.wav. Add --json for timings and segments.
  3. Start the server with phonon serve --port 8010. It binds to 127.0.0.1 by default. Add --api-key if anything else on the network should reach it.
  4. Point any OpenAI client at it. Set the base URL to http://127.0.0.1:8010/v1 and the model to FermionResearch/Phonon-2 exactly; any other model name returns a "model_not_found" error. The OpenAI Python SDK's audio.transcriptions.create call worked unchanged.
  5. Convert M4A audio and video soundtracks to 16 kHz mono WAV with ffmpeg before sending.
  6. Route name-heavy or caption work to Whisper, with your names in initial_prompt, until Fermion brings hotwords and timestamps to the CPU engine.

On a Mac, skip all of this: Detta wraps the same model in a dictation app, and the MLX engine is the one where hotwords work.

Which one should you use

JobPickWhy
Bulk transcripts of a podcast or interview archive on a Linux serverPhonon-2About 40 seconds per hour of audio on 6 threads, against roughly 8 minutes for Whisper turbo
Show notes, search indexes, rough edit logsPhonon-2Accuracy was level with Whisper turbo on our sample, and segment timing does not matter
Captions and subtitlesWhisper turboPhonon-2 has no SRT or VTT output, no word timestamps, and 30-second segments
Recordings full of guest, brand or place namesWhisper turbo with a prompt16 of 16 names with a four-word prompt; Phonon-2's hotwords do nothing off a Mac
Dictation on an Apple silicon MacDetta (Phonon-2 on MLX)Free, offline, and the MLX engine supports hotwords
Commercial product built on the weightsEitherPhonon-2 is CC-BY-4.0 (attribution required), Whisper turbo is MIT

The honest summary: Phonon-2 is the fastest good-enough English transcriber we have run on a plain CPU, and the licence is clean. It is a throughput tool. For anything where specific words and timing matter, Whisper is still the safer default on Linux.

Frequently asked questions

Is Phonon-2 free to use commercially?

Yes, with attribution. The weights are released under CC-BY-4.0, inherited from NVIDIA's Parakeet TDT 0.6B v3, and the code and command line are Apache 2.0. Credit the model as the licence requires, and keep the NOTICE file that lists Fermion's changes.

How fast is Phonon-2 without a GPU?

On our 6-thread Zen 5 server it decoded at 110x to 118x real time: 4.6 seconds for an 8.6-minute file and 39.3 seconds for an hour, including model load. Fermion reports 143x on 16 vCPU of Zen 5 and 174x on an M5 MacBook Air through MLX.

Is Phonon-2 more accurate than Whisper?

On Fermion's leaderboard runs it averages 5.21% against Whisper large-v3-turbo's published 6.58%. On our 73-clip sample the two were level, 4.02% against 3.59%, five errors apart. Whisper got more names right: 11 of 26 against 8 of 26, and 16 of 16 once given a name list.

Does the Phonon-2 hotwords option work on Linux or Windows?

No. In version 0.2.6 it only works on the Apple-silicon MLX engine. On the CPU engine the flag is accepted, the runtime reports the hotword list as empty, and the transcript does not change. The OpenAI-style prompt field is ignored the same way.

Can Phonon-2 make SRT subtitles?

Not directly. The server returns JSON, plain text or verbose JSON. SRT and VTT requests return an error, there are no word timestamps, and segments run about 30 seconds each. Use Whisper or a forced aligner for captions.

How much memory does Phonon-2 need?

More than the 164 MB download suggests. Peak resident memory was 1.69 GB on an 8.6-minute file and 2.06 GB on a one-hour file, about the same as Whisper large-v3-turbo at int8 (1.67 GB).

Which audio formats does Phonon-2 accept?

WAV, FLAC, OGG and AIFF are documented, and MP3 worked in our test. An M4A file was rejected with an instruction to convert it to 16 kHz mono WAV with ffmpeg first, and video files need the same step.