Chatter — AI Voice Assistant with Pygame UI
Project description
chatter - your personal AI voice assistant
aka project-chatter!
table of contents
for the main stuff:
what is chatter?
chatter is AI voice assistant made purely in python, from the UI, to the voice recognition, all made in python! chatter uses the hackclub ai for responses! chatter uses local models for the tts and speech!
how to install chatter?
i plan on releasing a standalone app for chatter for macos and linux! but thats still a WIP, until then you can run chatter from source!
install chatter from pypi - reccomended
[!NOTE] Chatter doesnt work on windows, due to
piperpackages not supporting it. this only works for macOS and linux
just run
pip install project-chatter
and after that also make sure to run
pip install "project-chatter[voice]"
after that to start it just run
chatter-start
also make sure to enable microphone privelleges for the terminal you run it in.
how to install chatter from source
install uv
[!NOTE] again, project-chatter currently doesnt work on windows, due to
piper-phoenimzepackages not supporting it.
linux (all distros) & macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
install Python 3.12 using uv
uv python install 3.12
this downloads and manages Python 3.12 locally for your projects.
clone the repository
git clone https://github.com/divpreeet/project-chatter.git
cd project-chatter
create a virtual environment with Python 3.12
uv venv --python 3.12
source .venv/bin/activate
install system dependencies
Ubuntu/Debian
sudo apt update
sudo apt install -y build-essential portaudio19-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libfreetype6-dev python3-dev
Fedora
sudo dnf install -y gcc python3-devel portaudio-devel SDL2-devel SDL2_image-devel SDL2_mixer-devel SDL2_ttf-devel freetype-devel libffi-devel libsndfile-devel
Arch Linux
sudo pacman -Syu --needed python portaudio sdl2 sdl2_image sdl2_mixer sdl2_ttf freetype2 libffi libsndfile
install Python dependencies
uv pip install -r requirements.txt
run Chatter!
python main/chatter.py
note:
- On macOS, run from the default Terminal and allow Microphone access when prompted.
- On Linux, if you have audio permission issues, ensure your user is in the
audiogroup. - If you see errors about
piper-phonemize, make sure yourrequirements.txtusespiper-phonemize-crossas described in troubleshooting.
usage
it's simple! just say 'chatter' along your message and chatter would respond! extra stuff:
- you can also just say chatter, without saying your message, that would make chatter say 'Yes?' after which you could continue asking your message
- saying stuff like 'chatter goodbye' or anything from bye, goodbye, exit, quit, along with 'chatter' simply exits the appication
- try saying 'chatter what are you up to' for a surprise
- if your hacky and want ultimate customization, just open up the main.py and adjust the stuff that you'd want! like the wake words, end words and so on! i hope the code is readable 😭
customization
you can also customize the look and feel for chatter!
looks
just open the config file and mess with it however you want! its in simple rgb colors, and you can change everything you see!
here are some templates! to use them just copy paste the code into the file!
{
"theme": "default",
"bg_color": [23, 23, 23],
"eye_color": [217, 217, 217],
"tip_color": [180, 180, 180],
"fonts": {
"caption": "Inter.ttf",
"caption_size": 28,
"tip_size": 18
},
"tip_interval": 20
}
{
"theme": "latte",
"bg_color": [239, 241, 245],
"eye_color": [76, 79, 105],
"tip_color": [108, 111, 133],
"fonts": {
"caption": "Inter.ttf",
"caption_size": 28,
"tip_size": 18
},
"tip_interval": 20
}
{
"theme": "frappe",
"bg_color": [35, 38, 52],
"eye_color": [115, 121, 148],
"tip_color": [165, 173, 203],
"fonts": {
"caption": "Inter.ttf",
"caption_size": 28,
"tip_size": 18
},
"tip_interval": 20
}
{
"theme": "macchiato",
"bg_color": [36, 39, 58],
"eye_color": [110, 115, 141],
"tip_color": [184, 192, 224],
"fonts": {
"caption": "Inter.ttf",
"caption_size": 28,
"tip_size": 18
},
"tip_interval": 20
}
{
"theme": "mocha",
"bg_color": [30, 30, 46],
"eye_color": [152, 139, 162],
"tip_color": [166, 173, 200],
"fonts": {
"caption": "Inter.ttf",
"caption_size": 28,
"tip_size": 18
},
"tip_interval": 20
}
these are just some templates, feel free to add on!
wake + end words
you can customize the wake and end words too! instead of chatter you could make it bob, simply open the main.py and change the WAKE_WORDS and END_WORDS to whatever you want
from:
WAKE_WORDS = ["chatter", "charter", "chadar", "chadda"]
END_WORDS = ["bye", "goodbye", "exit", "quit"]
to:
WAKE_WORDS = ["bob", "bop"]
END_WORDS = ["quiet", "shut up"]
troubleshooting
- Ensure your microphone is connected and set as the default input device.
- If you encounter errors related to audio or microphone access, make sure PortAudio is installed and all Python dependencies are satisfied.
- also sometimes chatter might not hear you, due to ambient noise or your microphone!
- also make sure you first
cd mainor the equivalent for windows before runningchatter.py - double-check you installed all system dependencies for your OS.
- use the recommended Python version (3.12), and use
uvfor faster, more reliable installs. - still have an issue? copy the error and open an issue.
privacy
chatter doesnt store any data, not from your voice or computer, it simply just puts together multiple python libraries and has a nice UI, no shady stuff under the hood!
extra project screenshots
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file project_chatter-0.2.1.tar.gz.
File metadata
- Download URL: project_chatter-0.2.1.tar.gz
- Upload date:
- Size: 58.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
100a9989e076e48b351439b006b76b1739aa7dd21dcdae2288f6e19de7a14c4c
|
|
| MD5 |
a260dc5a79314849ab93da95149fcea2
|
|
| BLAKE2b-256 |
6a6c9e42bb75723f0f69ead595f6617d39fc915a23b7d48e05838729871420f5
|
File details
Details for the file project_chatter-0.2.1-py3-none-any.whl.
File metadata
- Download URL: project_chatter-0.2.1-py3-none-any.whl
- Upload date:
- Size: 58.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5f953c515c5a8536b4849c2d88b3ca7c998870967eac0934d04d7eaa3e76fad
|
|
| MD5 |
f6eac0090a2ce882316fcb7ddf396b38
|
|
| BLAKE2b-256 |
756c2997a6733e2739a22dd70feafaa8cc86e567bcbcfe3ea439a20e5a5b37c4
|