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

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

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.42
File Size Uploaded
crispasr-0.8.42.tar.gz 56.9 kB Details

Built distributions (wheels)

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

Total release size: 147.5 MB

Release files / crispasr-0.8.42.tar.gz

Download URL crispasr-0.8.42.tar.gz
Size 56.9 kB
Tags Source
SHA-256 checksum
How to use checksums
044361ef23152e8e6ce5ede3ac90011f8549a35056d38b2bcca82f44942b3506
BLAKE2b-256 checksum
How to use checksums
1df5ed01e43bb6a988cd902884406ca8d6e972e229f46020c26d34653cbd07b8
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.42-py3-none-win_amd64.whl

Download URL crispasr-0.8.42-py3-none-win_amd64.whl
Size 14.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
9667b5ed2fb11615beab2bc7173019540f5bf06061a87d4e21c23550dbc6b0a1
BLAKE2b-256 checksum
How to use checksums
e71c8c3afeb4e1e5726057f293ad590f4f5647d261ee170ed9750b8923212880
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.42-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.42-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
ee5ab38c589a6971c8e8e26b4d020930552e214854ebd0e09f76e9a3b71bcdd2
BLAKE2b-256 checksum
How to use checksums
ea7fa439d911ec7bae29d3d44ff2c83bac3c82640aaff2e8f2960857e546a941
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.42-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.42-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
ea63463471431bcf865a6f21a541ac86d8ba84637ac728896323ff51762efe9a
BLAKE2b-256 checksum
How to use checksums
b0a45390956d7a5c5e6c3285200e0b7fba592f7ac19b34a645b753f3e7094341
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.42-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.42-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
903251677b8b4cff7010158b0dbeea3b4c15b880c3336328df096c3246617b6c
BLAKE2b-256 checksum
How to use checksums
e57d00f5045d4fcf93e772d824bc173853bc3ead35f347f51e700879d7d6077c
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.42 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