Skip to main content

Whisper CPP for FastRTC

A PyPI package that wraps Whisper.cpp for speech-to-text (STT) transcription, compatible with the FastRTC STTModel protocol. This package provides efficient, CPU-based speech recognition using the optimized Whisper.cpp implementation.

Installation

pip install fastrtc-whisper-cpp

For audio file loading capabilities, install with the audio extras:

pip install "fastrtc-whisper-cpp[audio]"

For development:

pip install "fastrtc-whisper-cpp[dev]"

Usage

Basic Usage

from fastrtc_whisper_cpp import get_stt_model
import numpy as np

# Create the model (downloads from HF if not cached)
model = get_stt_model()

# Example: Create a sample audio array (actual audio would come from a file or mic)
sample_rate = 16000
audio_data = np.zeros(16000, dtype=np.float32)  # 1 second of silence

# Transcribe
text = model.stt((sample_rate, audio_data))
print(f"Transcription: {text}")

Loading Audio Files

If you've installed with the audio extras:

from fastrtc_whisper_cpp import get_stt_model, load_audio

# Load model
model = get_stt_model()

# Load audio file (automatically resamples to 16kHz)
audio = load_audio("path/to/audio.wav")

# Transcribe
text = model.stt(audio)
print(f"Transcription: {text}")

Using with FastRTC

from fastrtc_whisper_cpp import get_stt_model

# Create the model
whisper_model = get_stt_model()

# Use within FastRTC applications
# (Follow FastRTC documentation for integration details)

Available Models

The package supports various Whisper.cpp models with different sizes and quantization levels:

  • English-only models (faster, smaller):

    • tiny.en, tiny.en-q5_1, tiny.en-q8_0
    • base.en, base.en-q5_1, base.en-q8_0
    • small.en, small.en-q5_1, small.en-q8_0
    • medium.en, medium.en-q5_0, medium.en-q8_0
  • Multilingual models:

    • tiny, tiny-q5_1, tiny-q8_0
    • base, base-q5_1, base-q8_0
    • small, small-q5_1, small-q8_0
    • medium, medium-q5_0, medium-q8_0
    • large-v1
    • large-v2, large-v2-q5_0, large-v2-q8_0
    • large-v3, large-v3-q5_0
    • large-v3-turbo, large-v3-turbo-q5_0, large-v3-turbo-q8_0

Example:

from fastrtc_whisper_cpp import get_stt_model

# Choose a specific model
model = get_stt_model("medium.en-q8_0")

Advanced Configuration

You can configure the model with specific parameters:

from fastrtc_whisper_cpp import WhisperCppSTT

# Configure with specific model and models directory
model = WhisperCppSTT(
    model="medium.en",
    models_dir="/path/to/models"  # Optional custom models directory
)

Requirements

  • Python 3.10+
  • numpy
  • pywhispercpp
  • librosa (optional, for audio file loading)
  • click (for CLI features)

Development

Clone the repository and install in development mode:

git clone https://github.com/mahimairaja/fastrtc-whisper-cpp.git
cd fastrtc-whisper-cpp
pip install -e ".[dev,audio]"

License

MIT

Metadata

Release files for fastrtc-whisper-cpp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastrtc-whisper-cpp 0.1.2
File Size Uploaded
fastrtc_whisper_cpp-0.1.2.tar.gz 830.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastrtc-whisper-cpp 0.1.2
File Interpreter ABI Platform
fastrtc_whisper_cpp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / fastrtc_whisper_cpp-0.1.2.tar.gz

Download URL fastrtc_whisper_cpp-0.1.2.tar.gz
Size 830.1 kB
Tags Source
SHA-256 checksum
How to use checksums
fcab785c86de51ad8862615f1931c18262a05f86f6215f6eaedfde6a9245e4b8
BLAKE2b-256 checksum
How to use checksums
1ac3bd634b31112ce501229055e99e945ac421a0b461b0a6bec4437fa08c03c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.27

Release files / fastrtc_whisper_cpp-0.1.2-py3-none-any.whl

Download URL fastrtc_whisper_cpp-0.1.2-py3-none-any.whl
Size 773.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ebc4856dacde9cfa3ad2c66348b960236854ac9af2b62e847c13557df65b143c
BLAKE2b-256 checksum
How to use checksums
ba6f5d6d36730838b2458b2f4660c23aba08cdbb05cfd4cc5b74fcebc92d835a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.27

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

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