MigoXV/diar_sortformer_4spk-v1
离线 Sortformer v1(原生 PyTorch safetensors)
本仓库将 NVIDIA diar_sortformer_4spk-v1 官方 .nemo 权重转换为 sortformer-dia 项目的原生格式,保留全部 1030 个张量,未微调、未量化。模型使用整段上下文完成最多 4 位说话人的分离,保留重叠发言,不包含语音转写或跨录音身份识别。
文件
model.safetensors:原始 FP32 权重及必要 buffer,采用 NeMo 原始参数命名。config.json:原生模型配置,model_type=offline_sortformer_v1。source.json:官方仓库、revision、原始归档 SHA256、转换格式和参考代码版本。LICENSE、NOTICE:原始许可证和归属声明。
本格式需要 sortformer-dia 的原生 PyTorch 实现;仅安装 Transformers 并调用 AutoModel 无法加载。模型代码随该项目交付,本仓库仅提供权重与配置。
使用
hf download MigoXV/diar_sortformer_4spk-v1 --local-dir /path/to/model
# 在 sortformer-dia 项目的 Poetry 环境中:
poetry run sortformer-dia serve --model /path/to/model \
--device cpu --dtype float32 --max-batch 1
# 或 CUDA:
CUDA_VISIBLE_DEVICES=3 poetry run sortformer-dia serve --model /path/to/model \
--device cuda:0 --dtype float32 --max-batch 1运行和转换均无需 NeMo、Lightning、Transformers。首版支持 CPU/CUDA FP32,auto 下采样使用 PyTorch。默认请求最长 120 秒,v1 默认每批 1 个请求。
兼容 ux_sd.UxSpeakerDiarization/Detect 和 StreamingDetect:输入为单声道 LINEAR16 裸 PCM 和实际采样率。两者均完成整段模型计算后返回;StreamingDetect 按开始时间逐片段发送,speaker 从 1 开始,仅在本次请求内有效。
默认后处理为官方 DIHARD3 预设:onset/offset=0.64/0.74,前后补边=0.06/0 秒,最短语音/静音=0.1/0.15 秒。--postprocessing raw 切换为 0.5 阈值输出。
对齐
独立 NeMo 参考版本为 ca3f93a516ff172e32951928aea6f96a977a7600,双方关闭 dither,以 FP32 对齐。CUDA 上最长 120 秒样例的概率最大绝对误差为 1.18e-5 以内;CPU 上已验证 20 秒及短音频、静音样例。测试样例的 DIHARD3 片段与固定参考版本一致。此结果验证转换正确性,不代表通用数据集 DER。
来源与许可证
官方模型:nvidia/diar_sortformer_4spk-v1,固定 revision 9f17b10df44c0a4c8f3c86fbddc9ee2d6ab9ac08。模型权重沿用 CC-BY-NC-4.0,完整文本见 LICENSE。本仓库是 MigoXV 的格式转换版本,并非 NVIDIA 官方发布。
