ChatterboxSynth
Cleanroom Python synthesis frontend for the revision-pinned Chatterbox Nano v2 and Turbo ONNX bundles. OnnxVoice owns catalog access, installation, ONNX sessions, and the four-graph runtime; ChatterboxSynth owns tokenizer policy, reference audio, prepared voices, synthesis results, WAV output, and CLI.
Install
pip install "chatterboxsynth[cpu]"
ChatterboxSynth 0.1.x requires a Chatterbox-capable OnnxVoice 0.2.x release.
Install chatterboxsynth[cpu] for the default ONNX Runtime CPU provider or
chatterboxsynth[gpu] for CUDA.
Quick start
from chatterboxsynth import ChatterboxRuntime, GenerationConfig
with ChatterboxRuntime.from_pretrained("nano", quality="cpu", provider="cpu") as runtime:
voice = runtime.prepare_voice("reference.wav")
result = runtime.synthesize(
"Hello from Chatterbox Nano.",
voice=voice,
config=GenerationConfig(max_new_tokens=1024, repetition_penalty=1.2),
)
result.save_wav("hello.wav")
Turbo supports [chuckle], [laugh], and other model-native tags:
with ChatterboxRuntime.from_pretrained("turbo", quality="fp32") as runtime:
voice = runtime.prepare_voice("reference.wav")
runtime.synthesize("Hello [chuckle] from Turbo.", voice=voice).save_wav("turbo.wav")
Use ChatterboxRuntime.load("/path/to/onnxvoice/install") for an already-installed OnnxVoice bundle. This local path reads the install manifest and verifies artifact sizes and SHA-256 values; it does not query a catalog or access the network.
CLI
chatterboxsynth models
chatterboxsynth download nano --quality cpu
chatterboxsynth synth --model nano --quality cpu --voice reference.wav --text "Hello" --output hello.wav
chatterboxsynth synth --model turbo --quality fp32 --voice reference.wav --text "Hello [chuckle]" --output turbo.wav
Common options include --provider cpu|cuda|auto, --offline, --cache-dir, --max-new-tokens, and --repetition-penalty. All catalog, cache, and model-install behavior is delegated to OnnxVoice.
Audio and request policy
prepare_voice() accepts an audio filename, AudioPrompt(samples, sample_rate), or a compatible PreparedVoice. Stereo audio is deterministically averaged to mono, validated as finite and within [-1, 1], and resampled to 24 kHz with soxr HQ. Prepared voice states cannot be reused across incompatible model/profile/source revisions.
Synthesis is deterministic greedy decoding. Empty text is rejected. The MVP does not split long text, stitch chunks, use random sampling, apply PerTh, or persist voice states. SynthesisResult validates non-empty finite mono float32 output at the bundle's 24 kHz rate; PCM16 WAV conversion clips only at the save boundary.
Cleanroom and development
See docs/cleanroom.md and docs/architecture.md. Runtime dependencies exclude Chatterbox Python packages, Torch, Torchaudio, and Transformers. Tokenizers are loaded from the installed bundle, never package-global data.
pip install -e ".[cpu,dev]"
pytest
ruff check chatterboxsynth tests examples
mypy
python -m build
examples/first_wav.py --voice reference.wav uses a user-provided short WAV. No voice recording or model weights are included. setuptools_scm resolves package versions from Git metadata; a raw source ZIP without .git may report the documented fallback 0.0.0. Build publishable wheels and sdists from tagged Git checkouts.
Metadata
Release files for chatterboxsynth 0.1.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 | |
|---|---|---|---|---|
| chatterboxsynth-0.1.0.tar.gz | 39.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chatterboxsynth-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.9 kB
Release files / chatterboxsynth-0.1.0.tar.gz
| Download URL | chatterboxsynth-0.1.0.tar.gz |
|---|---|
| Size | 39.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8166f1fb85c9cfdd0a1307a817cd9b2ea5737dc65d62507af792039668316eb3
|
|
BLAKE2b-256 checksum How to use checksums |
9776f57c19286d0543b505b54e6f9f57a75cdbab2d8527060ed8957e0133f0d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / chatterboxsynth-0.1.0-py3-none-any.whl
| Download URL | chatterboxsynth-0.1.0-py3-none-any.whl |
|---|---|
| Size | 22.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
288f5c275e66c8c927719ad6371d48bcc33a79d42495f1820d6873ec9b79fb21
|
|
BLAKE2b-256 checksum How to use checksums |
b1c20c8ad4b17bc057093c13639749856e55ec16f81157d3d9d93b2c2e40e791
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for chatterboxsynth 0.1.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.