Sommelier:面向全双工语音语言模型的可扩展开放多轮音频预处理流水线 Sommelier: Scalable Open Multi-turn Audio Pre-processing for Full-duplex Speech Language Models
首个针对全双工语音对话模型的开源数据处理流水线,通过重叠分离和集成ASR提升对话数据质量
前置知识
全双工语音语言模型(Full-duplex SLM)
全双工语音语言模型是一种能够同时进行听和说的AI系统,不同于传统的轮流对话(半双工)模式。在自然对话中,人类经常会在对方说话时发出反馈(backchanneling,如“嗯”、“对”),或者在对方还没说完时就插话(interruption)。全双工模型需要支持这种并行处理能力,使AI交互更加自然流畅。Moshi是首个开源的全双工语音语言模型,本文在其基础上进行数据处理优化。
本文的核心目标是为全双工模型构建训练数据,理解全双工交互的特性对于理解数据处理的挑战至关重要
说话人分离(Speaker Diarization)
说话人分离是将一段多人对话音频中的不同说话人区分开来的过程,输出每个时间段对应的说话人标签(如Speaker 1、Speaker 2)。传统方法使用聚类算法,现代方法如Pyannote和Sortformer采用端到端神经网络模型。准确的说话人分离是构建多轮对话数据集的基础,因为我们需要知道每句话是谁说的。
说话人分离是本文流水线的关键组成部分,其准确性直接影响后续重叠语音处理和转录的质量
重叠语音分离(Overlap Speech Separation)
当两个或更多人同时说话时,音频中就会出现重叠。重叠语音分离的目标是将混合在一起的不同说话人的语音信号分离开来,恢复出每个人的独立语音流。常用的技术包括SepReformer等深度学习模型,它们通过学习说话人嵌入(speaker embedding)来区分不同的声源。
处理重叠语音是全双工模型训练的核心挑战,本文提出了一套完整的重叠处理策略
ROVER集成ASR
ROVER(Recognizer Output Voting Error Reduction)是一种集成多个ASR模型输出的策略。通过在词级别对齐不同模型的转录结果,然后进行投票选择最可能的词作为最终输出。这种方法可以利用不同模型的优势互补,减少单一模型的错误和幻觉(hallucination)。本文使用Whisper、Canary和Parakeet三个模型进行集成。
集成ASR是本文提升转录质量的关键创新,能显著减少ASR幻觉
研究动机
全双工语音语言模型的发展受到高质量多说话人对话数据稀缺的严重制约。现有大规模语音数据集(如LibriSpeech、GigaSpeech)主要包含朗读语音或单人独白,缺乏真实对话中的交互动态。即使是对话数据集(如Fisher、Switchboard),也受限于旧式电话音质(8kHz)和较小的规模(通常仅几千小时)。更重要的是,现有的大规模数据处理流水线(如WenetSpeech、Emilia)主要为单流语音优化,将重叠语音视为需要去除的噪音,而非需要建模的特征。这导致处理后的数据缺乏全双工模型所需的多流分离和并发交互信息。此外,在野录制的对话音频包含频繁的重叠、回信(backchanneling)和背景噪音,导致说话人分离错误和ASR幻觉(如重复生成“yeah, yeah, yeah...”),进一步降低数据质量。
本文的目标是本文的目标是构建一个开源、鲁棒、可扩展的语音数据预处理流水线,专门用于全双工语音语言模型的训练数据准备。具体目标包括:(1)处理真实世界对话中的重叠语音,保留自然对话动态而非将其去除;(2)通过集成多个ASR模型减少转录幻觉;(3)实现工业级可扩展性,使其能够处理大规模音频数据(如10,000小时);(4)完全开源,支持可复现的工业研究。
与已有工作不同的是,本文的独特切入角度是将全双工模型的需求反向映射到数据处理设计:不是将重叠视为噪声去除,而是将其视为有价值的信息进行分离保留。传统数据流水线追求“干净”的单人语音,而Sommelier追求“忠实”的对话结构。这种理念转变体现在流水线的每个环节:使用Sortformer替代Pyannote以更好地捕获短促话语和快速轮替;采用Case 4的重叠处理策略保留完整信息而非截断;以及通过集成ASR而非单一模型来提升转录鲁棒性。
核心方法
Sommelier采用模块化流水线设计,将原始对话音频逐步转换为高质量的全双工模型训练数据。整体思路是先将音频标准化统一格式,然后通过VAD和说话人分离识别对话结构,接着处理重叠语音恢复独立说话人流,再移除背景音乐噪音,最后通过集成ASR生成高质量转录。每个模块都可以独立开关,允许研究者根据需求平衡数据纯度和对话真实性。关键设计哲学是:不剥离重叠、回信和中断等真实对话特征,而是将它们保留下来,让模型学习对话的真实展开方式。
本文的核心创新点有两个:(1)重叠语音的智能处理:不是简单地将重叠部分丢弃或分配给一侧,而是使用SepReformer进行说话人分离,然后通过计算说话人嵌入的余弦相似度将分离后的语音正确归属到对应说话人。具体来说,从非重叠部分提取参考嵌入 $(e_{ref1}, e_{ref2}) = (M_{emb}(a_0), M_{emb}(a_1))$,然后计算分离候选与参考的相似度 $S_1 = ext{sim}(M_{emb}(a_{cand1}), e_{ref1})$ 和 $S_2 = ext{sim}(M_{emb}(a_{cand1}), e_{ref2})$,通过 $ ext{argmax}(S_1, S_2)$ 决定归属。(2)集成ASR采用ROVER投票策略:三个SOTA模型(Whisper、Canary、Parakeet)在词级别对齐后进行优先多数投票,至少两个模型同意的词才被接受,否则回退到主干模型Whisper。此外,使用n-gram过滤器(n=15,计数≥5)进一步剔除残余幻觉。
方法步骤详情
流水线包含七个主要步骤:(1)音频标准化:将所有音频转换为16kHz、16-bit、单声道标准格式,响度归一化到-20dBFS;(2)VAD与说话人分割:使用VAD模型在静音处切割音频,确保每段小于5分钟以避免下游模型内存溢出;(3)说话人分离:采用NVIDIA的Sortformer模型识别说话人边界,它比Pyannote更能捕获短促话语和快速轮替;(4)重叠语音处理:将重叠场景分为四类,采用Case 4策略(保留完整信息),对重叠区间进行两说话人分离,通过嵌入相似度匹配说话人身份;(5)背景音乐移除:使用PANNs检测BGM概率,超过0.3阈值时用Demucs提取人声轨道;(6)集成ASR:三个模型并行推理,ROVER投票生成最终转录,提取词级时间戳;(7)(可选)上下文感知字幕生成:使用Qwen3-Omni生成包含情感、性别、年龄等元数据的字幕。
技术新颖性
本文的技术新颖性体现在三个方面:首先,在重叠处理策略上,本文系统性地分类了四种重叠场景(如图5所示),并提出基于说话人嵌入相似度的自动归属方法,避免了简单截断或单侧分配的信息损失。其次,在ASR幻觉抑制上,本文不仅采用多模型集成,还引入了基于n-gram重复的过滤机制,这在现有数据处理管线中很少见。第三,在工程设计上,流水线的模块化允许研究者灵活开关各组件,例如可以选择是否进行背景音乐移除,这在追求通用性的工业应用中非常实用。此外,本文选择Sortformer而非主流的Pyannote作为说话人分离模型,并通过实验验证了其在短话语和快速轮替场景下的优越性。
实验结果
本文通过多项实验验证了Sommelier流水线的有效性。首先,在全双工模型微调实验中,使用83小时Sommelier处理的数据对Moshi进行LoRA微调,在Full-Duplex-Bench 1.0评估中,回信(backchanneling)频率从0.001提升到0.052,JSD从0.957降至0.630;平滑轮替成功率从0.941提升到1.000;用户中断处理延迟从0.257秒提升到1.065秒(更积极地响应用户输入)。其次,在说话人分离对比实验中,Sortformer在VoxConverse基准上DER为7.16%(vs Pyannote的8.40%),JER为14.69%(vs 17.68%),在短话语(≤1.0秒)和轮替区域的优势更为明显。第三,在重叠语音分离质量实验中,本文方法在各种SIR和重叠比率条件下均优于基线,尤其在高重叠比率(ρ=1.0)时,UTMOS得分从约1.7恢复到约3.0,接近Oracle上界。第四,集成ASR在LibriSpeech Test Other上将WER从6.26%降至3.92%,降幅约37%,在TEDLIUM3上从12.19%降至10.66%。最后,在处理延迟方面,单进程RTF为0.1746,8块A100处理10,000小时音频约需55小时。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 全双工对话模型微调(Full-Duplex-Bench 1.0) | 回信频率 / JSD / 平滑轮替成功率 | Moshi+Sommelier: 回信频率0.052, JSD 0.630, 平滑轮替1.000 | Moshi基线: 回信频率0.001, JSD 0.957, 平滑轮替0.941 | 回信频率提升51倍,JSD降低34%,平滑轮替成功率提升6% |
| 说话人分离(VoxConverse) | DER (%) / JER (%) | Sortformer: DER 7.16%, JER 14.69% | Pyannote 3.1: DER 8.40%, JER 17.68% | DER相对降低15%,JER相对降低17% |
| ASR集成性能 | WER (%) | MoE集成: LibriSpeech Other 3.92%, TEDLIUM3 10.66% | Whisper Large v3: LibriSpeech Other 6.26%, TEDLIUM3 12.19% | LibriSpeech Other WER降低37%,TEDLIUM3降低13% |
| 重叠语音分离质量(ρ=1.0, 0dB SIR) | UTMOS (感知质量) | 分离后: ~3.0 | 原始混合: ~1.7 | UTMOS提升约76%,接近Oracle上界~3.8 |
局限与改进
本文在局限性分析中明确指出:(1)流水线仅专注于语音数据处理,未显式处理非语音声学事件(如环境音效、笑声等),限制了其在全模态音频应用中的适用性;(2)虽然重叠分离模块能有效分离并发说话人,但分离后的音频质量不可避免地略低于原始独立录制的数据,可能引入轻微的声学伪影。此外,从我的分析来看,还存在以下局限:(3)集成ASR的推理时间是单模型的约3倍(主要受最慢的Canary模型制约),在处理大规模数据时计算成本较高;(4)微调实验仅使用83小时数据,虽然取得了显著改进,但论文未探索更大规模数据量的效果;(5)流水线的设计主要针对英语对话,在其他语言上的效果未知;(6)背景音乐移除使用固定的0.3概率阈值,可能在某些场景下过于激进或保守。
独立分析的弱点
本文存在几个可以改进的弱点:(1)说话人分离与重叠处理的顺序依赖性:当前流水线先进行说话人分离再处理重叠,但如果说话人分离本身在重叠区域就不准确,后续的处理可能会放大错误。可以考虑联合优化或引入反馈机制。(2)ASR集成策略的简单性:当前的ROVER投票机制是优先多数投票,回退到Whisper,但未考虑不同模型在不同条件下的可靠性差异。可以引入置信度加权的投票机制。(3)背景音乐移除的粗粒度阈值:PANNs概率阈值0.3是固定的,可能对不同类型音频(如有声书vs播客)需要不同阈值。可以采用自适应阈值或内容感知的决策机制。(4)缺乏在线/流式处理能力:当前流水线是离线批处理设计,对于实时应用场景可能不适用。可以探索增量处理策略。
未来方向
基于本文成果,未来研究可以在以下方向展开:(1)多语言扩展:当前验证主要在英语数据上进行,可以探索流水线在中文、日语等其他语言上的效果,特别是处理不同语言中重叠和回信的文化差异;(2)更大规模数据实验:本文仅使用83小时数据微调,可以探索使用数千甚至数万小时数据训练全双工模型的效果;(3)非语音事件建模:扩展流水线以保留和标注非语音声学事件(笑声、叹气、环境音),使模型能理解更丰富的对话上下文;(4)质量评估自动化:开发自动化的数据质量评估指标,用于筛选和过滤低质量片段;(5)多模态融合:结合视觉信息(如说话人的口型、手势)进一步提升说话人分离和重叠处理的准确性;(6)实时流水线开发:将批处理流水线改造为流式处理,支持实时全双工交互系统的在线学习。
复现评估
本文在可复现性方面表现出色:(1)完全开源:项目主页sommelier.github.io提供代码和演示,所有使用的软件组件和预训练模型都采用商业友好的许可证(MIT和Creative Commons);(2)数据来源透明:播客音频样本来自CC许可的来源,论文提供了详细的JSON输出示例,展示了每个处理阶段的数据结构;(3)训练细节完整:附录D提供了完整的微调超参数(Rank 128、Batch Size 16、学习率2e-6、2000步、8xA100),以及数据统计信息;(4)基准测试标准化:使用公开的Full-Duplex-Bench评估框架,结果可直接与其他方法比较。主要的复现障碍可能是计算资源需求(8xA100用于微调,单GPU用于数据处理),以及获取大规模播客音频数据。
论文图表
列出微调实验的详细配置:总数据时长约83小时、训练步数2000、硬件8×A100、LoRA Rank 128、Batch Size 16、学习率2e-6、权重衰减0.1。使用了kyutai-labs提供的moshi-finetune实现。
该表提供了实验复现所需的关键超参数信息