Model reference · open weights

PhoneticXeus

Audio changelinglab Speech→text 1 build Open weights 3k dl/mo

PhoneticXeus is an open-weight audio or speech model from changelinglab. PhoneticXeus (FP32) weighs 3.5 GB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • PhoneticXeus is a 575M parameter automatic speech recognition model developed by changelinglab that converts speech into IPA phones.
  • It is built on the XEUS speech encoder and trained on more than 70 languages using the IPAPack++ dataset.
  • The model requires mono 16 kHz audio input and is released under the Apache-2.0 license.

Summary of the changelinglab/PhoneticXeus model card, 2026-10-01

What it is

Released bychangelinglab
Released2026-03-30
Parameters575M
VRAM3.5 GB for the weights

What it runs on

Memory and cards for PhoneticXeus (FP32)

3.5 GBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What changelinglab says about PhoneticXeus

Read the model card

Multilingual phone recognition that turns speech into IPA phones, built on the XEUS speech encoder. Trained on 70+ languages (IPAPack++).

Usage

pip install torch torchaudio transformers huggingface_hub safetensors soundfile numpy pyyaml typeguard
import torchaudio
from transformers import AutoModel

model = AutoModel.from_pretrained(
    "changelinglab/PhoneticXeus", trust_remote_code=True
).eval()

wav, sr = torchaudio.load("audio.wav")
wav = wav.mean(0)                                    # mono, shape (samples,)
if sr != 16000:
    wav = torchaudio.functional.resample(wav, sr, 16000)

print(model.transcribe(wav, sampling_rate=16000)[0]["processed_transcript"])
# e.g. "aɪhædðætkʰjʊɹiɑsətipɪsaɪd…"

model.transcribe(...) returns a list of dicts with processed_transcript (joined IPA) and predicted_transcript (slash-separated phones). Calling model(input_values) returns frame-level CTC logits (batch, frames, 428) for custom decoding.

Audio must be mono 16 kHz. The first load asks you to allow the repo's remote code (trust_remote_code=True).

Citation

@misc{pxeus26,
      title={An Empirical Recipe for Universal Phone Recognition},
      author={Shikhar Bharadwaj and Chin-Jou Li and Kwanghee Choi and Eunjung Yeo and William Chen and Shinji Watanabe and David R. Mortensen},
      year={2026},
      eprint={2603.29042},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2603.29042},
}

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms