whisqa: a PyPI package for the WhiSQA Non-Intrusive Speech Quality Prediction Model
This project is a fork of the original WhiSQA project repackaged for PyPI.
WhiSQA is a non-intrusive MOS (ITU-T P.835) speech quality predictor.
Original repo: https://github.com/leto19/WhiSQA
Improvements
pip install whisqa— fully installable package; no manual cloning or dependency wrangling.- Bundled weights — the frozen Whisper encoder weights (~350 MB per checkpoint) are stripped down to head-only files of 11 MB and 13 MB that ship inside the wheel. The strip script is kept in the repo for full reproducibility.
- Flexible input —
predict()accepts file paths, NumPy arrays, and Torch tensors, making it easy to integrate into existing pipelines without writing audio to disk. - Auto-resampling — any sample rate is accepted; audio is resampled to 16 kHz automatically with a suppressible warning.
- CLI — score a file from the terminal with
whisqa speech.wav. - Simple API —
predict()andload_model()with type hints, docstrings, and unit tests.
Install
pip install whisqa
First-run note:
load_model()downloadsopenai/whisper-small(~240 MB) from HuggingFace Hub and caches it in~/.cache/huggingface/. The WhiSQA head weights ship inside the package and require no download.
Usage
import whisqa
# File path — WAV or any format supported by libsndfile
whisqa.predict("speech.wav")
# → {'mos': 3.82}
# NumPy array
import numpy as np
whisqa.predict(np.zeros(16000, dtype=np.float32), sample_rate=16000)
# Torch tensor — drop straight in from your existing pipeline
import torch
whisqa.predict(torch.zeros(1, 16000), sample_rate=16000)
# All five P.835 dimensions
whisqa.predict("speech.wav", model_type="multi")
# → {'mos': 3.82, 'noisiness': 4.10, 'coloration': 3.55, 'discontinuity': 4.20, 'loudness': 3.90}
# Efficient repeated inference — load once, score many
model = whisqa.load_model("single")
for f in my_files:
print(whisqa.predict(f, model=model))
# CLI
whisqa speech.wav
whisqa speech.wav --model multi
whisqa speech.wav --no-warn-resample
Citation
If you use WhiSQA in your work, please cite the original authors:
@inproceedings{close2025whisqa,
title = {{WhiSQA}: Non-Intrusive Speech Quality Prediction Using {Whisper} Encoder Features},
author = {Close, George and Hong, Kris Y. and Hain, Thomas and Goetze, Stefan},
booktitle = {Speech and Computer -- 27th International Conference, {SPECOM} 2025,
Szeged, Hungary, October 13--15, 2025, Proceedings, Part {I}},
editor = {Karpov, Alexey and Gosztolya, G{\'a}bor},
series = {Lecture Notes in Computer Science},
volume = {16187},
pages = {39--51},
publisher = {Springer},
year = {2025},
doi = {10.1007/978-3-032-07956-5_3},
}
Metadata
Release files for whisqa 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| whisqa-0.1.4.tar.gz | 23.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| whisqa-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.9 MB
Release files / whisqa-0.1.4.tar.gz
| Download URL | whisqa-0.1.4.tar.gz |
|---|---|
| Size | 23.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f882223a649fa6f46ea1bb4f0af3b2821222c02abfa99ceb67d74dfc4340b72e
|
|
BLAKE2b-256 checksum How to use checksums |
ef9f1682837f890dc6c8f56aa0863dcfe4a3acfa584cbdb7bb8c329e9f930e00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 12, 2026.
Transparency logRelease files / whisqa-0.1.4-py3-none-any.whl
| Download URL | whisqa-0.1.4-py3-none-any.whl |
|---|---|
| Size | 22.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2506a2ab3d7a8f07a21f7c08bc1dc06ef1e312edbeef1427f63935ce25d70407
|
|
BLAKE2b-256 checksum How to use checksums |
cd2f8cb0011b4c1f541884c49210c85ad353754a94149312060b564cdf648f02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 12, 2026.
Transparency log