You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

HeAR-TB Domain-Aware Dual Heads

Domain-Aware Adaptation of Google HeAR for TB Cough Screening

This model adapts Google's HeAR (Health Acoustic Representations) foundation model for tuberculosis cough screening using a novel domain-aware dual-head approach.

Model Description

  • Base Model: Google HeAR (frozen)
  • Method: Domain-Aware Dual Heads
    • One XGBoost head specialized on Passive (natural) coughs
    • One XGBoost head specialized on Forced (voluntary) coughs
    • Final patient score = average of both domain predictions (patient-level aggregation)
  • Embedding Weighting: Embedding norm used as quality weight per cough
  • Dataset: Nairobi TBscreen (Sharma et al., Science Advances 2024)
    • 27,343 clean coughs (Passive + Forced)

Performance (Patient-Level, Repeated 5-Fold CV)

Metric Value
Patient AUC 0.7476 ± 0.0932
Sensitivity ~0.78–0.83 (tunable)
Accuracy 0.728 ± 0.060

Intended Use

  • Research and demonstration of acoustic TB screening using foundation models
  • Part of the MedGemma Impact Challenge (HAI-DEF model usage)
  • Educational / exploratory use on cough audio

Limitations & Important Disclaimer

This is NOT a medical device or diagnostic tool.

  • Trained on a small number of patients (123)
  • Performance is research-level only
  • Must not be used for clinical decision-making
  • Requires proper clinical validation before any real-world use
  • May contain biases from the training data (hospital population in Nairobi)

Always consult a qualified healthcare professional for medical advice.

CITE

@misc{hear-tb-2026, author = Sachiv.C, title = {HeAR-TB: Domain-Aware Dual Heads for Tuberculosis Cough Screening}, year = {2026}, dataset =https://zenodo.org/records/10431329, howpublished = (https://huggingface.co/sach3v/Domain_aware_dual_head_HEar), note = {Entry for MedGemma Impact Challenge} }

How to Use

import joblib
import numpy as np
import librosa
from huggingface_hub import hf_hub_download

# Download and load
package = joblib.load(hf_hub_download("sach3v/hear-tb-domain-aware-dualheads", "hear_tb_prize_domain_aware.joblib"))

model_p = package["model_p"]
scaler_p = package["scaler_p"]
model_f = package["model_f"]
scaler_f = package["scaler_f"]

def predict_cough(audio_path):
    y, sr = librosa.load(audio_path, sr=16000)
    # ... (pad to 2s and get HeAR embedding)
    emb = get_hear_embedding(y)   # your HeAR extraction function
    
    p_passive = model_p.predict_proba(scaler_p.transform(emb))[0,1]
    p_forced = model_f.predict_proba(scaler_f.transform(emb))[0,1]
    
    return (p_passive + p_forced) / 2.0


Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support