whisper-cpp-python
whisper-cpp-python is a Python module inspired by llama-cpp-python that provides a Python interface to the whisper.cpp model. This module automatically parses the C++ header file of the project during building time, generating the corresponding Python bindings.
Installation
To install the module, you can use pip:
pip install whisper-cpp-python
Usage
To use the module, you need to create an instance of the Whisper class, passing the path to the model file as a parameter. Then, you can call the transcribe or translate method to transcribe or translate a given audio file.
High-level API
The high-level API provides a simple managed interface through the Wisper class.
Below is a short example demonstrating how to use the high-level API to transcribe an mp3:
>>> from whisper_cpp_python import Whisper
>>> whisper = Whisper(model_path="./models/ggml-tiny.bin")
>>> output = whisper.transcribe(open('samples/jfk.mp3'))
>>> print(output)
{'text': 'And so my fellow Americans ask not what your country can do for you, ask what you can do for your country.'}
>>> output = whisper.transcribe(open('samples/jfk.mp3'), response_format='verbose_json')
>>> print(output)
{
'task': 'transcribe',
'language': 'en',
'duration': 11.0,
'text': 'And so, my fellow Americans ask not what your country can do for you, ask what you can do for your country.',
'segments': [{
'id': 0,
'seek': 0.0,
'start': 0.0,
'end': 10.98,
'text': ' And so, my fellow Americans ask not what your country can do for you, ask what you can do for your country.',
'tokens': [50364,
400,
370,
11,
452,
7177,
6280,
1029,
406,
437,
428,
1941,
393,
360,
337,
291,
11,
1029,
437,
291,
393,
360,
337,
428,
1941,
13,
50913],
'temperature': 0.800000011920929,
'avg_logprob': -0.3063158459133572,
'compression_ratio': 2.4000000953674316,
'no_speech_prob': 0.0,
'transient': False
}]
}
Low-level API
All interfaces provided by whisper.h are available in python. The following example
show how to pass a custom progress_callback function to the model.
from whisper_cpp_python import Whisper
from whisper_cpp_python.whisper_cpp import whisper_progress_callback
def callback(ctx, state, i, p):
print(i)
model = Whisper('../quantized_models/whisper/models/ggml-tiny.bin')
model.params.progress_callback = whisper_progress_callback(callback)
print(model.transcribe('vendor/whisper.cpp/samples/jfk.wav'))
Web Server
whisper-cpp-python offers a web server which aims to act as a drop-in replacement for the OpenAI API.
This allows you to use whisper.cpp compatible models with any OpenAI compatible client (language libraries, services, etc).
To install the server package and get started:
pip install whisper-cpp-python[server]
python3 -m whisper_cpp_python.server --model models/ggml-tiny.bin
Navigate to http://localhost:8001/docs to see the OpenAPI documentation.
License
whisper-cpp-python is released under the MIT License. See LICENSE for details.
Metadata
Release files for whisper-cpp-python 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| whisper_cpp_python-0.2.0.tar.gz | 3.8 MB | Without provenance | Details |
Release files / whisper_cpp_python-0.2.0.tar.gz
| Download URL | whisper_cpp_python-0.2.0.tar.gz |
|---|---|
| Size | 3.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e727040711d9f8adc3767f786525ba1543b5dd34e3a851880a953933b402f55
|
|
BLAKE2b-256 checksum How to use checksums |
1ae44136636cbecd6eb578ede3fa74f4169356a6183092b808414c7987b424ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/4.0.1 CPython/3.11.3
|
Security for whisper-cpp-python 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.