Skip to main content

A toolkit for whisper.cpp with audio processing and model management

Project description

WhisperCPP Kit 🎙️

PyPI version License: MIT

🚀 A Python wrapper around whisper.cpp with model management and helper features.

✨ Features

  • 🔄 Automatic building and setup of whisper.cpp
  • 🎯 Simple, intuitive Python API
  • 🔧 Built-in model management
  • 🚦 Clear error messages and dependency checks
  • 🎵 Automatic audio format conversion
  • 🧵 Multi-threading support
  • 🐳 Docker support
  • 🎯 Support for custom and fine-tuned models
  • ⚡ Cached builds for faster subsequent inference

📋 System Requirements

Before installing whispercpp_kit, ensure you have these system-level dependencies:

Required dependencies 🛠️

  • git
  • cmake
  • ffmpeg
  • make
  • g++/gcc (C++ compiler)
  • Build essentials

Installation commands 📦

Ubuntu/Debian
sudo apt update
sudo apt install git cmake ffmpeg build-essential
MacOS
brew install git cmake ffmpeg gcc make
CentOS/RHEL
sudo yum update
sudo yum groupinstall "Development Tools"
sudo yum install git cmake ffmpeg gcc-c++ make

⚠️ Windows is currently not supported. Please use WSL (Windows Subsystem for Linux) with Ubuntu.

🚀 Quick start

Installation

pip install whispercpp_kit

Basic usage

from whispercpp_kit import WhisperCPP

# Initialize with default model
whisper = WhisperCPP(model_name="tiny.en")

# First-time setup (automatically done on first transcribe)
whisper.setup()

# Transcribe audio
text = whisper.transcribe("audio.mp3")
print(text)

Advanced configuration

# Using standard models
whisper = WhisperCPP(
    model_name="tiny.en",
    num_threads=8,        # Control threads number
    verbose=True,         # Enable verbose output
    cache_dir="./cache"   # Custom cache directory
)

# Using custom or fine-tuned models
whisper = WhisperCPP(model_path="/path/to/your/fine-tuned-model.bin")

# The library caches the built whisper.cpp source code
# This means subsequent runs will be faster as compilation is skipped

🐳 Troubleshooting

Rebuilding whisper.cpp

If you encounter issues with the whisper.cpp binary, you can force a rebuild:

import shutil
from whispercpp_kit import WhisperCPP

whisper = WhisperCPP(model_name="tiny.en")
# Force rebuild of whisper.cpp
shutil.rmtree(whisper.base_path)
whisper.setup()

Common Issues

  1. Binary Deprecation Warning: If you see a warning about the 'main' binary being deprecated, rebuild whisper.cpp using the steps above. The latest version uses 'whisper-cli' instead.

  2. Transcription Failures: Ensure you have all required dependencies installed and sufficient permissions to execute the binary.

  3. Audio Format Issues: The library automatically converts audio files using ffmpeg. Make sure ffmpeg is properly installed if you encounter audio-related errors.

🐳 Docker support

Docker Instructions
git clone https://github.com/s-emanuilov/whispercpp_kit
cd whispercpp_kit/examples/docker

# Build the image
docker build -t whispercpp_kit .

# Run with default model (base.en)
docker run -v $(pwd):/app/audio whispercpp_kit your_audio.mp3

# Using specific model
docker run -v $(pwd):/app/audio whispercpp_kit your_audio.mp3 tiny.en

See examples/docker/README.md for more details.

📝 License

MIT License - feel free to use in your projects!

🤝 Contributing

Contributions are welcome! Feel free to submit issues and pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whispercpp_kit-0.1.6.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whispercpp_kit-0.1.6-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file whispercpp_kit-0.1.6.tar.gz.

File metadata

  • Download URL: whispercpp_kit-0.1.6.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for whispercpp_kit-0.1.6.tar.gz
Algorithm Hash digest
SHA256 760e87644206d936ff53620428fb302a63e8bc304fb5bdf9fdf93bdb816969b1
MD5 8f92a100be9289c6f487f3522801057b
BLAKE2b-256 443f2e69e4738b898b201fde1fb4920280205920d2bc62f36b8bef333c37baa6

See more details on using hashes here.

File details

Details for the file whispercpp_kit-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: whispercpp_kit-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for whispercpp_kit-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7028240bfb7e0bf1118d88a9a406bfa658104fd1470865b2e2e8efdc96185388
MD5 a61a5b9b588d6b0a7a12f2887b9fdfdd
BLAKE2b-256 42d07153d5710db64dd75f091f02899f24f5f663c54b293dbdf0c4dedd047d37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page