Skip to content
ModelListedExternal
Download

Sandglasset 2spk Polyvox

This repository contains the fine-tuned 2-speaker Sandglasset speech separation checkpoint used in the PolyVOX Samsung EnnovateX hackathon pipeline for real-time multi-user smart assistant command understanding in...

KindOtherVersionRevision 6107eb1Bgrade

Model source

Kind
Other
File size
18.9 MB
Version
vRevision 6107eb1
Updated
Oct 24, 2026
Downloads
12
Source
Hugging Face

Source description

PolyVOX Sandglasset 2-Speaker Separator

This repository contains the fine-tuned 2-speaker Sandglasset speech separation checkpoint used in the PolyVOX Samsung EnnovateX hackathon pipeline for real-time multi-user smart assistant command understanding in noisy smart-home environments.

Model Summary

  • Task: 2-speaker single-channel speech separation.
  • Sample rate: 16 kHz mono.
  • Checkpoint: best_model.pt.
  • Parameters: 4,928,770, under the 5M parameter hackathon budget.
  • Architecture: compact Sandglasset-style encoder, bottleneck, gated TCN blocks, skip fusion, mask head, and transposed-convolution decoder.
  • Intended pipeline role: separate overlapping speakers before ASR, command attribution, and SmartThings action routing.

Architecture

The model uses the project Sandglasset student architecture:

  • Encoder: Conv1d(1, 256, kernel_size=16, stride=8) followed by ReLU.
  • Bottleneck: GroupNorm(1, 256) and Conv1d(256, 128, 1).
  • Separator: 24 gated Sandglass/TCN blocks with hidden size 384, kernel size 5, dilation cycle 1, 2, 4, 8, 16, and selected average-pooling downsampling.
  • Mask head: Conv1d(128, 2 * 256, 1) with ReLU masks.
  • Decoder: ConvTranspose1d(256, 1, kernel_size=16, stride=8).

The exact PyTorch implementation is included in modeling_sandglasset.py.

Training Data and Fine-Tuning

The checkpoint was trained with online dynamic mixing from LibriSpeech source utterances and MUSAN noise. The fine-tuning run focused on hard overlap and noise conditions for the real-time assistant setting.

Source run artifacts included in this repository:

  • training_report.json
  • training_report.md
  • metrics.csv
  • latest_summary.json

Raw LibriSpeech and MUSAN audio are not redistributed in this model repository.

Final KPI Evaluation

Final KPI report date: 2026-06-21.

Evaluation protocol: final sparse-overlap LibriMix-style KPI evaluation for the fine-tuned Sandglasset 2-speaker checkpoint.

Evaluation groupCasesRequired SI-SNRMean SI-SNRMean SI-SNRiMean SI-SDRMean SI-SDRiMean xRTCases over targetxRT target
Clean 2-speaker100>25 dB20.1991 dB20.1986 dB20.1097 dB20.1092 dB0.021220/100Met
Noisy 2-speaker100>18 dB16.6557 dB16.8240 dB16.6291 dB16.7974 dB0.020143/100Met

Both final 2-speaker groups are far below the required 0.5 xRT runtime limit and the checkpoint satisfies the under-5M-parameter deployment constraint. The strict mean SI-SNR targets are not fully met for the 2-speaker final KPI groups; the model is strongest at low overlap and remains useful as a compact realtime separator.

Overlap Breakdown

Clean 2-speaker:

OverlapCasesMean SI-SNRMean SI-SNRiMean SI-SDRMean SI-SDRiMean xRTCases over target
0%2030.7797 dB30.7798 dB30.5042 dB30.5042 dB0.016917/20
25%2021.2307 dB21.2275 dB21.1504 dB21.1471 dB0.01783/20
50%2017.6011 dB17.6161 dB17.5711 dB17.5860 dB0.01800/20
75%2016.5915 dB16.6058 dB16.5617 dB16.5759 dB0.02620/20
100%2014.7925 dB14.7641 dB14.7612 dB14.7327 dB0.02700/20

Noisy 2-speaker:

OverlapCasesMean SI-SNRMean SI-SNRiMean SI-SDRMean SI-SDRiMean xRTCases over target
0%2020.2276 dB20.3985 dB20.1887 dB20.3595 dB0.018217/20
25%2017.7737 dB17.9407 dB17.7434 dB17.9103 dB0.021815/20
50%2016.3406 dB16.5108 dB16.3198 dB16.4900 dB0.01799/20
75%2015.3192 dB15.5083 dB15.2986 dB15.4876 dB0.02002/20
100%2013.6172 dB13.7619 dB13.5950 dB13.7396 dB0.02280/20

The same values are provided in machine-readable form in final_kpi_results.json.

Training Validation Metrics

Fine-tuned run: sandglass_overlap_noise_finetune_2spk_20260618_222414.

