#6666th of 81 in VoiceFor voice, speech and music

whisper-diarization

Whisper transcription with per-sentence speaker labels using NeMo diarization

Stars
5.7k
License
BSD-2-Clause
Last commit
Aug 2026
Language
Jupyter Notebook
Stars, last 29 weeks+221
21 Apr 2026: 5,452 stars28 Apr 2026: 5,466 stars5 May 2026: 5,470 stars12 May 2026: 5,480 stars19 May 2026: 5,489 stars26 May 2026: 5,499 stars2 Jun 2026: 5,516 stars9 Jun 2026: 5,526 stars16 Jun 2026: 5,542 stars23 Jun 2026: 5,550 stars30 Jun 2026: 5,560 stars7 Jul 2026: 5,570 stars14 Jul 2026: 5,575 stars21 Jul 2026: 5,582 stars28 Jul 2026: 5,591 stars4 Aug 2026: 5,598 stars11 Aug 2026: 5,599 stars18 Aug 2026: 5,611 stars25 Aug 2026: 5,618 stars1 Sept 2026: 5,624 stars8 Sept 2026: 5,633 stars15 Sept 2026: 5,638 stars22 Sept 2026: 5,650 stars29 Sept 2026: 5,654 stars6 Oct 2026: 5,657 stars13 Oct 2026: 5,658 stars20 Oct 2026: 5,660 stars27 Oct 2026: 5,665 stars3 Nov 2026: 5,672 stars10 Nov 2026: 5,673 stars

5,452 on 21 Apr 20265,673 on 10 Nov 2026

From GitHub's daily star counts.

Checked on GitHub.

Overview

A Python pipeline that transcribes audio with Whisper and labels the speaker of each sentence. It extracts vocals with Demucs, aligns timestamps with ctc-forced-aligner, then uses NeMo MarbleNet for VAD and TitaNet for speaker embeddings. It runs from the command line via diarize.py, and a Colab notebook is provided.

Who it is for: Engineers who need speaker-labelled transcripts from audio files

Strengths

  • Combines Whisper, Demucs vocal separation, MarbleNet VAD and TitaNet embeddings in one script
  • Forced alignment and punctuation realignment reduce speaker errors from timestamp drift
  • Colab notebook available for trying it without a local setup
  • CLI flags for model, language, device, batch size and disabling stem separation

Weaknesses

  • Overlapping speech is not handled, per the README's known limitations
  • Whisper and NeMo parameters are hardcoded in diarize.py and helpers.py
  • diarize_parallel.py is experimental and wants 10 GB or more of VRAM
  • Needs ffmpeg and Cython installed before the requirements will install

What it needs

  • GPU optional
  • Needs Python >= 3.10, ffmpeg, Cython, NVIDIA NeMo, Demucs, ctc-forced-aligner
  • Models: Whisper (default medium.en), Faster Whisper, NeMo MarbleNet, NeMo TitaNet

Quick answers

Is whisper-diarization open source?

Yes. Its code is on GitHub under the BSD-2-Clause license.

Does whisper-diarization need a GPU?

No. It runs on a CPU and can use a GPU when you have one.

Also in Voice

See all 81
Also in Voice
RankProjectScore
1voicestudioDesktop app for voice cloning, dubbing, dictation and audiobooks108k stars+48,895 (+83%) in 30 daysAGPL-3.098 out of 100
2handyOffline push-to-talk dictation app that pastes transcripts into any text field38.4k starsMIT91 out of 100
3whisper.cppC/C++ speech-to-text engine running OpenAI Whisper models locally55.1k stars+858 (+1.6%) in 30 daysMIT90 out of 100
#4xiaozhi-esp32ESP32 firmware for a voice chatbot with MCP device and cloud tool control33.1k starsMIT83 out of 100
#5buzzOffline desktop app for transcribing and translating audio with Whisper22.6k stars+735 (+3.4%) in 30 daysMIT83 out of 100