
1 个参数开启 WhisperLiveKit 实时说话人区分Sortformer 从安装到调参【免费下载链接】WhisperLiveKitReal-time, local speech-to-text with streaming ASR, speaker diarization, translation, and OpenAI/Deepgram-compatible APIs.项目地址: https://gitcode.com/GitHub_Trending/wh/WhisperLiveKitWhisperLiveKit 是本地实时语音转文字服务。加上 Sortformer 说话人区分后它给每句话标注发言人编号解决多人会议里这段话是谁说的这个问题浏览器界面、WebSocket 推送和 REST 接口的返回里都带着标签。先看效果每个转录片段都带 speaker 标签 打开实时界面两人对谈时字幕会自动分成不同的发言块。落到数据层每条转录片段都有一个speaker字段1、2、3按谁先开口的顺序分配特殊值-2表示静音间隔不是报错。除了浏览器界面REST 接口的diarized_json返回格式同样携带这些标签可以直接接进你自己的会议纪要系统。一句话原理1.25 秒一块的流式说话人跟踪Sortformer 的流式处理一句话就能说清音频按约 1.25 秒切成块10 帧 × 10 倍下采样 × 12.5 毫秒帧步长逐块送入模型模型内部维护两份缓存。spkcache从会话开始累积的说话人嵌入负责长期记忆fifo最近若干音频块的短期特征队列负责快速反应4 个说话人通道按到达顺序分配身份跨块保持稳定每个新块和缓存比对后输出这一块的活跃说话人。缓存长度 188 帧、左上下文 10 帧这些数值写在 sortformer_backend.py 的加载逻辑里这决定了后面的调优路径。两条命令跑通安装 Sortformer 并启动本地服务从 clone 到出字幕只要三步。Sortformer 依赖 NeMo 运行时必须装对应的 extra否则源码会直接退出并打印安装命令git clone https://gitcode.com/GitHub_Trending/wh/WhisperLiveKit cd WhisperLiveKit pip install -e .[diarization-sortformer]NVIDIA GPU 机器建议改用uv sync --extra cu129 --extra diarization-sortformer装 CUDA 版 PyTorch没有 GPU 也能跑代码会自动落到 CPU。首次启动会自动下载默认的 4 说话人模型nvidia/diar_streaming_sortformer_4spk-v2。wlk --model medium --diarization --language zh --port 8000浏览器打开localhost:8000就是实时界面。走官方 Docker 的话更省事docker compose up --build wlk-gpu-sortformercompose.yml 里这个服务默认执行--model medium --diarization和上面的场景一致。参数速查固定人数、换模型、调句子切分日常要动的参数都在命令行不需要改代码参数作用默认值什么时候用--sortformer-max-speakers按到达顺序只保留前 N 个说话人通道1-44用满检查点通道固定 2 人访谈少一个通道少一分混淆--sortformer-model-path本地.nemo文件、含单个.nemo的目录或模型 IDnvidia/diar_streaming_sortformer_4spk-v2用自己训练的模型--pause-segmentation-seconds停顿超过该秒数才切出稳定转录边界5句子切得太碎或太整时调整--no-transcription只跑说话人区分不转文字关单独验证分人效果一个容易误解的点--sortformer-max-speakers是声明不是估计。源码只保留前 N 个通道如果实际人数更多多出来的人会被归到前 N 个标签里归属会失真。人数固定时才用。降低标签延迟的三个旋钮模型、块等待与停顿判定说话人标签落屏的延迟主要花在三处各有一个旋钮--model转录延迟的大头。 下图横轴是实时率纵轴是 WER选你的硬件跑得动的最准模型--min-chunk-size默认 0.1 秒每次处理前最少等待的音频量调小更跟手CPU 吃紧时调大--pause-segmentation-seconds默认 5 秒停顿多久才认定一句话结束再往底层走缓存长度 188 帧、左上下文 10 帧、缓存更新周期 144 帧写死在加载逻辑里。长会议里两个人声线接近时可以把spkcache_len调大给模型更多历史上下文代价是显存上涨日常使用默认值就够用。踩坑清单四人口径、静音段与 Python 版本四个高频坑按踩中概率排序没装 extra 就启动进程直接退出。这是源码里的明确检查跟着提示装diarization-sortformer即可默认模型只有 4 个说话人通道第 5 个人出现时归属未定义。固定大会议要么分组要么换更大模型的检查点speaker: -2的片段是静音前端用它计算remaining_time_diarization写客户端时按speaker字段识别别靠文本判断别选 Diart 后端。它限定 Python 3.11/3.12 且 README 标注不推荐Sortformer 后端在 Python 3.13 上也能正常工作到这里安装、启动、调参、避坑各就各位WhisperLiveKit 的实时说话人区分把谁说了什么从人工整理变成了默认能力。现在打开终端执行上面的wlk --model medium --diarization命令让两个人轮流说话第一个发言人标签几秒钟内就会出现在 8000 端口的页面上。【免费下载链接】WhisperLiveKitReal-time, local speech-to-text with streaming ASR, speaker diarization, translation, and OpenAI/Deepgram-compatible APIs.项目地址: https://gitcode.com/GitHub_Trending/wh/WhisperLiveKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考