Does Chatterbox mark its generated audio, how can I check whether a clip carries that mark, and what does the code actually do?
Chatterbox's TTS and voice-conversion classes construct Perth's implicit watermarker and apply it before returning audio (the producer reports the same in the multilingual and turbo paths), and the README provides a detection snippet. Robustness claims are the project's own. There is no consent check in the code read. If Perth's implementation fails to import, the class is None, so Chatterbox construction would fail rather than silently skip watermarking (curator code inference, not executed); since the code is MIT, modified copies can omit the call.
Chatterbox's TTS and voice-conversion classes construct Perth's implicit watermarker and apply it before returning audio (the producer reports the same in the multilingual and turbo paths), and the README provides a detection snippet. Robustness claims are the project's own. There is no consent check in the code read. If Perth's implementation fails to import, the class is None, so Chatterbox construction would fail rather than silently skip watermarking (curator code inference, not executed); since the code is MIT, modified copies can omit the call.
Curator qualifications: Cards/code read 2026-10-22; nothing run or downloaded; not legal advice. mtl_tts.py and tts_turbo.py not re-read.
Limitations: Cards/code read 2026-10-22; nothing run or downloaded; not legal advice.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://huggingface.co/ResembleAI/chatterbox/raw/5bb1f6ee58e50c3b8d408bc82a6d3740c2db6e18/README.md",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
},
{
"url": "https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/README.md",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
},
{
"url": "https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/src/chatterbox/tts.py",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
},
{
"url": "https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/src/chatterbox/vc.py",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
},
{
"url": "https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/src/chatterbox/mtl_tts.py",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
},
{
"url": "https://github.com/resemble-ai/perth/blob/ff1c8ac55a976971245cdd53c18d6131ca00d993/README.md",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
},
{
"url": "https://github.com/resemble-ai/perth/blob/ff1c8ac55a976971245cdd53c18d6131ca00d993/src/perth/__init__.py",
"note": "chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5"
}
]
}Evidence claims
- [sourced_fact] Chatterbox's TTS and voice-conversion classes construct Perth's implicit watermarker and apply it before returning audio (the producer reports the same in the multilingual and turbo paths), and the README provides a detection snippet. Robustness claims are the project's own. There is no consent check in the code read. If Perth's implementation fails to import, the class is None, so Chatterbox construction would fail rather than silently skip watermarking (curator code inference, not executed); since the code is MIT, modified copies can omit the call. · locator: chatterbox README at 5de7a54a L173-180; src/chatterbox/tts.py L126, L271-272; src/chatterbox/vc.py L29, L103-104; perth src/perth/__init__.py at ff1c8ac5 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/README.md
- cites → https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/src/chatterbox/mtl_tts.py
- cites → https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/src/chatterbox/tts.py
- cites → https://github.com/resemble-ai/chatterbox/blob/5de7a54aa4e5e2baadb0182dde554908b48b85c2/src/chatterbox/vc.py
- cites → https://github.com/resemble-ai/perth/blob/ff1c8ac55a976971245cdd53c18d6131ca00d993/README.md
- cites → https://github.com/resemble-ai/perth/blob/ff1c8ac55a976971245cdd53c18d6131ca00d993/src/perth/__init__.py
- cites → https://huggingface.co/ResembleAI/chatterbox/raw/5bb1f6ee58e50c3b8d408bc82a6d3740c2db6e18/README.md