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

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.40
File Size Uploaded
crispasr-0.8.40.tar.gz 55.9 kB Details

Built distributions (wheels)

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

Total release size: 143.1 MB

Release files / crispasr-0.8.40.tar.gz

Download URL crispasr-0.8.40.tar.gz
Size 55.9 kB
Tags Source
SHA-256 checksum
How to use checksums
401f294f6389705210e79fe800163be8adb62eaade52406f57307da316bcd4e5
BLAKE2b-256 checksum
How to use checksums
ed0bddbc0615cc10a6ba2d599db5d9d0c4579101fe6c0a9ad594e5447ff0fd45
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.40-py3-none-win_amd64.whl

Download URL crispasr-0.8.40-py3-none-win_amd64.whl
Size 14.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
6d9474ec5e233c0b89926383d8cc0d4dce19541a20776d684960982d27791fa4
BLAKE2b-256 checksum
How to use checksums
168fc500f111c1731c1248bd1f95cd3609d33bd74227f29de08eb0d1c010b08f
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.40-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.40-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
1c65f23bf09e1e9d74e43bb3c8cca4af4e1cc450b0e908ad7ed5a2d5bac9fefd
BLAKE2b-256 checksum
How to use checksums
b5932469fe5284a616bc17c13a3cbb9ab4e79d935c6c3f3b50eb1ff7de936931
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.40-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.40-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
40097f01718514bfbf35d56e34604787c1257200b8436a63a9fe276d2fe47e32
BLAKE2b-256 checksum
How to use checksums
b401f3d43bf815b669604bb5f8855ebf54abdeb3e142bea73a72b7f687c682b7
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.40-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.40-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
e6a6af70c4419dca1e659d6cca6bd3fe8f3ff296e32b76a0c462f98bde7f979a
BLAKE2b-256 checksum
How to use checksums
5ab12959878a2f7169fbe95895b63ea0552e968675fc4066b10793dd42765d69
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.40 This release

5 release files

0.8.39

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