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.36

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.36
File Size Uploaded
crispasr-0.8.36.tar.gz 55.1 kB Details

Built distributions (wheels)

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

Total release size: 138.3 MB

Release files / crispasr-0.8.36.tar.gz

Download URL crispasr-0.8.36.tar.gz
Size 55.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5b49b87a0e4675e87ca9a6f791c4b4b2bdf6614af161fc8eb4990b5cf82d4332
BLAKE2b-256 checksum
How to use checksums
9fb775a9667eb913ab49dd8d389ec91fb3f407a482e90c4cf8e25b2a95ff7b78
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.36-py3-none-win_amd64.whl

Download URL crispasr-0.8.36-py3-none-win_amd64.whl
Size 13.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
fb2d2232559c0a7c7ff41e62f0861468f953f6ea8a1addf6ba2a18831e0bd77c
BLAKE2b-256 checksum
How to use checksums
3f49b34c8db1680d8fc29d528473792561e32cddb466346d91f5dee2dac3330c
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.36-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.36-py3-none-manylinux_2_28_x86_64.whl
Size 50.5 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
9962bc5bc5d084497e45c3df3acf6108c531fc24f170d5e09150425616cc24f2
BLAKE2b-256 checksum
How to use checksums
ca892f2317eaf63c8cfa2488029da4fcbb93e9eb89e4c47993d05a943471ebc9
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.36-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.36-py3-none-manylinux_2_28_aarch64.whl
Size 43.2 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
154108955f6dcbe68f6aaa3e3a78616652c6cdd3c59af205b5bbd2a8b508b386
BLAKE2b-256 checksum
How to use checksums
9256a5cc40be1a2b4e34c8a42c7ed29ef2c372c191458cf2efde3df71f9c3240
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.36-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.36-py3-none-macosx_11_0_arm64.whl
Size 30.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e84c15711966d67a1cad1575cf1a680e11433065d8e7d42b97d8a2bcc83c2792
BLAKE2b-256 checksum
How to use checksums
46d1bdc91c930f5856ee2f6a838f253198521a9afe8f93cb5bbf842fca37ce27
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

This release

0.8.36 This release

5 release files

0.8.35

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