AnkiWeb
- Rating
- 0 (π 0 Β· π 0)
- Updated
- 2026-04-12
- Anki versions
- 25.09~
- Description language
- en
AnkiWeb addon 749820458
Generates private, offline, high-quality audio for Anki cards using Chatterbox, with multilingual voices, deck presets, and GPU or CPU acceleration.
Open on AnkiWeb GitHub Ask about alternatives
active
| Min Anki | Max Anki | Updated |
|---|---|---|
| 25.09 | + | 2026-04-12 |
Loadingβ¦
Flips bilingual Anki decks into the opposite language direction and generates offline pronunciation audio using local models, without modifying original decks.
Generates natural Anki text-to-speech using Google Gemini API, AI preprocessing, multiple modes, 30+ voices, smart caching, and zero external dependencies.
Generates sentence audio via local AI TTS and translates selected Browse notes into target fields, requiring configured endpoints, mappings, and a running TTS server.
Generates Anki flashcards with example sentences, translations, or definitions by entering a word, choosing languages, deck, and optional TTS audio.
Plays audio from a local dictionary, then online gTTS, then offline Piper TTS, with cycling, smart caching, and failover.
Adds high-quality neural-voice audio to single cards or entire decks in 53 languages via right-click or Tools menu, priced β¬3.99 monthly.
The following configurations have been verified to work with this addon:
Linux (Fedora 43)
25.09.2 (Build 3890e12c)3.13.11 (Qt 6.10.2) and 3.14.3 (Qt 6.10.2)pip versionsWindows
25.09.23.13.5 (Qt 6.9.1)Conda is a powerful command line tool for package and environment management. We need it, because chatterbox is finicky about what python version you use.
The current chatterbox release 0.1.6 supports only python 3.10 and 3.11. Using any others will probably cause a lot of import/dependency errors.
conda installers for Linux, Windows and MacOS are available on their website. Just choose minimal installer (Miniconda) and run it with default parameters. On Linux/MacOS you need to make the file executable first chmod +x Miniconda3-latest-Linux-x86_64.sh.
conda create -yn chatterbox python=3.11
conda activate chatterbox
pip install chatterbox-tts
You can also use full paths instead of the name of the environment:
conda activate C:\Users\test\miniconda3\envs\chatterbox_test
The addon is currently using this model to generate audio. ChatterboxTTS supports only English, but it adds fewer artifacts than ChatterboxMultilingualTTS.
python3 -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='ResembleAI/chatterbox', local_dir='chatterbox')"
python3 -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='ResembleAI/chatterbox-turbo', local_dir='chatterbox-turbo')"
Try running the following script in the virtual environment. It should generate an audio file in the same folder:
HF_HUB_OFFLINE=1 python example.py
import torchaudio as ta
import torch
from chatterbox.tts import ChatterboxTTS
# Automatically detect the best available device
if torch.cuda.is_available():
device = "cuda"
elif torch.backends.mps.is_available():
device = "mps"
else:
device = "cpu"
print(f"Using device: {device}")
model_path = "/absolute/path/to/the/model"
model = ChatterboxTTS.from_local(ckpt_dir=model_path, device=device)
text = "Ezreal and Jinx teamed up with Ahri, Yasuo, and Teemo to take down the enemy's Nexus in an epic late-game pentakill."
wav = model.generate(text)
ta.save("test-1.wav", wav, model.sr)
Perth v1.0.1: https://github.com/resemble-ai/chatterbox/issues/198
self.watermarker = perth.PerthImplicitWatermarker()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not callable
ROCm (Radeon Open Compute) is AMD's open-source alternative to NVIDIA's proprietary CUDA platform. If you have a Radeon GPU and you're using Linux this part is for you.
https://rocm.docs.amd.com/en/latest/reference/gpu-arch-specs.html
I don't know if it's possible to set up ROCm and Chatterbox on Windows even though the table from above apllies to Windows and Linux. If you manage to set it up, do let me know and I'll update the guide.
I show how to set it up on Fedora 42+, in other distibutions the names of the packages will be slightly different. Nonetheless, everything after this part should work on any Linux distribution.
sudo dnf install rocm-hip rocminfo rocm-smi
Name : rocm-hip
Version : 6.3.1
Description : HIP is a C++ Runtime API and Kernel Language that allows developers to create
: portable applications for AMD and NVIDIA GPUs from the same source code.
Name : rocm-smi
Version : 6.3.1
Description : The ROCm System Management Interface Library, or ROCm SMI library, is part of
: the Radeon Open Compute ROCm software stack . It is a C library for Linux that
: provides a user space interface for applications to monitor and control GPU
: applications.
Name : rocminfo
Version : 6.3.0
Description : ROCm system info utility
sudo usermod -a -G render $LOGNAME
sudo usermod -a -G video $LOGNAME
Reboot and after that check that ROCm is installed properly with command rocminfo
conda create -n chatterbox python=3.11
conda activate chatterbox
ChatterBox relies on torch==2.6.0 and torchausio==2.6.0 (https://github.com/resemble-ai/chatterbox/blob/master/pyproject.toml), and the latest rocm version compatible with them both is 6.2.4
pip3 --no-cache install torch==2.6.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/rocm6.2.4
You can find what torch version is compatible with rocm by using the website https://download.pytorch.org/whl/ and clicking through versions or run the bash script:
#!/bin/bash
BASE_URL="https://download.pytorch.org/whl"
ROCM_VERSIONS=$(curl -s $BASE_URL | grep -oP rocm[0-9]+\(\.[0-9]+\)* | uniq)
VERSION="torch-2.6"
for i in $ROCM_VERSIONS; do
ROCM="$BASE_URL/$i/torch"
COMPATIBLE=$(curl -s "$ROCM" | grep -o "$VERSION" | uniq)
echo $ROCM
if ! [ -z "$COMPATIBLE" ]; then
echo "$COMPATIBLE"
fi
done
https://download.pytorch.org/whl/rocm6.1/torch
torch-2.6
https://download.pytorch.org/whl/rocm6.2/torch
https://download.pytorch.org/whl/rocm6.2.4/torch
torch-2.6
Before we can run an application that depends on ROCm, we need to present our GPU as supported. This requires setting HSA_OVERRIDE_GFX_VERSION environment variable. (https://discuss.linuxcontainers.org/t/rocm-and-pytorch-on-amd-apu-or-gpu-ai/19743)
HSA_OVERRIDE_GFX_VERSION=9.0.0HSA_OVERRIDE_GFX_VERSION=10.1.0HSA_OVERRIDE_GFX_VERSION=10.3.0HSA_OVERRIDE_GFX_VERSION=11.0.0You can try to find your GPU in the table https://rocm.docs.amd.com/en/latest/reference/gpu-arch-specs.html
Setting up the variable should eliminate the error
Compile withTORCH_USE_HIP_DSAto enable device-side assertions
I'm using Radeon RX 7600, so HSA_OVERRIDE_GFX_VERSION=11.0.0 is my choice
You can either add HSA_OVERRIDE_GFX_VERSION=11.0.0 to your ~/.profile
export HSA_OVERRIDE_GFX_VERSION=11.0.0
or set it up before running the script
HSA_OVERRIDE_GFX_VERSION=11.0.0 python3 create_audio.py
Create a new python script and run it in the virtual environment:
python <script-name>.py
import torch, grp, pwd, os, subprocess
devices = []
try:
print("\n\nChecking ROCM support...")
result = subprocess.run(['rocminfo'], stdout=subprocess.PIPE)
cmd_str = result.stdout.decode('utf-8')
cmd_split = cmd_str.split('Agent ')
for part in cmd_split:
item_single = part[0:1]
item_double = part[0:2]
if item_single.isnumeric() or item_double.isnumeric():
new_split = cmd_str.split('Agent '+item_double)
device = new_split[1].split('Marketing Name:')[0].replace(' Name: ', '').replace('\n','').replace(' ','').split('Uuid:')[0].split('*******')[1]
devices.append(device)
if len(devices) > 0:
print('GOOD: ROCM devices found: ', len(devices))
else:
print('BAD: No ROCM devices found.')
print("Checking PyTorch...")
x = torch.rand(5, 3)
has_torch = False
len_x = len(x)
if len_x == 5:
has_torch = True
for i in x:
if len(i) == 3:
has_torch = True
else:
has_torch = False
if has_torch:
print('GOOD: PyTorch is working fine.')
else:
print('BAD: PyTorch is NOT working.')
print("Checking user groups...")
user = os.getlogin()
groups = [g.gr_name for g in grp.getgrall() if user in g.gr_mem]
gid = pwd.getpwnam(user).pw_gid
groups.append(grp.getgrgid(gid).gr_name)
if 'render' in groups and 'video' in groups:
print('GOOD: The user', user, 'is in RENDER and VIDEO groups.')
else:
print('BAD: The user', user, 'is NOT in RENDER and VIDEO groups. This is necessary in order to PyTorch use HIP resources')
if torch.cuda.is_available():
print("GOOD: PyTorch ROCM support found.")
t = torch.tensor([5, 5, 5], dtype=torch.int64, device='cuda')
print('Testing PyTorch ROCM support...')
if str(t) == "tensor([5, 5, 5], device='cuda:0')":
print('Everything fine! You can run PyTorch code inside of: ')
for device in devices:
print('---> ', device)
else:
print("BAD: PyTorch ROCM support NOT found.")
except:
print('Cannot find rocminfo command information. Unable to determine if AMDGPU drivers with ROCM support were installed.')
If everything is fine you should get something like this:
Checking ROCM support...
GOOD: ROCM devices found: 2
Checking PyTorch...
GOOD: PyTorch is working fine.
Checking user groups...
GOOD: The user skafiend is in RENDER and VIDEO groups.
GOOD: PyTorch ROCM support found.
Testing PyTorch ROCM support...
Everything fine! You can run PyTorch code inside of:
---> AMD Ryzen 5 3600 6-Core Processor
---> gfx1102
ROCm diagnostic script provided by Fabio Damico.
You can simply unpack the addon in your addons folder and it should work out of the box.
%APPDATA%\Anki2\addons21~/Library/Application Support/Anki2/addons21~/.local/share/Anki2/addons21To open an addon window, go to Browser -> Edit -> ChatterBox: Generate audio.

General Use (TTS and Voice Agents):
cfg_weight to 0.exaggeration=0.5, cfg_weight=0.5) work well for most prompts across all languages.cfg_weight to around 0.3 can improve pacing.Expressive or Dramatic Speech:
cfg_weight values (e.g. ~0.3) and increase exaggeration to around 0.7 or higher.exaggeration tends to speed up speech; reducing cfg_weight helps compensate with slower, more deliberate pacing.
Audio samples are stored in: ../Anki2/addons21/749820458/user_files/
Try using 10-second (or less) samples for voice cloning.

The regular expressions are applied from top to bottom, so if you need to do a replacement s/before\(foo\)after/\1/, make sure it happens at the very end

Python executable: this is where you select the python executable from the virtual enviroment that you set up before.
HSA_OVERRIDE_GFX_VERSION: By default it's hidden unless you're using Linux. Enable it only if you set up the virtual enviroment to handle ROCm.
Linux: running Anki in a terminal should be enough flatpak run net.ankiweb.Anki or anki
Windows: You need to run Anki using anki-console.exe instead of anki in the root folder
If you kill the anki by using task manager while generating audio, the external python script <path to virt env/python.exe> will stay in the memory for a time sufficient to generate one audio file. Please use the dedicated stop button to interrupt the process.
flatpak override --user net.ankiweb.Anki --filesystem=<path to>/models/chatterbox/ --filesystem=<path to>/virt_env/chatterbox/
flatpak override --user --device=all --device=dri net.ankiweb.Anki
This addon is powered by the following open-source projects:
@misc{chatterboxtts2025,
author = {{Resemble AI}},
title = {{Chatterbox-TTS}},
year = {2025},
howpublished = {\url{https://github.com/resemble-ai/chatterbox}},
note = {GitHub repository}
}
@misc{ljspeech17,
author = {Keith Ito and Linda Johnson},
title = {The LJ Speech Dataset},
howpublished = {\url{https://keithito.com}},
year = 2017
}