Skip to content

流式模型,训练样本长度应该怎么处理 #212

@xushangnjlh

Description

@xushangnjlh

在使用 MDTC (Multi-scale Depthwise Temporal Convolution) 模型配合 Max-Pooling Loss 进行唤醒词(KWS)训练时,我发现模型在流式部署(Streaming)场景下的表现与离线测试存在显著差异。
现象描述 (Observed Behavior):
离线测试: 使用 2-3s 的短音频剪辑进行测试,指标(唤醒率/误唤醒率)表现优异。
流式模拟: 在测试音频前随机填充(Padding)3s 的背景噪声以模拟流式输入的历史缓存(Cache)状态,发现误唤醒率(FAR)明显上升。
问题分析 (Problem Analysis):
该问题源于训练与推理时的 Cached State 不一致。训练时模型处理的是有限长度的独立样本,缺乏长程历史背景;而实际部署时,MDTC 的感受野会受到历史帧(History Buffer/Cache)的影响。当历史帧填充了非静音或复杂的噪声背景时,模型在 Max-Pooling 机制下容易产生虚警。
已尝试方案 (Attempted Fixes):
为了对齐分布,我尝试在训练阶段对样本前端进行 3s 的随机噪声 Padding(Data Augmentation),但实验结果显示对降低流式部署下的误唤醒率没有明显改善。
核心诉求 (Questions):
针对 MDTC + Max-Pooling 这种结构,是否存在更彻底的方案来解决这种“训练-部署不一致性”?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions