Skip to main content

Modern speech recognition with word-level timestamps and speaker diarization. Fork of WhisperX with torch 2.6+, pyannote 4.x compatibility.

Project description

MurmurAI

MurmurAI Logo

Modern speech recognition with word-level timestamps and speaker diarization

PyPI CI Python License


MurmurAI is a fork of WhisperX with modern dependency support:

  • PyTorch 2.6+ compatibility (weights_only patches)
  • Pyannote 4.x support (token parameter migration)
  • Torchaudio 2.9+ compatibility (audio backend fixes)
  • Python 3.10-3.13 tested

Features

  • Word-level timestamps via phoneme alignment
  • Speaker diarization with pyannote.audio
  • Batch inference for 70x realtime transcription
  • VAD preprocessing (pyannote or silero)
  • Multiple output formats: SRT, VTT, TXT, TSV, JSON

Installation

pip install murmurai-core

Or with uv:

uv add murmurai-core

Quick Start

Python API

import murmurai

# Load model
model = murmurai.load_model("large-v3-turbo", device="cuda", compute_type="float16")

# Transcribe
audio = murmurai.load_audio("audio.mp3")
result = model.transcribe(audio, batch_size=16)

# Align (word-level timestamps)
model_a, metadata = murmurai.load_align_model(language_code=result["language"], device="cuda")
result = murmurai.align(result["segments"], model_a, metadata, audio, device="cuda")

# Diarization (speaker labels)
from pyannote.audio import Pipeline
diarize_model = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1", use_auth_token="YOUR_HF_TOKEN")
diarize_segments = diarize_model(audio)
result = murmurai.assign_word_speakers(diarize_segments, result)

CLI

Basic transcription:

murmurai-core audio.mp3

With specific model and language:

murmurai-core audio.mp3 --model large-v3-turbo --language en

With speaker diarization:

murmurai-core audio.mp3 --model large-v3-turbo --diarize --hf_token YOUR_HF_TOKEN

Output to specific format and directory:

murmurai-core audio.mp3 --output_format srt --output_dir ./transcripts

Run without installing (via uvx):

uvx murmurai-core audio.mp3 --model large-v3-turbo

Common options:

Option Description Default
--model Whisper model (tiny, base, small, medium, large-v3, large-v3-turbo) small
--language Audio language (e.g., en, pt, es, fr) auto-detect
--device cuda or cpu cuda
--output_format srt, vtt, txt, tsv, json, all all
--output_dir Output directory .
--diarize Enable speaker diarization off
--hf_token HuggingFace token (required for diarization) -
--batch_size Batch size for inference 8
--compute_type float16, float32, int8 float16

Requirements

  • NVIDIA GPU with CUDA support (or CPU mode)
  • HuggingFace token for diarization models

Accept the license at pyannote/speaker-diarization-3.1 before using diarization.

Migration from WhisperX

# Before
import whisperx

# After
import murmurai  # drop-in replacement

All APIs are identical. Just change the import.

Credits

MurmurAI builds on the excellent work of:


Made with ❤️ by Namastex Labs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

murmurai_core-1.0.2.tar.gz (16.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

murmurai_core-1.0.2-py3-none-any.whl (16.5 MB view details)

Uploaded Python 3

File details

Details for the file murmurai_core-1.0.2.tar.gz.

File metadata

  • Download URL: murmurai_core-1.0.2.tar.gz
  • Upload date:
  • Size: 16.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for murmurai_core-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8f8e9714ed3fc07512d9b5ddbca78cdbebff4dea1f4c8d5173de92bbd1622b82
MD5 084852049e07f7b371f9a651b9e6eb34
BLAKE2b-256 d30fc7b7658b972ab822832c5e294916a89a7eb914c6e1d3cc4817cc26f42062

See more details on using hashes here.

File details

Details for the file murmurai_core-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: murmurai_core-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for murmurai_core-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f744d23f593bae7ef26402bdbf2d9783f24d19afc60bea7855c45183cc0d4695
MD5 18da635d8afb96dc304c65aa29d8fe9a
BLAKE2b-256 f13fa14e72d9801676c30c20883462d12ce72ec7835ed1ca3e7f8e14df67b088

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page