说话人分离:实现指南
识别并分离音频中的多个说话人
说话人分离:实现指南
识别并分离音频中的多个说话人
说话人分离(Diarization)实现指南(2026):判断“谁在何时说话”,pyannote.audio 真实代码。与 ASR 按时间戳合并得“谁说了什么”,准确率取决于音质——用分轨/避免过度降噪/提供说话人数。
说话人分离:实现指南(2026)
说话人分离回答“谁在何时说话”——按说话人分割音频,使转录变成“说话人A:… / 说话人B:…”。这对于会议记录、通话分析以及任何多方参与的音频至关重要。最常用的开源工具包是 pyannote.audio。
说话人分离的功能(及其限制)
说话人分离会标记说话人的轮次(说话人1、2……),但不会识别他们的姓名,也不会进行转录。完整的“谁说了什么”流程是:说话人分离 + ASR,然后按时间戳对齐两者。
python
pip install pyannote.audio (门控模型:在 Hugging Face 上接受条款)
from pyannote.audio import Pipeline
pipe = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1", use_auth_token=HF_TOKEN)
diary = pipe("meeting.wav")
for turn, _, speaker in diary.itertracks(yield_label=True):
print(f"{turn.start:.1f}-{turn.end:.1f} {speaker}")
与转录结合
使用 Whisper 获取文字,使用 pyannote 获取说话人,然后根据重叠的时间戳合并,将每个转录片段归属于一个说话人。参见多语言 ASR和OpenAI Whisper API。托管替代方案集成了说话人分离——参见Whisper vs Deepgram,对于会议场景,参见会议智能转录。
准确率因素
常见问题
说话人分离能识别说话人姓名吗? 不能——它标记为说话人1/2/……;映射到姓名需要注册或手动标记。 它能转录吗? 不能——需要与 ASR 配对并按时间戳合并。 为什么结果很差? 通常是重叠语音或噪声/远场音频。 有托管选项吗? Deepgram 和其他 ASR API 提供内置的说话人分离。
总结
说话人分离按说话人分割音频;与 ASR 结合(按时间戳合并)得到“谁说了什么”。pyannote.audio 是开源标准。质量取决于干净、分离良好的音频——尽可能使用每个说话人的通道,并避免过度降噪。
*最后更新:2026年6月。请根据 pyannote.audio 文档验证 API。*
相关工具
相关教程
检测并分割音频流中的语音
集成语音合成 API 实现自定义语音
使用自然语音 TTS 和自定义语音克隆构建语音 AI 应用
掌握 GPT-4o 的多模态特性,包括图像分析、音频转录以及用于交互式应用的全新实时流式 API
使用Whisper转录音频文件、会议和实时语音
使用 OpenAI Whisper 和 GPT-4o 构建自动会议转录、说话人分离和智能会议摘要