Aller au contenu
ModelPrésentéExterne
Télécharger

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...

TypeOtherVersionRevision 6107eb1BClasse

Source du modèle

Type
Other
Taille du fichier
18,9 MB
Version
vRevision 6107eb1
Mis à jour
24 oct. 2026
Téléchargements
12
Source
Hugging Face

Description de la source

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 FacePrincipalVersion 6107eb12e400a9e2bb00bfe56211abe3cd5ee135
huggingface.co/isaacnetero/sandglasset-2spk-polyvox/tree/6107eb12e400a9e2bb00bfe56211abe3cd5ee135

Vérifié 24 oct.

Artefacts du modèle

1 artefact

best_model.pt

pt · 18,9 MB · SHA-256 fff0e5ffe09b…168d · Hugging Face

Download file

Extraits de sources

3 extraits

--- 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