大样本不该生成稠密矩阵
`ClusterBackend` 在设置 `preset_spk_num` 后仍把所有规模的说话人嵌入送进谱聚类。长录音超过 2,048 个片段时,这条路径会构造 O(N²) 的稠密 affinity / Laplacian 矩阵并执行 O(N³) 特征分解;10,639 个片段即使已知只有两位说话人,也会失去原有的大规模保护。
面向语音识别研究与部署的完整工具箱,支持模型训练、离线与流式推理、语音端点检测、标点恢复以及说话人日志等能力。
样本规模决定能不能算,K 是否已知决定应该怎么算;两个维度共同决定聚类路径。
`ClusterBackend` 在设置 `preset_spk_num` 后仍把所有规模的说话人嵌入送进谱聚类。长录音超过 2,048 个片段时,这条路径会构造 O(N²) 的稠密 affinity / Laplacian 矩阵并执行 O(N³) 特征分解;10,639 个片段即使已知只有两位说话人,也会失去原有的大规模保护。
样本规模决定谱方法是否可承受,说话人数是否已知决定是否还需要从谱结构估计簇数。已知 K 的大输入可以直接优化固定簇目标;但为了维持余弦相似度语义,K-means 前需要先对嵌入做 L2 归一化,并固定初始化确保多次运行可复现。
保留 2,048 以下的谱聚类和未知 K 大输入的 UMAP/HDBSCAN,仅为“大输入 + 已知 K”新增分支:先 L2 归一化说话人向量,再以请求的簇数运行确定性 K-means;回归同时锁定阈值处分发和实际聚类结果。
10,639×192 的合成说话人嵌入在 CPU 上约 0.098 秒完成,返回恰好两个簇并达到 100% 分离纯度,不再分配稠密相似矩阵;小样本和自动估计说话人数的原有算法保持不变,长音频获得有界内存路径。