Skip to main content

Chatter — AI Voice Assistant with Pygame UI

Project description

chatter - your personal AI voice assistant

aka project-chatter!

License: MIT Version

table of contents

for the main stuff:

what is chatter?

chatter_screenshot 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, windows and linux! but thats still a WIP, until then you can run chatter from source!

how to install chatter from source

install uv

Note: project-chatter currently doesnt work on windows, due to piper-phoenimze packages 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 audio group.
  • If you see errors about piper-phonemize, make sure your requirements.txt uses piper-phonemize-cross as 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 main or the equivalent for windows before running chatter.py
  • double-check you installed all system dependencies for your OS.
  • use the recommended Python version (3.12), and use uv for 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

goodbye yes idle speaking

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

project_chatter-0.1.1.tar.gz (58.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

project_chatter-0.1.1-py3-none-any.whl (58.6 MB view details)

Uploaded Python 3

File details

Details for the file project_chatter-0.1.1.tar.gz.

File metadata

  • Download URL: project_chatter-0.1.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

Hashes for project_chatter-0.1.1.tar.gz
Algorithm Hash digest
SHA256 92f419fb540255f32e282202855d0c4415355aa56e101bcb9edb4a7d71260383
MD5 5264c27b72096b5c803357bf3392d856
BLAKE2b-256 563c7b3e2379ac6dbb28f9ca15b5e7b4ff0318b459636be9cbc425576ad400b8

See more details on using hashes here.

File details

Details for the file project_chatter-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for project_chatter-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1daa8ed4a55cb4bed0e4a89e74d46e324966ea0ef0aa2b101990c3b701fc3df5
MD5 dae565d67ce1de7755d43edd30dd15b1
BLAKE2b-256 6f85c588fa8ecb7355a1734da449b39efe73067b51b67fe753f95cf16706c030

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page