Repository navigation
Releases: fermionresearch/phonon
Release list
fermion-research 0.2.15
fermion serveon an address other than localhost now requires--api-key.- Phonon models load faster on Apple silicon; long recordings use less memory.
- Containers:
phonon-cpu:2.0.12(amd64 and arm64) andphonon-cuda:1.0.11run this release.phonon-cudastarts much faster and transcribes longer files.
Performance improvements and bug fixes.
pip install -U fermion-researchfermion-research 0.2.14
- Fixes a crash when a model is used from two threads at once, or loaded again in the same process.
fermion serveaccepts long recordings as uploads.- Containers:
phonon-cpu:2.0.11(amd64 and arm64) andphonon-cuda:1.0.10run this release.
Performance improvements and bug fixes.
pip install -U fermion-researchfermion-research 0.2.13
- Phonon-2.5, speech recognition in 25 languages:
fermion transcribe phonon-2.5 recording.wav. - Phonon-2.5 English:
fermion transcribe phonon-2.5-en recording.wav. - Smaller model downloads for the Phonon models; the same files on disk after unpacking.
Performance improvements and bug fixes.
pip install -U fermion-researchfermion-research 0.2.12
- Neutrino models load through
transformersexactly as the model cards show, in bfloat16 by default on every device. - The Neutrino-8B Linux runtime adds
--exact, which matches the float32 reference token for token.
Performance improvements and bug fixes.
pip install -U fermion-researchfermion-research 0.2.11
Performance improvements and bug fixes.
pip install -U fermion-researchPhonon-2 CPU engine, Android arm64-v8a 0.2.11
Phonon-2 CPU engine, Android arm64-v8a 0.2.11
The two Phonon-2 CPU engine libraries built with the Android NDK for arm64-v8a, with the C header and a note on the call
sequence. These are the same libraries the fermion-research Python package ships for linux-aarch64 (plus one fix to the
decoder's thread pool, so phonon2_tdt_set_threads can be called again after decodes have run; the Python package carries
it from its next release), compiled against bionic: they import only libc.so, libm.so and libdl.so, carry no versioned
symbol needs, and every loadable segment is 16 KB aligned.
In the package
libphonon2_enc-android-arm64-v8a.so/libphonon2_tdt-android-arm64-v8a.so: the packed int8 GEMM + FastConformer encoder, and the greedy TDT decode loop, for Armv8.2-A cores with dotprod (the i8mm kernel is selected at run time where the core has it).libphonon2_enc-android-arm64-v8a-base.so/libphonon2_tdt-android-arm64-v8a-base.so: the same for Armv8.0-A NEON-only cores.libphonon2_cpu-android-arm64-v8a.so(+-base): the GEMM alone, for parity with the Linux package (not needed withlibphonon2_enc).phonon2.h: every exported entry point;docs/android.md: tier choice, the call sequence, input layouts, frame counting, threads, return codes;docs/build_facts.txt;LICENSE,NOTICE;SHA256SUMS.txt.
Supported: Android 8.0 and later (API 26+), arm64-v8a only. Pick the tier before loading (the note shows the three
getauxval bits); a binary that assumes an instruction the core lacks must not be loaded.
What the app provides today: reading the model.fermion container index, the log-mel front end, the encoder projector
and the token-to-text step, all specified in docs/android.md. The model weights are not in this package: they come from
FermionResearch/Phonon-2 under that repository's licence (CC-BY-4.0).
Licence: the libraries and the header are Fermion Research's own work, released under the Apache License 2.0 (see LICENSE
and NOTICE in the package). The kernels ship as binaries with a header; the C sources are not part of this release.
Checksum (phonon2-android-arm64-v8a-0.2.11.zip, 177,650 bytes):
sha256 06d75b2d0e88f4e2194400e9c6c1b5987056702b36a5f95720e56ce8a11d220b
fermion-research 0.2.10
fermion-research 0.2.10
Faster on Intel and AMD processors
Phonon-2 loads much faster and decodes faster on Intel and AMD processors (Linux and Intel Macs), and uses less memory while it runs. Transcripts are unchanged, byte for byte.
Segment timestamps
segments now holds one entry per sentence or pause-sized stretch of speech, with start and end in seconds from the start of the file and the segment's text. The segment texts joined with single spaces give the transcript.
phonon transcribe meeting.wav --json # text, words and segments: {id, start, end, text}fermion serve fills segments in verbose_json in the OpenAI shape, so existing OpenAI clients read them as they are. The CUDA image does the same from ghcr.io/fermionresearch/phonon-cuda:1.0.7, where transcribe --json returns segments and word timestamps too.
One-line install
pip install fermion-research now brings everything the CPU engine needs, so on Linux, Windows and Intel Macs that one line is the whole setup. On Apple silicon, the mlx extra adds the MLX speech runtime:
pip install "fermion-research[mlx]"Also
FERMION_CPU_TIERnow runs the tier it names.- The CPU container
ghcr.io/fermionresearch/phonon-cpu:2.0.8(amd64 and arm64) runs this release.
pip install -U fermion-researchfermion-research 0.2.9
fermion-research 0.2.9
Hotwords on every Phonon-2 engine
Give Phonon-2 up to 25 names and terms (people, products, places, jargon) and it favours them whenever the audio is close. The audio still decides: a listed word that was not said stays out of the transcript. Hotwords work on Apple silicon, on Linux, Windows and macOS CPUs, and in the CUDA image (ghcr.io/fermionresearch/phonon-cuda:1.0.6). Without hotwords every transcript is unchanged.
phonon transcribe call.wav --hotwords "Ada, Quillon, Neutrino" # or --hotwords @names.txtimport fermion
speech = fermion.load_speech("phonon-2")
text, _, _ = speech.transcribe("call.wav", hotwords=["Ada", "Quillon"])The server honours the OpenAI prompt field as a vocabulary list, and takes an explicit hotwords field. Each request's words apply to that request only:
client.audio.transcriptions.create(model="phonon-2", file=open("call.wav", "rb"), prompt="Ada, Quillon, Neutrino")--hotword-lambda (hotword_lambda=) sets how hard the listed words pull. See docs/hotwords.md.
Intel Macs (0.2.8, first published in this release)
- Intel Macs run Phonon-2 through the CPU engine. The engine is chosen on its own;
fermion describeshows the tier (AVX2 on Core i5/i7/i9 and Xeon Macs, a baseline tier on parts without it). - Python 3.10 to 3.12 on Intel Macs; the package resolves
torch<2.3,numpy<2andtransformers<5.1on that platform only. The Parakeet-TDT model classes ship inside the package and are used wherever the installed transformers lacks them. - The Phonon-1 family is not available on Intel Macs; the command says so in one line, before any download.
pip install -U fermion-research