🍷Sommelier

A Scalable Open Multi-turn Audio Pre-processing
for Full-duplex Speech Language Models

1KAIST AI, 2NAVER Cloud
♣ This work was done during the residency program at NAVER Cloud.
† Corresponding authors
{kyudan, jihvvan.kim}@kaist.ac.kr   {soyoon.kim, jeonghoon.samuel, cbok.park}@navercorp.com   jchoo@kaist.ac.kr

Abstract

As the paradigm of AI shifts from text-based LLMs to Speech Language Models (SLMs), there is a growing demand for full-duplex systems capable of real-time, natural human-computer interaction. However, the development of such models is constrained by the scarcity of high-quality, multi-speaker conversational data, as existing large-scale resources are predominantly single-speaker or limited in volume. Addressing the complex dynamics of natural dialogue, such as overlapping and back-channeling remains a challenge, with standard processing pipelines suffering from diarization errors and ASR hallucinations. To bridge this gap, we present Sommelier, a robust and scalable open-source data processing pipeline designed for full-duplex models.

Sommelier Pipeline Overview

Overview of the Sommelier pipeline for curating podcast-style, multi-turn conversational speech suitable for full-duplex training.

Contributions

  • Scalable Pipeline for Full-Duplex SLMs: We release a scalable pipeline for curating podcast-style, multi-turn conversational speech suitable for full-duplex training, helping alleviate the community-wide data scarcity.
  • High-Fidelity Overlap Processing: We provide a detailed processing strategy that explicitly handles overlaps via rigorous diarization analysis and reduces ASR hallucinations using paralleled model ensembling and n-gram filtering.
  • Full-Duplex Fine-Tuning and Data Requirement Insights: We validate our pipeline by fine-tuning the full-duplex model Moshi on Sommelier-processed speech and analyze practical data requirements for stable full-duplex training.

Method

Sommelier is designed to transform raw, in-the-wild conversational audio into high-quality training corpora for full-duplex Speech Language Models (SLMs). Unlike traditional ASR pipelines that prioritize clean, non-overlapping speech, our design philosophy centers on preserving the chaotic yet rich dynamics of human dialogue—such as overlaps and backchanneling—while ensuring scalability for web-scale processing. The overall architecture is built as a modular framework where each component can be toggled or reconfigured, allowing researchers to adapt the trade-off between data purity and conversational authenticity.

Audio Standardization

Since collected radio and podcast data vary in format and volume, we convert all audio to a standard format (16kHz, 16-bit, Mono) and perform loudness normalization to −20dBFS using pydub and librosa.

VAD & Speaker Diarization

To prevent out-of-memory issues, we split long audio files into units of less than 5 minutes using a VAD model to cut at silence intervals. For speaker diarization, instead of the commonly used Pyannote speaker-diarization-3.1, we adopt Sortformer from NVIDIA, which demonstrates superior robustness in capturing very short utterances such as backchanneling.

Handling Overlapping Speech

Conversational audio features frequent turn changes and short utterances. We categorize overlapping scenarios into four distinct cases and select Case 4 as our baseline, which allows both segments to contain the overlap based on speaker identity, preserving full information. We incorporate a module that performs two-speaker separation (SepReformer) on the overlapped intervals with speaker identity matching via cosine similarity of speaker embeddings.

Overlap separation process

Four distinct cases for handling overlapping speech segments.

Background Music Removal

Audio from radio broadcasts or dramas often contains background music (BGM). We employ PANNs to estimate the probability of background music presence in each segment. If the probability exceeds 0.3, we apply the Demucs model to extract the vocal track. Since music removal can degrade speech quality, we selectively apply it only to segments identified by PANNs, minimizing unnecessary processing.

Ensemble-based ASR

Relying on a single ASR model poses significant risks due to hallucinations, particularly in silent or noisy segments. We employ a ROVER (Recognizer Output Voting Error Reduction) ensemble strategy combining outputs from three distinct SOTA models (Whisper, Canary, Parakeet). We align transcripts at the word level and apply a prioritized majority voting scheme: a word is accepted if predicted by at least two models. Residual hallucinations are further pruned using a RepetitionFilter that discards samples with excessive n-gram repetitions.

Experiments

Effectiveness of Sommelier-Processed Data for Full-Duplex Models

We validated the pipeline by performing LoRA fine-tuning on moshiko-pytorch-bf16 using 83 hours of Sommelier-processed data and evaluated using the Full-Duplex-Bench 1.0. The fine-tuned model shows significant improvements across Backchanneling, Smooth Turn-Taking, and User Interruption handling.

