
VoxBuddy is a local desktop text-to-speech app for macOS on Apple Silicon. It provides a simple GUI for generating speech with MLX-accelerated models, switching between multiple TTS engines, cloning voices from reference audio, recording new voice samples, and exporting finished audio as WAV.
This repository is focused on local inference. Models are downloaded on first use and cached through Hugging Face in ~/.cache/huggingface.
GitHub repository: https://github.com/MateuszPsuja/voxbuddy
.wav or .mp3 files.wavChatterbox MLX
Chatterbox Turbo MLX
Qwen3-TTS MLX
git clone https://github.com/MateuszPsuja/voxbuddy.git
cd voxBuddy
python3.13 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
./run_ui.sh
Note: run_ui.sh activates the local venv and performs a small convenience pip install for a few GUI/audio packages. That script redirects pip output to /dev/null by default, so if you encounter installation errors run the pip install -r requirements.txt command above to see full output. The first generation run may take longer because the selected model is downloaded and any required NLTK tokenizer assets are fetched into temp/nltk_data.
./run_ui.shGeneratePlay to preview the result or Save as WAV to export itVoxBuddy supports two ways to create reusable custom voices:
Load File: import a .wav or .mp3 reference sampleRecord: capture a voice sample directly in the appRecorded or imported voices are stored locally in asset/custom_voices and appear in the voice dropdown under My Voices.
For best results, use a clean mono speech sample with minimal background noise. The app validates recording quality and rejects clips that are too short, too long, too quiet, or clipped.
For longer input, VoxBuddy automatically switches to chunked generation. The app prepares text chunks itself, generates each chunk in order, and stitches the audio back together. The UI shows:
This keeps long passages more manageable and reduces the likelihood of unstable generation on larger inputs.
HF_TOKEN in your shell may help.run_ui.sh activates the local virtual environment and starts the desktop UI with Python 3.13.This project is licensed under the MIT License. See the LICENSE file for details.
HF_TOKEN and retry. Models are cached in ~/.cache/huggingface../run_ui.sh fails silently during dependency install, run pip install -r requirements.txt manually to view and fix errors.This project is available on GitHub and can be cloned with:
git clone https://github.com/MateuszPsuja/voxbuddy.git
For visitors landing on the repository page, the key points are:
3 commits
Python
99.9%

VoxBuddy is a local desktop text-to-speech app for macOS on Apple Silicon. It provides a simple GUI for generating speech with MLX-accelerated models, switching between multiple TTS engines, cloning voices from reference audio, recording new voice samples, and exporting finished audio as WAV.
This repository is focused on local inference. Models are downloaded on first use and cached through Hugging Face in ~/.cache/huggingface.
GitHub repository: https://github.com/MateuszPsuja/voxbuddy
.wav or .mp3 files.wavChatterbox MLX
Chatterbox Turbo MLX
Qwen3-TTS MLX
git clone https://github.com/MateuszPsuja/voxbuddy.git
cd voxBuddy
python3.13 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
./run_ui.sh
Note: run_ui.sh activates the local venv and performs a small convenience pip install for a few GUI/audio packages. That script redirects pip output to /dev/null by default, so if you encounter installation errors run the pip install -r requirements.txt command above to see full output. The first generation run may take longer because the selected model is downloaded and any required NLTK tokenizer assets are fetched into temp/nltk_data.
./run_ui.shGeneratePlay to preview the result or Save as WAV to export itVoxBuddy supports two ways to create reusable custom voices:
Load File: import a .wav or .mp3 reference sampleRecord: capture a voice sample directly in the appRecorded or imported voices are stored locally in asset/custom_voices and appear in the voice dropdown under My Voices.
For best results, use a clean mono speech sample with minimal background noise. The app validates recording quality and rejects clips that are too short, too long, too quiet, or clipped.
For longer input, VoxBuddy automatically switches to chunked generation. The app prepares text chunks itself, generates each chunk in order, and stitches the audio back together. The UI shows:
This keeps long passages more manageable and reduces the likelihood of unstable generation on larger inputs.
HF_TOKEN in your shell may help.run_ui.sh activates the local virtual environment and starts the desktop UI with Python 3.13.This project is licensed under the MIT License. See the LICENSE file for details.
HF_TOKEN and retry. Models are cached in ~/.cache/huggingface../run_ui.sh fails silently during dependency install, run pip install -r requirements.txt manually to view and fix errors.This project is available on GitHub and can be cloned with:
git clone https://github.com/MateuszPsuja/voxbuddy.git
For visitors landing on the repository page, the key points are:
3 commits
Python
99.9%