MetricValue
Best epoch38
Best validation SI-SNR13.2299 dB
Best clean-condition validation SI-SNR14.9777 dB
Best noisy-condition validation SI-SNR11.5912 dB
Validation batches512

Quick Start

Install dependencies:

pip install -r requirements.txt

Separate a WAV file:

python inference.py input.wav --output-dir separated_outputs

Programmatic loading:

import torch
from modeling_sandglasset import load_sandglasset_checkpoint, separate_tensor

model, checkpoint = load_sandglasset_checkpoint("best_model.pt")
mixture = torch.randn(16000)
estimates = separate_tensor(model, mixture)
print(estimates.shape)  # [1, 2, time]

Intended Use

This model is intended for research and hackathon demonstration of real-time 2-speaker separation inside the PolyVOX smart assistant pipeline. It can be used to test overlapping command separation before ASR and downstream smart-home action routing.

Limitations

  • Optimized for 16 kHz single-channel speech.
  • Trained and validated on dynamic LibriSpeech-style speech mixtures with MUSAN noise augmentation, not every possible home acoustic condition.
  • Speaker output order is permutation-invariant and should not be interpreted as a persistent speaker identity.
  • Final KPI mean SI-SNR remains below the strict clean and noisy 2-speaker targets, especially in high-overlap mixtures.
  • This package includes a PyTorch .pt checkpoint. Load it only from trusted sources, or create an additional Safetensors copy with convert_to_safetensors.py.

License and Attribution

The project code in this package is released under the MIT License. Training used LibriSpeech and MUSAN-derived data according to their respective dataset terms. See the parent PolyVOX repository documentation for full open-source and dataset attribution.

Sources

1 source
Hugging FacePrimaryVersion 6107eb12e400a9e2bb00bfe56211abe3cd5ee135
huggingface.co/isaacnetero/sandglasset-2spk-polyvox/tree/6107eb12e400a9e2bb00bfe56211abe3cd5ee135

Verified Oct 24

Model artifacts

1 artifact

best_model.pt

pt · 18.9 MB · SHA-256 fff0e5ffe09b…168d · Hugging Face

Download file

Source excerpts

3 excerpts

--- license: mit library_name: pytorch pipeline_tag: audio-to-audio tags: - speech-separation - source-separation - real-time-audio - smart-home - sandglasset - polyvox datasets: - LibriSpeech - MUSAN metrics: - si-snr - si-sdr model-index: - name: sandglasset-2spk-polyvox results: - task: type: audio-to-audio name: Two-speaker speech separation dataset: name: Final sparse-overlap LibriMix-style KPI evaluation type: custom metrics: - type: si-snr name: Clean 2-speaker mean SI-SNR value: 20.1991 - type: si-snr name: Noisy 2-speaker mean SI-SNR value: 16.6557 - type: si-snr name: Clean 2-speaker mean SI-SNR improvement value: 20.1986 - type: si-snr name: Noisy 2-speaker mean SI-SNR improvement value: 16.824 --- # PolyVOX Sandglasset 2-Speaker Separator This repository contains the fine-tuned 2-speaker Sandglasset speech separation checkpoint used in the PolyVOX Samsung EnnovateX hackathon pipeline for real-time multi-user smart assistant command understanding in noisy smart-home environments. ## Model Summary - Task: 2-speaker single-channel speech separation. - Sample rate: 16 kHz mono. - Checkpoint: `best_model.pt`. - Parameters: 4,928,770, under the 5M parameter hackathon budget. - Architecture: compact Sandglasset-style encoder, bottleneck, gated TCN blocks, skip fusion, mask head, and transposed-convolution decoder. - Intended pipeline role: separate overlapping speakers before ASR, command attribution, and SmartThings action routing. ## Architecture The model uses the project Sandglasset student architecture: - Encoder: `Conv1d(1, 256, kernel_size=16, stride=8)` followed by ReLU. - Bottleneck: `GroupNorm(1, 256)` and `Conv1d(256, 128, 1)`. - Separator: 24 gated Sandglass/TCN blocks with hidden size 384, kernel size 5, dilation cycle `1, 2, 4, 8, 16`, and selected average-pooling downsampling. - Mask head: `Conv1d(128, 2 * 256, 1)` with ReLU masks. - Decoder: `ConvTranspose1d(256, 1, kernel_size=16, stride=8)`. The exact PyTorch implementation is included in `modeling_sandglasset.py`. ## Training Data and Fine-Tuning The checkpoint was trained with online dynamic mixing from LibriSpeech source utterances and MUSAN noise. The fine-tuning run focused on hard overlap and noise conditions for the real-time assistant setting. Source run artifacts included in this repository: - `training_report.json` - `training_...

Source context: 12 downloads · 0 likes · Pipeline audio-to-audio · Library pytorch · Repo isaacnetero/sandglasset-2spk-polyvox

Source context: 9 downloads · 0 likes · Pipeline audio-to-audio · Library pytorch · Repo isaacnetero/sandglasset-2spk-polyvox