Downloads · 30 days
30
32% of all-time downloads
tiantiaf/childvox-circor-whisper-base
childvox-circor-whisper-base is a audio classification model from tiantiaf. Use it for the audio classification task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as openrail.
This model includes the implementation of heart murmur classification described in <a href="https://arxiv.org/abs/2605.29257"<strongChildVox: A Speech, Audio, and Large Audio-Language Model Benchmark in Understanding…
Downloads · 30 days
30
32% of all-time downloads
All-time downloads
94
Public
Repo size
24.8 MB
Likes
1
Public
Click a slice to open those files.
.safetensors24.8 MB · 100%
From the Hugging Face model README
This model includes the implementation of heart murmur classification described in <a href="https://arxiv.org/abs/2605.29257"><strong>ChildVox: A Speech, Audio, and Large Audio-Language Model Benchmark in Understanding and Characterizing Sound across Childhood</strong></a> (Accepted to EMNLP 2026 Main)
Github repository: https://github.com/tiantiaf0627/childvox-release
The model is fine-tuned on the CirCor dataset, which consists of large-scale heart sound recordings collected from the main four auscultation locations of 1568 subjects, aged between 0 and 21 years.
The included labels are:
[
"Absent",
"Unknown",
"Present"
]
git clone [email protected]:tiantiaf0627/childvox-release
conda create -n childvox python=3.10
cd childvox
pip install -e .
# Load libraries
import torch
import torch.nn.functional as F
from src.model.childvox.whisper_audio import WhisperWrapper
# Find device
device = torch.device("cuda") if torch.cuda.is_available() else "cpu"
# Load model from Huggingface
# We provide model with different folds, and specify the fold from 1, 2, 3, 4, 5
model = WhisperWrapper.from_pretrained("tiantiaf/childvox-circor-whisper-base", fold_idx=1).to(device)
model.eval()
# Label List
label_list = [
"Absent",
"Unknown",
"Present"
]
# Load data, here just zeros as the example
# The child physiological segments used in training, which we cap the input at 10 seconds
# You need to prepare your audio to a length of 10 seconds, 16kHz and mono channel (we upsample the 8kHz digiscope recordings to 16kHz)
max_audio_length = 10 * 16000
data = torch.zeros([1, 160000]).float().to(device)[:, :max_audio_length]
logits, embeddings = model(data, return_feature=True)
# Probability and output
prob = F.softmax(logits, dim=1)
print(label_list[torch.argmax(prob).detach().cpu().item()])
Responsible Use: Child speech or physiological sounds data is highly sensitive. Users should respect the privacy and consent of the children and families whose recordings are processed, obtain approval from the appropriate ethics/IRB body, and adhere to the relevant laws and regulations in their jurisdictions when using ChildVox.
❌ Out-of-Scope Use
@article{feng2026childvox,
title={ChildVox: A Speech, Audio, and Large Audio-Language Model Benchmark in Understanding and Characterizing Sound across Childhood},
author={Feng, Tiantian and Xu, Anfeng and Shi, Xuan and Kommineni, Aditya and Siam, Shakhrul Iman and Micheletti, Megan and Shi, Zhonghao and Tager-Flusberg, Helen and Zhang, Mi and Perry, Lynn K and others},
journal={arXiv preprint arXiv:2605.29257},
year={2026}
}