Skip to main content

videopython-chatterbox

Chatterbox TTS by Resemble AI, republished with corrected dependency metadata.

Version 0.1.7.post2 also fixes short-text alignment: repetition detection now checks that earlier text tokens exist before reducing their attention scores. Inputs with five or fewer text tokens retain long-tail and token-repetition EOS checks without raising an empty-reduction error. The distribution-name lookup and corrected dependency metadata remain the other changes from upstream 0.1.7.

pip install videopython-chatterbox

The import name is unchanged, so this is a drop-in replacement:

from chatterbox.mtl_tts import ChatterboxMultilingualTTS

Conflict warning: this package and chatterbox-tts both install a top-level chatterbox package. Install one or the other, never both.

Why this fork exists

Upstream chatterbox-tts 0.1.7 pins diffusers==0.29.0, torch==2.6.0, torchaudio==2.6.0, transformers==5.2.0 and safetensors==0.5.3. Those == pins make it unsatisfiable alongside any modern ML stack — for example pyannote-audio>=4.0 requires torch>=2.8.0, so the two cannot coexist:

$ pip install chatterbox-tts diffusers>=0.35.0
  × No solution found: chatterbox-tts==0.1.7 depends on diffusers==0.29.0

The pins are not load-bearing. Chatterbox touches diffusers in exactly one place — its vendored Matcha-TTS decoder — importing 9 symbols (GEGLU, GELU, AdaLayerNorm, AdaLayerNormZero, ApproximateGELU, Attention, LoRACompatibleLinear, maybe_allow_in_graph, get_activation). All of them still exist and behave identically in diffusers 0.39.

Verification

Real synthesis and voice cloning were run on torch 2.13.0 / diffusers 0.39.0 / transformers 5.14.1 / numpy 2.4.6, then repeated under upstream's pinned transformers==5.2.0, with fixed seeds:

seed samples identical max abs diff
1234 91200 yes 0.0
1235 86400 yes 0.0
1236 144000 yes 0.0

Output is bit-identical. Generations were also transcribed with Whisper to confirm the audio matches the requested text, rather than merely being non-silent.

Metadata changes

dependency upstream 0.1.7 here why
numpy <2.0.0 (py<3.13) >=1.24.0 verified on 2.4.6
librosa ==0.11.0 >=0.11.0 0.11.0 is still latest
torch ==2.6.0 >=2.6.0 verified on 2.13.0
torchaudio ==2.6.0 >=2.6.0 follows torch
transformers ==5.2.0 >=5.2.0 verified bit-identical on 5.14.1
diffusers ==0.29.0 >=0.29.0,<1.0 verified on 0.39.0; see cap below
conformer ==0.3.2 >=0.3.2 0.3.2 is still latest
safetensors ==0.5.3 >=0.5.3 verified on 0.8.0
pykakasi ==2.3.0 >=2.3.0 2.3.0 is still latest
gradio ==6.8.0 removed not imported anywhere in the package
setuptools undeclared <81 see below

Two of these are deliberate constraints rather than relaxations:

diffusers<1.0 — LoRACompatibleLinear is deprecated with removal scheduled for diffusers 1.0.0. It is the one symbol that will genuinely break, so the cap is real.

setuptools<81 — resemble-perth declares no dependencies at all and imports pkg_resources, which setuptools removed in 82+. Its __init__.py swallows the resulting ImportError and sets PerthImplicitWatermarker = None, so chatterbox fails later at model load with a confusing TypeError: 'NoneType' object is not callable. Upstream is affected by this too; it is simply undeclared there.

Relationship to upstream

Changes are limited to packaging compatibility and the documented short-text alignment crash fix. If upstream incorporates these fixes and relaxes its pins, prefer chatterbox-tts.

To rebase onto a new upstream release: replace src/chatterbox/ wholesale, re-apply the distribution-name lookup in chatterbox/__init__.py, and check whether the short-text alignment fix is already present before carrying it forward. Run python -m pytest tests/test_short_alignment.py, verify the remaining source against the new sdist, bump version to <upstream>.postN, and re-check the dependency table above.

For 0.1.7.post2, all seven direct PyTorch tests pass (text widths 1–6 and 20). GPU synthesis of “za”, “Ja” and a full Polish sentence also succeeded without videopython's alignment monkeypatch. These checks cover the short-input crash; they do not establish general speech quality or performance.

License

MIT, Copyright (c) 2025 Resemble AI — preserved verbatim in LICENSE. See NOTICE for the fork's provenance statement. Model weights are not redistributed; they are fetched at runtime from the Hugging Face Hub.

Release files for videopython-chatterbox 0.1.7.post2

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

Source distribution (sdist)

Source distribution for videopython-chatterbox 0.1.7.post2
File Size Uploaded
videopython_chatterbox-0.1.7.post2.tar.gz 75.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for videopython-chatterbox 0.1.7.post2
File Interpreter ABI Platform
videopython_chatterbox-0.1.7.post2-py3-none-any.whl Python 3 none any Details

Total release size: 183.0 kB

Release files / videopython_chatterbox-0.1.7.post2.tar.gz

Download URL videopython_chatterbox-0.1.7.post2.tar.gz
Size 75.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4d2a5221cbe407ffbe0b369c57b340fd6bc1958092d923b4756cdfc50835a56b
BLAKE2b-256 checksum
How to use checksums
6498cfc94fb87ef600e06c31ba9865b1cd56692bf39e0fa65cc85f3ca8e5680b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / videopython_chatterbox-0.1.7.post2-py3-none-any.whl

Download URL videopython_chatterbox-0.1.7.post2-py3-none-any.whl
Size 107.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df9d37fcd637b67ac67670ef23c976b180b6de7bc158017a136130aa95a11db8
BLAKE2b-256 checksum
How to use checksums
4837ad055353e911a502a3251bdbc31452fcc537fcab91bd9c621ace7dadaba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.7.post2 This release

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