Downloads · 30 days
7
5% of all-time downloads
arunps/wav2vec2-home-hindibabynet-ssl
wav2vec2-home-hindibabynet-ssl is a feature extraction model from arunps. Use it when you need embeddings to search or compare text. It is set up for transformers. The card lists the license as mit.
Self-supervised continued pretraining of facebook/wav2vec2-base on naturalistic Hindi parent–infant home interaction recordings from the HindiBabyNet corpus.
Downloads · 30 days
7
5% of all-time downloads
All-time downloads
151
Public
Parameters
95M
380 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors380 MB · 100%
From the Hugging Face model README
Self-supervised continued pretraining of facebook/wav2vec2-base on naturalistic Hindi parent–infant home interaction recordings from the HindiBabyNet corpus.
This model adapts the wav2vec2-base speech representation to the home-recording domain — noisy, reverberant, multi-speaker environments with infant vocalisations and Hindi child-directed speech (CDS). The goal is to learn robust latent audio representations that better capture the acoustic characteristics of naturalistic home environments, which differ substantially from the read/broadcast speech used to train the original wav2vec2-base.
The model was pretrained using the standard wav2vec2 contrastive + diversity self-supervised objective (mask-and-predict on quantised latent speech frames), without any transcription labels.
| Property | Value |
|---|---|
| Base model | facebook/wav2vec2-base |
| Architecture | Wav2Vec2ForPreTraining |
| Parameters | ~95 M |
| Hidden size | 768 |
| Attention heads | 12 |
| Transformer layers | 12 |
| Feature extractor | 7-layer CNN |
| Quantiser | 2 groups × 320 codebook entries |
The model was trained on ~346 hours of naturalistic home recordings from the HindiBabyNet corpus — a collection of day-long audio recordings of Hindi-speaking parent–infant dyads in their home environment.
| Statistic | Value |
|---|---|
| Total audio | ~346 hours |
| Number of recordings | 111 files |
| Train split | 99 files (~90%) |
| Dev split | 12 files (~10%) |
| Split strategy | by participant ID (no leakage) |
| Language | Hindi |
| Domain | Home, parent–infant interaction |
Audio characteristics:
epoch_multiplier=10)| Hyperparameter | Value |
|---|---|
| Optimiser | AdamW |
| Learning rate | 5e-5 |
| LR scheduler | Linear with warmup |
| Warmup steps | 5,000 |
| Total training steps | 50,000 |
| Effective batch size | 64 (2 per GPU × 4 GPUs × 8 grad accumulation) |
| Precision | FP16 (mixed precision) |
| Gradient checkpointing | Enabled |
| Max gradient norm | 1.0 |
| Weight decay | 0.01 |
| Crop duration | 8.0 seconds |
| Mask time prob | 0.05 |
| Mask time length | 10 frames |
| Num negatives | 100 |
| Contrastive temperature | 0.1 |
| Diversity loss weight | 0.1 |
torchrun| Metric | Value |
|---|---|
| Initial loss (step 100) | 5,191 |
| Final loss (step 50,000) | 1,662 |
| Avg loss (first 1k steps) | 4,740 |
| Avg loss (last 1k steps) | 2,815 |
The contrastive + diversity loss decreased consistently over training, indicating successful domain adaptation of the speech representations.
This model is intended as a feature extractor / encoder for downstream speech tasks on Hindi home-domain audio, such as:
from transformers import Wav2Vec2Model, Wav2Vec2FeatureExtractor
import torch
import torchaudio
# Load model and feature extractor
model = Wav2Vec2Model.from_pretrained("arunps/wav2vec2-home-hindibabynet-ssl")
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("arunps/wav2vec2-home-hindibabynet-ssl")
# Load and preprocess audio
waveform, sr = torchaudio.load("your_audio.wav")
if sr != 16000:
waveform = torchaudio.functional.resample(waveform, sr, 16000)
waveform = waveform.mean(dim=0) # mono
# Extract features
inputs = feature_extractor(waveform.numpy(), sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
# Last hidden state: (batch, time_frames, 768)
hidden_states = outputs.last_hidden_state
from transformers import Wav2Vec2ForCTC
model = Wav2Vec2ForCTC.from_pretrained(
"arunps/wav2vec2-home-hindibabynet-ssl",
ctc_loss_reduction="mean",
pad_token_id=0,
vocab_size=YOUR_VOCAB_SIZE, # set to your tokenizer vocab
)
# Freeze feature extractor, fine-tune transformer + CTC head
model.freeze_feature_encoder()
If you use this model in your research, please cite:
@misc{wav2vec2-home-hindibabynet-ssl,
author = {Arun P S},
title = {Wav2Vec2 Home-Domain SSL for HindiBabyNet},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/arunps/wav2vec2-home-hindibabynet-ssl}
}
Arun P S — Hugging Face profile