Local speech recognition & synthesis

Phonon 2: A Local English Transcription Guide

Transcribe an English audio file on your computer and save optional word-level timestamps in JSON.

Phonon 2 is a local ASR1 model that turns English speech into text. Give an audio file such as WAV to the Fermion CLI2 to print a transcript; add --json to include each word's start and end time. This guide walks through installing the tool in a Python virtual environment3 and running a first transcription.

Requirements and key details
  • Phonon 2 is a 164 MB low-bit QAT model based on Parakeet TDT 0.6B v3.
  • The official CLI transcribes audio files and, with --json, returns word timestamps measured from the start of the file.
  • Published throughput was measured separately on an M5 MacBook Air, an eight-core Zen 5 CPU, and an H100 at batch size 128.

Turn a recording into text and timestamps

Phonon 2 is an ASR (automatic speech recognition) model that takes an English recording and returns a transcript. The command-line tool Fermion downloads and runs the model, so you can point it at an audio file in a terminal and get text back. Add --json to include each word's start and end time along with the full transcript.

Use it to draft meeting notes or find where a particular word appears in an interview. Move the transcript into an editor or search tool, and process the JSON further when timestamps matter. Phonon 2 is an English-only speech model.

Fermion runs the model locally. It prints the transcript to standard output and progress and warnings to standard error. After the first run, the model stays in the local cache for subsequent runs.

A desktop microphone connected to a laptop beside headphones
Give Phonon 2 an audio recording to produce an English transcript.

A low-bit model in a small download

Phonon 2 downloads at 164 MB. Based on Parakeet TDT 0.6B v3, it uses quantization-aware training (QAT) and represents weights with five learned values at about 2.1 bits per weight. The compact file can transcribe English speech locally.

In the developer's seven English evaluation sets, Phonon 2 averaged a word error rate (WER) of 5.21%, compared with 4.96% for its uncompressed base model, Parakeet TDT 0.6B v3. The table separates transcription accuracy from hardware-specific processing speed.

Developer-reported evaluations and throughput
MeasureDeveloper resultRun or evaluation conditions
English evaluation WER5.21%Average across seven public English evaluation sets
Teacher model WER4.96%Parakeet TDT 0.6B v3
Mac throughputAbout 174× real timeM5 MacBook Air
CPU throughput143× real timeEight-core Zen 5
Batched GPU throughput6,680× real timeH100 · batch 128

Developer-reported results · WER is averaged across seven Open ASR Leaderboard English sets · speed: about 20 s per audio hour on M5 MacBook Air (174×), 143× on eight-core Zen 5, and 6,680× on H100 at batch 128. Results.

Transcribe one English recording

The official Fermion CLI requires Python 3.10 or newer. If your macOS-provided python3 is 3.9, install a supported version such as Python 3.12 and create a virtual environment in your working folder. The example below uses the Apple Silicon path on Mac.

In the activated environment, install the package and MLX4 runtime5 components. The package is named fermion-research; its command is fermion. Although the phonon transcribe alias also runs Phonon 2, this guide names the model explicitly so you can see what will be downloaded.

Run these commands in order inside the isolated Python environment.

After installation, run the command from the folder containing your English WAV recording, replacing recording.wav with its actual name. On the first run, Fermion downloads the 164 MB model and prepares the engine, so startup can take longer than later transcriptions. The model is stored in the standard Hugging Face cache.

The transcription command sends only text to standard output, so append > transcript.txt to create a transcript file. Progress and warnings appear on standard error. The first run downloads the 164 MB model and prepares the engine.

Install on Apple Silicon Mac and transcribe English audio
python3.12 -m venv .venv
source .venv/bin/activate
pip install fermion-research
pip install mlx mlx-audio mlx-lm soundfile scipy zstandard
fermion models
fermion transcribe phonon-2 recording.wav
Replace `recording.wav` with your recording filename and use Python 3.10 or newer.
A portable audio recorder, headphones, and open notebook beside a laptop
Transcribe a meeting first, then check names and numbers against the audio.

Save JSON when you need word timestamps

Use --json to align video captions or locate a statement in a recording. The result object contains the transcript, model ID, processing times, and a word list; each word's start and end values are seconds from the beginning of the audio.

The text field in --json contains the transcript, and the words array contains each word's start and end time. Process the JSON to align subtitle timing in a video editor and split sentences into readable lines.

Accepted formats are WAV, FLAC, OGG, and AIFF decoded by libsndfile. Fermion resamples any sample rate6 and channel count to 16 kHz mono, but it does not accept MP3 or M4A directly. If the file is rejected, use the ffmpeg conversion command printed by the CLI to make a WAV, then retry.

Export text and word-timestamp JSON
fermion transcribe phonon-2 recording.wav > transcript.txt
fermion transcribe phonon-2 recording.wav --json > transcript.json
Create both files from the same source. Use the timestamped JSON to edit subtitles.
Transcript pages beside a laptop, audio recorder, and headphones
Word start and end times can help create caption intervals.

Check names and numbers against the recording

After transcription, compare people, company and product names, and numbers with the recording. Errors in these details can make a meeting note or interview harder to search or can misstate the record. Listening to the portions where names and amounts occur helps you focus the review against the text.

If a technical term or proper name is repeatedly misrecognized, list up to 25 frequent terms with --hotwords. For example, fermion transcribe phonon-2 recording.wav --hotwords "Acme, Quillon" gives those terms preference when they are plausible matches to the speech. The audio determines the words, so check name spellings against the recording.

When testing different vocabulary lists, save a plain transcription and a hotwords transcription of the same recording so you can compare them. Correct name spellings after reviewing both, and have a person check the final transcript against the audio when amounts, dates, or names matter.

If the first run fails, check the first error

If you see python3.12: command not found, check that a supported Python version is installed and that its executable is named python3.12. If python3 already points to Python 3.10 or newer, use that executable when creating the environment. You can check the environment's version with python --version.

If fermion: command not found, make sure the virtual environment is active and use pip show fermion-research to check whether the package is installed there. If Apple Silicon reports missing MLX dependencies, run the additional install command from the official docs and retry. The CLI also prints the command needed when a component is missing.

For an input-file error, check the path and extension; convert MP3 or M4A to WAV with the command provided by the CLI. If model download stops, check the network connection and rerun the command.

Finally, check transcription quality on a few recordings you actually plan to use. Compare overlapping speech, background noise, names, and number formatting with the audio to find corrections quickly. Treat the transcript as a draft and have a person review it before using it for an important document.

Terminology notes

  1. Automatic Speech Recognition — Technology that recognizes spoken language in audio and converts it to text.

    Back to the text
  2. CLI — Short for Command-Line Interface: operating a program by entering commands in a terminal.

    Back to the text
  3. Python virtual environment — An isolated space for installing Python packages per project, helping reduce package-version conflicts.

    Back to the text
  4. MLX — Apple’s machine-learning framework, which runs models using memory shared by the CPU and GPU on Apple Silicon.

    Back to the text
  5. Runtime — The software environment that provides facilities needed while a program runs. In local AI, it can also refer to a model execution engine.

    Back to the text
  6. Sampling rate — The number of times per second an audio signal is measured when digitized.

    Back to the text

Frequently asked questions

What should you check first in this article?
Phonon 2 is a local ASR model that turns English speech into text. Give an audio file such as WAV to the Fermion CLI to print a transcript; add `--json` to include each word's start and end time. This guide walks through installing the tool in a Python virtual environment and running a first transcription.