Model Pause Handling Backchannel Smooth Turn Taking User Interruption
Synth. TOR ↓Candor TOR ↓ TOR ↓Freq ↑JSD ↓ Candor TOR ↑Latency ↓ TOR ↑GPT-4o ↑Latency ↓
Moshi 0.9850.980 1.0000.0010.957 0.9410.265 1.0000.7650.257
Moshi + Sommelier 1.0001.000 0.2910.0520.630 1.0000.344 0.8583.6841.065

Full-Duplex-Bench 1.0 results. Arrows indicate whether higher (↑) or lower (↓) values are better.

Diarization Model Choice

We compare Sortformer against the Pyannote 3.1 baseline on VoxConverse. Sortformer consistently outperforms across all metrics, with the most pronounced gains in short utterances and rapid turn-taking—regimes critical for full-duplex conversational modeling.

Model DER (%) JER (%) DER (≤1.0s, %) DER (turn, %)
Pyannote 3.1 8.4017.6820.210.051
Sortformer 7.1614.6916.870.006

Diarization model ablation on VoxConverse (common subset, ≤4 speakers). Lower is better.

Speech Quality of Overlap Separation

We evaluate overlap separation quality across varying Signal-to-Interference Ratios (SIR) and overlap ratios using 900 synthesized samples from LibriSpeech. Our separation method (Sep) consistently outperforms the baseline across all conditions, with perceptual quality (UTMOS) closely approximating the Oracle upper bound.

SIR OVL WER (%) ↓ STOI ↑ UTMOS ↑
OriSepOrc OriSepOrc OriSepOrc
0 dB 0.210.56.14.8.961.9821.003.043.533.88
0.513.97.95.8.888.9691.002.273.323.87
1.048.915.65.3.778.9131.001.703.023.84
5 dB 0.211.37.65.3.961.9781.003.063.473.87
0.518.87.14.3.887.9711.002.343.393.91
1.052.59.14.0.761.9361.001.793.123.91
10 dB 0.212.67.05.6.961.9801.003.263.603.98
0.529.710.15.2.877.9561.002.583.213.86
1.051.013.84.8.754.9191.002.173.013.92

Speech quality for Original, source Separated, and Orc (Oracle). Highlighted cells show our method.

ASR Ensemble Performance

Our three-model ensemble achieves a significant WER improvement of approximately 37% on LibriSpeech Test Other, reducing the error rate from 6.26% to 3.92% compared to standalone Whisper Large v3. The ensemble also successfully corrects Whisper hallucinations such as repetitive generation.

Dataset Model WER (%) Time (s)
LibriSpeech Test Clean Whisper3.630.39
MoE (Ours)2.041.40
LibriSpeech Test Other Whisper6.260.35
MoE (Ours)3.921.27
TEDLIUM3 Test Whisper12.190.36
MoE (Ours)10.661.33

Whisper refers to Whisper-large-v3.

Latency

Running a single process on an A100 (80GB) yields a total Real-Time Factor (RTF) of 0.1746. With peak memory usage of 23GB, three concurrent processes per GPU effectively lower the RTF to 0.0443. Processing 10,000 hours of audio using eight A100 GPUs takes approximately 55 hours.

Stage Processing Time (s) RTF
Audio Duration120.00
VAD + Sortformer1.910.0159
SepReformer Separation0.150.0013
ASR Ensemble13.910.1159
FlowSE Denoising4.990.0416
Total20.950.1746

Processing time breakdown for a 120-second audio sample on a single A100 GPU.

Demo (1)

Explore the Sommelier pipeline output: original audio, separated speaker segments, and transcripts.

Original Audio

Episode: Dr. Beth Harris and Dr. Steven Zucker of Smarthistory

From Open Minds from Creative Commons · Apple Podcasts · Licensed under Creative Commons

00:00 / 00:00

Speaker Timeline

Click any segment to play. The timeline syncs with the original audio.

Segment Player

Click a segment on the timeline or transcript to play it here.

Full Transcript

Processing Statistics


Demo (2)

A second example from a different podcast episode.

Original Audio

Episode: Test English with Overlap (2min)

00:00 / 00:00

Speaker Timeline

Click any segment to play. The timeline syncs with the original audio.

Segment Player

Click a segment on the timeline or transcript to play it here.

Full Transcript

Processing Statistics