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, VibeVoice-ASR, and Index-Echo.

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_f32, sample_rate=16000):
    print(seg.text)

Mono array inputs at other sample rates are converted to 16 kHz with a band-limited Kaiser polyphase filter. Older libraries use the matching NumPy fallback, without a SciPy dependency. Strided arrays are made contiguous before native inference. See audio resampling for limits and regression checks.

Index-Echo uses the same Session API. Open the tower GGUF with its matching decoder beside it, then call s.set_target_language("en") (also ja or es). Each segment contains transcript\ntranslation and generated subtitle times. Place Silero v6.2 beside the pair for the released full-file window recipe.

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

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.43
File Size Uploaded
crispasr-0.8.43.tar.gz 58.4 kB Details

Built distributions (wheels)

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

Total release size: 147.6 MB

Release files / crispasr-0.8.43.tar.gz

Download URL crispasr-0.8.43.tar.gz
Size 58.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c292f6f618dab96938a21ca3e067820e493cef2d6ec8b5e5bed51bc92d67bc2c
BLAKE2b-256 checksum
How to use checksums
108978fc242c4e8086cfd8192c410bf2986c0846dc2faa6a34ac426373044c70
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.43-py3-none-win_amd64.whl

Download URL crispasr-0.8.43-py3-none-win_amd64.whl
Size 14.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
546184aa746ec9f46ca568ae98ec5e436edb518a9bb56b445d9cfdbec431db7f
BLAKE2b-256 checksum
How to use checksums
5c062ed13aeedd45410c0d1ec1fd4e16aa645b4d197ff20243dd0cc893fcb6e5
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.43-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.43-py3-none-manylinux_2_28_x86_64.whl
Size 53.1 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c4e3784d5cd26ded14d68dc530a290b897faf1e27ea3fed97d7672402c2e68fb
BLAKE2b-256 checksum
How to use checksums
b88cd6421ea9ae3728bd24d7fe1854cc91b7a9bbc1525178938bbfafb17f5565
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.43-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.43-py3-none-manylinux_2_28_aarch64.whl
Size 45.4 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
cbecb1d27315ef326650a7fb80ef5db87d12aba7084a74bf6cde1c2503763a9c
BLAKE2b-256 checksum
How to use checksums
46d61a64b6bd3ef5281d84a08821c243ce5b197a19ef2a52180cf33b582856a7
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.43-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.43-py3-none-macosx_11_0_arm64.whl
Size 34.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e2fda57d537ca731df354da5fa21a3478993426d6613fc46980d0e0251c513d9
BLAKE2b-256 checksum
How to use checksums
bc3c8db72e5df71ba1f1ca3e25688da8ce855f300df28c4bea6eece263f82b68
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

This release

0.8.43 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