FastDialogueSidon

Weights for FastDialogueSidon, a fast one-step model for full-duplex two-speaker dialogue separation and joint restoration: up to 120 s of 16 kHz mono dialogue in, two separated 24 kHz speaker tracks out. It combines a one-step DiT head (a single DiT step per window instead of the 30 diffusion steps of DialogueSidon) with a lightweight decoder (a frame-rate SAN-WaveNeXt2 (WaveFitNeXt) latent decoder, 30 M parameters, in place of DialogueSidon's DAC decoder). Every module β€” encoder, DiT head and decoder β€” is trained for FastDialogueSidon. Inference code with a Triton backend (no engine build) and a TensorRT backend lives in higurashi-ai/FastDialogueSidon.

FastDialogueSidon architecture

Model

file params what
encoder/model.safetensors 314.6 M 13-layer w2v-BERT 2.0-architecture encoder with relative_key attention, + 2 speaker latent heads
diffusion_head/model.safetensors 88.7 M one-step DiT head (8 layers, hidden 768)
vocoder/model.safetensors 30.1 M lightweight SAN-WaveNeXt2 (WaveFitNeXt) latent decoder (2 iterations, frame-rate ConvNeXt blocks)
stats.safetensors β€” per-channel latent normalization mean / std
config.json, */config.json β€” module hyper-parameters and the one-step update constants

All weights are fp32 safetensors (β‰ˆ 1.73 GB in total).

Usage

git clone https://github.com/higurashi-ai/FastDialogueSidon && cd FastDialogueSidon
hf download higurashi-ai/FastDialogueSidon --local-dir weights/
cd triton && pip install -e .
python scripts/run.py --bundle ../weights --wav dialogue.wav --output-dir out/   # any length <= 120 s
from fds_triton.runtime import TritonPipeline, load_waveform
pipe = TritonPipeline("weights/")
audio = pipe.separate(load_waveform("dialogue.wav"))   # [2, samples] @ 24 kHz

The TensorRT backend (trt/ in the code repository) builds its engines from the same weights: python scripts/build_engines.py --bundle ../weights --engine-dir artifacts/$(hostname)-trt10 --onnx-dir /tmp/fds-onnx.

Performance

Speed

Per-window wall clock on H100 (batch 1) against the original DialogueSidon β€” official release run as-is (fp32 PyTorch, DPM-Solver++ 30 steps + DAC) β€” on the benchmark inputs below:

DialogueSidon FastDialogueSidon (Triton fp16) speed-up
OpenDialog, 30 s windows 0.53 s (RTF 0.0178) 6.2 ms (RTF 2.07e-4) 86x
CallFriend, 120 s windows 2.67 s (RTF 0.0222) 24.8 ms (RTF 2.07e-4) 107x

Benchmark

Protocol of the DialogueSidon paper (Sec. 4.1) with these deviations: CallFriend sessions cropped to 120 s (the paper uses 20 s), OpenDialog uses 100 English sessions of exactly 30 s, and intelligibility is scored with Qwen3-ASR-1.7B instead of Whisper large-v3. Both systems run on the same inputs. Neither CallFriend nor OpenDialog is used for training; both serve only as test sets.

OpenDialog (English, 100 Γ— 30 s)

WER (%) ↓ DNSMOS ↑ NISQA ↑
DialogueSidon 13.21 3.327 3.757
FastDialogueSidon (Triton fp16) 10.80 3.303 3.491

CallFriend (5 languages Γ— 20 Γ— 120 s)

p-CER (%) ↓ de es fr ja zh all
DialogueSidon 11.56 15.39 21.02 16.36 20.93 16.54
FastDialogueSidon (Triton fp16) 11.47 16.89 21.25 14.49 19.46 16.52
DNSMOS ↑ NISQA ↑ speaker sim. ↑ VAD acc. ↑
DialogueSidon 3.293 3.626 0.941 0.931
FastDialogueSidon (Triton fp16) 3.294 3.395 0.943 0.929

See the code repository for per-length latencies of both backends (Triton and TensorRT), where the speed-up comes from, and the numerical-accuracy comparison.

License

Apache License 2.0.

Citation

FastDialogueSidon technical report (Rikuto Kotoge): coming soon.

@inproceedings{nakata2026dialoguesidon,
  title={DialogueSidon: Recovering Full-Duplex Dialogue Tracks from In-the-Wild Dialogue Audio},
  author={Nakata, Wataru and Saito, Yuki and Yamauchi, Kazuki and Tsunoo, Emiru and Saruwatari, Hiroshi},
  booktitle={Proceedings of the 27th Annual Meeting of the Special Interest Group on Discourse and Dialogue},
  pages={1--12},
  year={2026}
}
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Paper for higurashi-ai/FastDialogueSidon