Skip to main content

whisqa: a PyPI package for the WhiSQA Non-Intrusive Speech Quality Prediction Model

PyPI

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() and load_model() with type hints, docstrings, and unit tests.

Install

pip install whisqa

First-run note: load_model() downloads openai/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

arXiv

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)

Source distribution for whisqa 0.1.4
File Size Uploaded
whisqa-0.1.4.tar.gz 23.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for whisqa 0.1.4
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page