narcotic-sh/senko

Very fast, accurate speaker diarization

解决的问题

Senko 是一个高性能的说话人分离流水线,旨在识别音频记录中的「谁在何时说话」。它专注于极致的速度和准确性,能够在现代硬件上(例如 RTX 4090)仅用几秒钟(例如 5 秒)处理一小时的音频。

工作原理

Senko 是 3D-Speaker 流水线的优化版本,采用四阶段流程:

  1. 语音活动检测 (VAD):使用 Pyannote segmentation-3.0 或 Silero VAD 来识别语音段。
  2. 特征提取:提取 Fbank 特征,利用 kaldifeat 在 NVIDIA 系统上实现 GPU 加速。
  3. 嵌入生成:使用 CAM++ 模型进行批量推理,生成说话人嵌入。
  4. 聚类:使用谱聚类或 UMAP+HDBSCAN 对相似嵌入进行分组,支持 NVIDIA 显卡的 RAPIDS 提供 GPU 加速。

在 Mac 上,Senko 利用 CoreML 进行 VAD 和嵌入处理,以优化 Apple Silicon 的性能。

适用人群

需要快速、准确且与语言无关的说话人分离工具,并可集成到转录服务或媒体播放器中的开发者和研究人员。

主要亮点

  • 极致速度:在高端 GPU 和 Apple M3 芯片上,1 小时音频处理时间低于 8 秒。
  • GPU 加速:Linux/WSL 上的 NVIDIA 用户可享受完整的 GPU 流水线(CUDA 7.0+)。
  • 语言无关:通过聚焦声学模式,支持多种语言,虽以英语和中文为优化目标。
  • 跨平台支持:原生支持 Linux、macOS 和 Windows(通过 WSL)。
  • 易于集成:提供 JSON 和 RTTM 输出格式,便于集成到其他应用中。

相关

  • 项目
  • 项目
  • 项目
  • 项目