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

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

Built distributions (wheels)

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

Total release size: 136.2 MB

Release files / crispasr-0.8.34.tar.gz

Download URL crispasr-0.8.34.tar.gz
Size 55.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b7dbe40620995789713c698213175bd945943499db4cad02230ad421c53f0c14
BLAKE2b-256 checksum
How to use checksums
f0043d52d29454965b99a7e002518a3c106ee9e829cc79cd8e0b18b45243e8bc
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.34-py3-none-win_amd64.whl

Download URL crispasr-0.8.34-py3-none-win_amd64.whl
Size 13.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
51eae5f5ae9a1c908e733dc530649704425355b455c89051d224fe116930379f
BLAKE2b-256 checksum
How to use checksums
47c95a1593b79c15f949c945b78cec01a1d8f36d3b4766b83cb41021eae30b91
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.34-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.34-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
25de363214ea4b3a8613f2f7193c80951158390ff6e576abf8d7a48cad53701f
BLAKE2b-256 checksum
How to use checksums
c4c84e9a42a33de4046941e88240889a05245590ae44f86d912320fcfa3bec11
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.34-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.34-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
3c30d545dae68bee36b256e2425dab2f80e89888377e7c040c825288eb26e0d4
BLAKE2b-256 checksum
How to use checksums
3ff9ddd3b16e497720e6a4ba19dd9c965ec17221a6511b492a47a5d2b9ef8596
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.34-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.34-py3-none-macosx_11_0_arm64.whl
Size 30.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
73461e510904419165fe7eba4c59dec1677e5e5d4ce9ebb3e2e48a56e7d18d69
BLAKE2b-256 checksum
How to use checksums
c86ce8e756f0a7bb4092d744b5be51bf9448c487e6134c163f5e5a2fdcad16c2
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

0.8.35

5 release files

This release

0.8.34 This release

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