MahmoudAshraf97/whisper-diarization

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

解决的问题

解决音频记录中「谁在何时说话」的识别问题。虽然标准的语音转录工具可以将语音转换为文本,但通常无法区分对话中的不同说话人,导致生成的转录文本难以追踪对话流程。

工作原理

该项目实现了一个多阶段处理流程来处理音频:

  1. 语音提取:使用源分离技术将人声从背景噪声中分离,以提高嵌入精度。
  2. 转录:使用 OpenAI Whisper 生成文本。
  3. 对齐:使用 ctc-forced-aligner 修正并同步时间戳,减少时间偏移误差。
  4. 语音活动检测 (VAD):使用 MarbleNet 检测语音段并排除静音部分。
  5. 说话人嵌入:使用 TitaNet 为每个语音段提取唯一的说话人嵌入。
  6. 关联:将识别出的说话人与具体单词和时间戳关联,再使用标点模型进行最终对齐。

适用人群

需要高精度说话人分离(识别不同说话人)与自动语音转文本转录的研究人员和开发者。

主要亮点

  • 混合架构:结合 Whisper 用于 ASR,NVIDIA NeMo(MarbleNet 和 TitaNet)用于说话人分离。
  • 时间戳校正:集成强制对齐以最小化时间偏移引起的误差。
  • 并行处理:包含实验性并行模式(diarize_parallel.py),适用于高 VRAM 系统以加速处理。
  • 可定制化:支持多种 Whisper 模型、手动语言选择和批量大小调整。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目