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

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.41
File Size Uploaded
crispasr-0.8.41.tar.gz 56.3 kB Details

Built distributions (wheels)

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

Total release size: 143.6 MB

Release files / crispasr-0.8.41.tar.gz

Download URL crispasr-0.8.41.tar.gz
Size 56.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b8d8957bb1a48b9f698fc8ac27561b3ce9eed8a6bd0464f72985d3b0950d3f6c
BLAKE2b-256 checksum
How to use checksums
d60d0b9503394653d1eaac3d30717e5f3cd419fcaa7acc114320ba3c4ec19ab8
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.41-py3-none-win_amd64.whl

Download URL crispasr-0.8.41-py3-none-win_amd64.whl
Size 14.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
fbccd2a28daca479c526a8a494a5bece0944f76dc5dd0214ad95306e551062a5
BLAKE2b-256 checksum
How to use checksums
0e8c3fc02d7f7b18e63cb21b39fb02f3e63d108441cfae8d49c87587c7a178c3
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.41-py3-none-manylinux_2_28_x86_64.whl

Download URL crispasr-0.8.41-py3-none-manylinux_2_28_x86_64.whl
Size 52.3 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c917c9231c0b60131556fd649590d5011ce8a584024a73e803a8785db6658c96
BLAKE2b-256 checksum
How to use checksums
0253001afe3d3e70dd3f717d81ab84a148e512afa376b3f3ba8200391540ff35
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.41-py3-none-manylinux_2_28_aarch64.whl

Download URL crispasr-0.8.41-py3-none-manylinux_2_28_aarch64.whl
Size 44.8 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
0d95bbff4123deb2b2d10134d60ec0558952e0e67024b3bb0a0bbefa1e5b3c1e
BLAKE2b-256 checksum
How to use checksums
a1a42d83d2035b073a2af425c34a03858537d9bbf9922ed4dcc7bb6e6f8bb141
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.41-py3-none-macosx_11_0_arm64.whl

Download URL crispasr-0.8.41-py3-none-macosx_11_0_arm64.whl
Size 32.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6468bd94f0e58d0590fb6986409a53d24821bcb27d0c98791b6b4b9c22d2155d
BLAKE2b-256 checksum
How to use checksums
5df7691ed06bee1af31ea552bcad8dcb5997729d192e76877381b0650c30f72f
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.41 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