mahmoudashraf97/whisper-diarization

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 35 minutes ago
Added to GitGenius on September 12th, 2026
Created on January 25th, 2023
Open Issues & Pull Requests: 41 (+0)
GitHub issues: Enabled
Number of forks: 504
Total Stargazers: 5,645 (+0)
Total Subscribers: 51 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.5 hours
Mean response time: 15.4 days
90th percentile: 17.4 days
Tracked items: 140

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 94% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 14% of issues opened in the past year have been closed. Three people close 83% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 32
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 485 days
Stale 30+ days: 31
Stale 90+ days: 29

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Whisper Diarization is a speech recognition and speaker identification tool that combines OpenAI Whisper's transcription capabilities with speaker diarization to attribute each transcribed segment to its speaker.

The tool addresses the problem of identifying who spoke each part of a multi-speaker audio recording. It works by first extracting vocals from the audio to improve speaker identification accuracy, then generating transcription using Whisper. The timestamps from transcription are corrected and aligned using ctc-forced-aligner to minimize timing errors. The audio is processed through MarbleNet for voice activity detection and segmentation to exclude silence, then TitaNet extracts speaker embeddings to identify speakers for each segment. These embeddings are associated with the aligned timestamps to determine the speaker for each word, with final realignment using punctuation models to compensate for minor time shifts.

Adopters should note that the tool requires Python 3.10 or higher, with FFMPEG and Cython as prerequisites. Systems with at least 10GB of VRAM can use the parallel processing variant, which runs NeMo and Whisper concurrently for potentially faster results, though this mode is marked as experimental. The project is suitable for applications requiring speaker-attributed transcription of multi-speaker audio, such as meeting transcription, interview analysis, or podcast processing. The tool's approach of combining multiple specialized models for VAD, speaker embedding, and alignment differs from simpler single-model approaches that may struggle with accurate speaker attribution.

The project maintains active testing infrastructure with automated test workflows. Development appears focused on core functionality, with the README noting that command-line argument support for adjusting Whisper and NeMo parameters is planned for future addition.