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.

Metadata

Release files for crispasr 0.8.39

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.39
File Size Uploaded
crispasr-0.8.39.tar.gz 55.8 kB Details

Built distributions (wheels)

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

Total release size: 143.0 MB

Release files / crispasr-0.8.39.tar.gz

Download URL crispasr-0.8.39.tar.gz
Size 55.8 kB
Tags Source
SHA-256 checksum
How to use checksums
20ff9f2621aee009bbcbff74ede1f44807218eb2f60e263c983c4b16eeedc10e
BLAKE2b-256 checksum
How to use checksums
6b895cacbcfbd451730d690330ee5a5d67f6b38b6c95cca296a0372d388a04ce
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.39-py3-none-win_amd64.whl

Download URL crispasr-0.8.39-py3-none-win_amd64.whl
Size 14.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
7385e4cc80fc7f11854c087e8f6c6d6de0f6d251dd7a36dacc9e4de3705a3d73
BLAKE2b-256 checksum
How to use checksums
8d4278c1f7329f50f8c8dae14ddc8a3c863915e5b2165339141bdb40d7e12ed8
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.39-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.39-py3-none-manylinux_2_28_x86_64.whl
Size 52.2 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
4b7bc14928155999d6c97abcb710054b3c5de21595e9d9f01f41dee7d56e9c71
BLAKE2b-256 checksum
How to use checksums
4ed7d4205bd3d1878ebe73ce00feb55d386b694cd201c5c6cf58bbf7a1d2837d
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.39-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.39-py3-none-manylinux_2_28_aarch64.whl
Size 44.6 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
ba9c049a116d47c5fe289146587f59b99c29fef6674bc73a606ecf7ae1d2a180
BLAKE2b-256 checksum
How to use checksums
b4e7c73835eba3bdbd1251e2e2daf1bbac9996cd1c9f50644c914af8a7518844
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.39-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.39-py3-none-macosx_11_0_arm64.whl
Size 32.0 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
217eda2899bf833d398f2074e1cfadf99542dd4b98504b20d05b2c8320a3582e
BLAKE2b-256 checksum
How to use checksums
a53ee21ae58f5bef1f7ec2999d72abbc11543f7e54ba81a452ddc796b8cb00c2
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.43

5 release files

This release

0.8.39 This release

5 release files

0.8.38

5 release files

0.8.37

5 release files

0.8.36

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