Skip to main content

BiasInEar: Assessing Sensitivity in Audio Language Models Across Linguistic, Demographic, and Positional Variations

Project description

BiasInEar

Assessing Sensitivity in Audio Language Models Across Linguistic, Demographic, and Positional Variations

arXiv HuggingFace License

BiasInEar is a benchmark for evaluating speech bias in multilingual multimodal large language models (MLLMs). It provides 11,200 spoken multiple-choice questions across 3 languages, 7 accents, 2 genders, and 2 option orders.

Installation

# Core (metrics only)
pip install biasinear

# With data loading
pip install biasinear[data]

# With audio utilities
pip install biasinear[audio]

# Everything
pip install biasinear[all]

Or with uv:

uv pip install biasinear[all]

Quick Start

1. Load Data

from biasinear import load_dataset

# Load a specific config
dataset = load_dataset(config="en_Female")

# Load all configs merged
dataset = load_dataset()

2. Run Inference

from biasinear.utils import concat_audio
from biasinear.models import BaseModel

# Implement your model by extending BaseModel
class MyModel(BaseModel):
    def generate(self, audio: bytes) -> dict:
        # Your API call here
        return {"answer": "A", "raw_response": "..."}

model = MyModel("my-model")
output = model.generate(audio_bytes)

3. Evaluate

from biasinear import Evaluator

evaluator = Evaluator(
    predictions=["A", "B", "A", ...],
    references=["A", "A", "A", ...],
    question_ids=["q1", "q1", "q2", ...],
    groups={
        "language": ["en", "en", "zh", ...],
        "gender": ["Female", "Male", "Female", ...],
        "order": ["original", "reversed", "original", ...],
    },
)
results = evaluator.run()
# {
#     "accuracy": 0.75,
#     "entropy": {"mean": 0.32, "per_question": {...}},
#     "apes": {"language": 0.12, "gender": 0.03, "order": 0.15},
#     "fleiss_kappa": {"language": 0.65, "gender": 0.88, "order": 0.52},
# }

Use Metrics Individually

from biasinear import accuracy, question_entropy, apes, fleiss_kappa

acc = accuracy(predictions, references)
ent = question_entropy(["A", "A", "B", "C"], num_categories=4)
apes_val = apes([0.3, 0.5, 0.4])
kappa = fleiss_kappa(ratings_matrix)

Metrics

Metric Description
Accuracy Standard MCQ correctness
Question Entropy Prediction uncertainty across configurations
APES Average Pairwise Entropy Shift across variable levels
Fleiss' Kappa Inter-rater agreement across perturbations

See the paper for details.

Citation

@inproceedings{wei-etal-2026-biasinear,
  title={Bias in the Ear of the Listener: Assessing Sensitivity in Audio Language Models Across Linguistic, Demographic, and Positional Variations},
  author={Wei, Sheng-Lun and Liao, Yu-Ling and Chang, Yen-Hua and Huang, Hen-Hsen and Chen, Hsin-Hsi},
  booktitle={Findings of the Association for Computational Linguistics: EACL 2026},
  year={2026},
  publisher={Association for Computational Linguistics}
}

License

Apache License 2.0. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

biasinear-0.1.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

biasinear-0.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file biasinear-0.1.0.tar.gz.

File metadata

  • Download URL: biasinear-0.1.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for biasinear-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a4d5dff4926d86207fa6cd34469d64625ddeef6fbd74f7f59219f865b10b0abb
MD5 66934784b1d9db738b50f4842c62ff17
BLAKE2b-256 1e14ca6b44edf2b2f4a26e5bc20e7d52da1cd1fba84377f4bf42d6f076228f6f

See more details on using hashes here.

File details

Details for the file biasinear-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: biasinear-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for biasinear-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf4c1b964273fac472eb95fde4331504d4796758ff0b1ce8c2340c73a994ea4d
MD5 c3ac5efd0881902fcfdb33dc5d8af180
BLAKE2b-256 82b66cee8570873509a6051d3c3068eef47194b34b96ab37d86ac75af5f890bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page