MahmoudAshraf97/whisper-diarization
Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper
解决的问题
解决音频记录中「谁在何时说话」的识别问题。虽然标准的语音转录工具可以将语音转换为文本,但通常无法区分对话中的不同说话人,导致生成的转录文本难以追踪对话流程。
工作原理
该项目实现了一个多阶段处理流程来处理音频:
- 语音提取:使用源分离技术将人声从背景噪声中分离,以提高嵌入精度。
- 转录:使用 OpenAI Whisper 生成文本。
- 对齐:使用
ctc-forced-aligner修正并同步时间戳,减少时间偏移误差。 - 语音活动检测 (VAD):使用 MarbleNet 检测语音段并排除静音部分。
- 说话人嵌入:使用 TitaNet 为每个语音段提取唯一的说话人嵌入。
- 关联:将识别出的说话人与具体单词和时间戳关联,再使用标点模型进行最终对齐。
适用人群
需要高精度说话人分离(识别不同说话人)与自动语音转文本转录的研究人员和开发者。
主要亮点
- 混合架构:结合 Whisper 用于 ASR,NVIDIA NeMo(MarbleNet 和 TitaNet)用于说话人分离。
- 时间戳校正:集成强制对齐以最小化时间偏移引起的误差。
- 并行处理:包含实验性并行模式(
diarize_parallel.py),适用于高 VRAM 系统以加速处理。 - 可定制化:支持多种 Whisper 模型、手动语言选择和批量大小调整。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目