Skip to main content

crispasr

Python bindings for CrispASR — lightweight on-device speech recognition via ggml.

Supports the ASR backends compiled into the linked CrispASR library, including Whisper, Qwen3-ASR, FastConformer, Canary, Parakeet, Cohere, Granite-Speech, Voxtral, wav2vec2, GLM-ASR, Kyutai-STT, Moonshine, FireRed, OmniASR, and VibeVoice-ASR.

Install

pip install crispasr

Platform wheels bundle the native libcrispasr — nothing else to install — for Linux (x86_64, arm64), macOS (Apple Silicon, Metal-accelerated), and Windows (x86_64).

GPU wheels

CUDA and Vulkan builds are published to a separate index (llama-cpp-python style — pass --extra-index-url):

# NVIDIA CUDA (Linux + Windows)
pip install crispasr --extra-index-url https://crispstrobe.github.io/CrispASR/whl/cuda/
# Vulkan (Windows)
pip install crispasr --extra-index-url https://crispstrobe.github.io/CrispASR/whl/vulkan/

Other platforms / bring-your-own library

Where no prebuilt wheel matches, pip installs the pure-Python sdist, which loads a libcrispasr you supply. Build/install it from source and, if it lands in a non-standard location, point CRISPASR_LIB_PATH at the file:

git clone https://github.com/CrispStrobe/CrispASR
cd CrispASR && cmake -B build && cmake --build build -j && sudo cmake --install build
export CRISPASR_LIB_PATH=/usr/local/lib/libcrispasr.so   # only if non-standard

Quick start

from crispasr import CrispASR

model = CrispASR("ggml-base.en.bin")
for seg in model.transcribe("audio.wav"):
    print(f"[{seg.start:.1f}s - {seg.end:.1f}s] {seg.text}")
model.close()

Or use the unified Session API for non-Whisper backends (Qwen3-ASR, FastConformer, Parakeet, …):

from crispasr import Session

s = Session("qwen3-asr-0.6b-q4_k.gguf")
for seg in s.transcribe_pcm(pcm_f32, sample_rate=16000):
    print(seg.text)

API

  • CrispASR — Whisper-compatible high-level API
  • Session — unified API across all backends compiled into libcrispasr
  • ChatSession — text → text chat over a GGUF chat model: one-shot and streaming generation, prompt-token counting, and cancellation through an abort predicate
  • align_words(...) — word-level CTC alignment
  • diarize_segments(...) — speaker diarization (energy / xcorr / vad-turns / pyannote / FoxNose)
  • diarize_segments_with_turns(...) — label segments and return FoxNose's finer audio-derived speaker turns
  • SpeakerEmbedder(spec) — pluggable embedder ("auto"/"titanet", "indextts"/"ecapa", or a .gguf path)
  • PyannoteCache(pcm, model) — pre-computed pyannote-seg posteriors for cross-slice consistency
  • agglomerative_cluster(embeddings, ...) — single-linkage cosine clustering for globally stable speaker IDs
  • TitaNet / SpeakerDB — standalone speaker verification + closed-roster profile matching (consent-gated; requires expected_names + consent=True, see docs/diarization-speakers.md)
  • detect_language_pcm(...) — language ID
  • registry_lookup(...) — auto-download known models from the model hub
  • registry_default_bundle(...) — enumerate the exact primary, companion, and extra files used by -m auto, including licence-acceptance policy

See the main repo for full documentation, model registry, and CLI.

License

MIT — see LICENSE.

Release files for crispasr 0.8.35

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crispasr 0.8.35
File Size Uploaded
crispasr-0.8.35.tar.gz 55.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for crispasr 0.8.35
File
crispasr-0.8.35-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
crispasr-0.8.35-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
crispasr-0.8.35-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
crispasr-0.8.35-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 136.3 MB

Release files / crispasr-0.8.35.tar.gz

Download URL crispasr-0.8.35.tar.gz
Size 55.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3ccd31c6923f188bc38987d10094d8ac9fd5f4acc438114525c1b6eeb9a7be55
BLAKE2b-256 checksum
How to use checksums
2c8f6847db3479e13f96289ed7b48fd3a4669a22e9b1eb125b5964f788c548f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / crispasr-0.8.35-py3-none-win_amd64.whl

Download URL crispasr-0.8.35-py3-none-win_amd64.whl
Size 13.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3bc0365cfb90225534672a034ff0a23113a06a1b90ad411c57e3cf375e8cf658
BLAKE2b-256 checksum
How to use checksums
af37687305171577d9e56dbd126e187f3d175df1e25223b1aa5b797a5f22d26e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / crispasr-0.8.35-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.35-py3-none-manylinux_2_28_x86_64.whl
Size 49.8 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e9d91d32b03951ba7bdf121dd1996647ba9ae5253bc45c4f9f5143f865a5d680
BLAKE2b-256 checksum
How to use checksums
8e138fa32d1cb9aebcfeb995154bb4de94aed51bd75a4d8e9aecf557cabe954b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / crispasr-0.8.35-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.35-py3-none-manylinux_2_28_aarch64.whl
Size 42.6 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
9475f64dfa0e73fb26b5a271bfe6e0423df7b7fb08844d476e77a153a050c140
BLAKE2b-256 checksum
How to use checksums
7534825925452d3205243028432d2b673d6543e33d656f9d64878103bbffa379
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / crispasr-0.8.35-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.35-py3-none-macosx_11_0_arm64.whl
Size 30.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f009b19231d0107ecb9430fd04b5d4712bbe8b93eb91c742d0c9d9b06fbc6f0c
BLAKE2b-256 checksum
How to use checksums
356238fa19917928f1e494ba883f14a42506117eb0414189e428e2aeba96dc6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.8.37

5 release files

0.8.36

5 release files

This release

0.8.35 This release

5 release files

0.8.34

5 release files

0.8.33

5 release files

0.8.31

5 release files

0.8.30

5 release files

0.8.29

5 release files

0.8.28

5 release files

0.8.27

5 release files

0.8.24

5 release files

0.8.23

2 release files

0.8.22

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page