Fast RTC Whisper CPP package
Project description
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_0base.en,base.en-q5_1,base.en-q8_0small.en,small.en-q5_1,small.en-q8_0medium.en,medium.en-q5_0,medium.en-q8_0
-
Multilingual models:
tiny,tiny-q5_1,tiny-q8_0base,base-q5_1,base-q8_0small,small-q5_1,small-q8_0medium,medium-q5_0,medium-q8_0large-v1large-v2,large-v2-q5_0,large-v2-q8_0large-v3,large-v3-q5_0large-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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastrtc_whisper_cpp-0.1.1.tar.gz.
File metadata
- Download URL: fastrtc_whisper_cpp-0.1.1.tar.gz
- Upload date:
- Size: 830.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.27
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
308a721f45825a8cdc3460c01e0389b6ca9959c9611c97c92b76219dea129756
|
|
| MD5 |
3b6a4200e69c2a2e26d48cb024b20978
|
|
| BLAKE2b-256 |
d6023d9a67caec990b033ad9230a1ddddfddcaa6a03169c1a357a78d3c2c2987
|
File details
Details for the file fastrtc_whisper_cpp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: fastrtc_whisper_cpp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 773.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.27
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24350634caa188bd0895a3a4bafb03ecf6f49df9803ef247f7b1cca3cc8b98cb
|
|
| MD5 |
ce64dc68ee1c0fa6d85ccbfb42fde313
|
|
| BLAKE2b-256 |
4fc51b6b4075933d0c757af32647cd3a3b0d1833a53ba0ee5578e2059e694b6d
|