Local speech recognition & synthesis
Last updated
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.
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 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.
| Measure | Developer result | Run or evaluation conditions |
|---|---|---|
| English evaluation WER | 5.21% | Average across seven public English evaluation sets |
| Teacher model WER | 4.96% | Parakeet TDT 0.6B v3 |
| Mac throughput | About 174× real time | M5 MacBook Air |
| CPU throughput | 143× real time | Eight-core Zen 5 |
| Batched GPU throughput | 6,680× real time | H100 · 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.
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
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.
fermion transcribe phonon-2 recording.wav > transcript.txt
fermion transcribe phonon-2 recording.wav --json > transcript.json
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
Automatic Speech Recognition — Technology that recognizes spoken language in audio and converts it to text.
Back to the textCLI — Short for Command-Line Interface: operating a program by entering commands in a terminal.
Back to the textPython virtual environment — An isolated space for installing Python packages per project, helping reduce package-version conflicts.
Back to the textMLX — Apple’s machine-learning framework, which runs models using memory shared by the CPU and GPU on Apple Silicon.
Back to the textRuntime — 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 textSampling 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.
Read next
Local speech recognition & synthesis
Local AI speech recognition: transcribe on your own PC
Local speech recognition & synthesis
Qwen3-ASR vs Whisper: which local transcription model should you choose?
Local speech recognition & synthesis
Orukeet local transcription: transcribe English and European-language audio
Local speech recognition & synthesis
Transcribe Korean speech live and save text with Nemotron 3.5 ASR
