AlwaysReddy is a LLM voice assistant that is always just a hotkey away.
AlwaysReddy is a LLM voice assistant that is always just a hotkey away.
Hey, I'm Josh, the creator of AlwaysReddy. I am still a little bit of a noob when it comes to programming and I'm really trying to develop my skills over the next year, I'm treating this project as an attempt to better develop my skills, with that in mind I would really appreciate it if you could point out issues and bad practices in my code (of which I'm sure there will be plenty). I would also appreciate if you would make your own improvements to the project so I can learn from your changes. Twitter: https://twitter.com/MindofMachine1
Contact me: [email protected]
I'm looking for work, if you know of anyone needing a skillset like mine, please let me know! :)
The code base is a mess right now, I am in the middle of transforming AlwaysReddy from just being a voice chat bot into something that will allow users to create their own chatbots and extensions. This transition will be a little messy until I find solutions that I like, then I will start cleaning things up.
AlwaysReddy is a simple AI voice assistant with the perfect amount of UI... None! You interact with it entirely using hotkeys, it can easily read from or write to your clipboard. It's like having voice ChatGPT running on your computer at all times, you just press a hotkey and it will listen to any questions you have, no need to swap windows or tabs, and if you want to give it context of some extra text, just copy the text and double tap the hotkey!
Future of AlwaysReddy I would like to make AlwaysReddy an extensible interface where you can easily voice chat with a range of AIs, these AIs could be given the ability to access custom tools or applications so that they can do tasks for you on the fly, all of this with as little friction as possible.
Pull Requests Welcome!
Join the discord: https://discord.gg/su44drSBzb
Here is a demo video of me using it with Llama3 https://www.reddit.com/r/LocalLLaMA/comments/1ca510h/voice_chatting_with_llama_3_8b/
You interact with AlwaysReddy entirely with hotkeys, it has the ability to:
Ctrl + Alt + R + R rapidly double tapping R).If you are and you're willing to help please consider look at the Known Issues, I'm pretty stuck here!
I often use AlwaysReddy for the following things:
GPU Setup Instructions
To use GPU acceleration with the faster-whisper API, follow these steps:
Check if CUDA is already installed:
nvcc --versionnvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Feb_14_21:12:58_PST_2021
Cuda compilation tools, release 11.2, V11.2.152
Build cuda_11.2.r11.2/compiler.29618528_0If CUDA is not installed or you want to install a different version:
Install PyTorch with CUDA support based on your system and CUDA version. Follow the instructions on the official PyTorch website: PyTorch Installation
Example command for CUDA 11.6:
pip install torch==1.12.0+cu116 -f https://download.pytorch.org/whl/torch_stable.htmlIn the config.py file, set USE_GPU = True to enable GPU acceleration.
Note for MacOS: it is expected that you have Brew installed on your system, look here for setup
git clone https://github.com/ILikeAI/AlwaysReddycd AlwaysReddypython setup.py on windows or python3 setup.py on mac and linux.config.py and .env files and update them with your settings and API keys.If you get module 'requests' not found run pip install requests or pip3 install requests
If you encounter any issues during the setup process, please refer to the Troubleshooting section below.
run_AlwaysReddy.bat file created during the setup process.OR run python main.py from the command prompt or terminal.
venv\Scripts\activate then run the main script directly python main.py../run_AlwaysReddy.sh.OR run python3 main.py from the command prompt or terminal.
source venv/bin/activate then run the main script directly python3 main.py.If you have issues try deleting the venv folder and starting again. Set VERBOSE = True in the config to get more detailed logs and error traces
There are currently only main 2 actions:
Voice chat:
Ctrl + Alt + R to start dictating, you can talk for as long as you want, then press Ctrl + Alt + R again to stop recording, a few seconds later you will get a voice response from the AICtrl + Alt + R to record and release it when you're done to get the transcription.Voice chat with context of your clipboard:
Ctrl + Alt + R (or just hold Ctrl + Alt and quickly press R Twice) This will give the AI the content of your clipboard so you can ask it to reference it, rewrite it, answer questions from its contents... whatever you like! Ctrl + Alt + W.Ctrl + Alt + EGet AlwaysReddy to output to your clipboard:
Please let me know if you think of better hotkey defaults!
All hotkeys can be edited in config.py
.onnx and .json files for the chosen voice.piper_tts\voices directory and give it a descriptive name. You will need to enter the name of this folder into the config.py file. For example: PIPER_VOICE = "default_female_voice"..onnx and .json) into your newly created folder within the piper_tts\voices directory.config.py file.TRANSCRIPTION_API = "openai" by adding a # at the beginning of the line.TRANSCRIPTION_API = "faster-whisper" by removing the # at the beginning of the line.WHISPER_MODEL and TRANSCRIPTION_LANGUAGE settings according to your preferences.config.py file.Available models with faster-whisper: tiny.en, tiny, base.en, base, small.en, small, medium.en, medium, large-v1, large-v2, large-v3, large, distil-large-v2, distil-medium.en, distil-small.en, distil-large-v3
Here's an example of how your config.py file should look like for local whisper transcription:
### Transcription API Settings ###
## OPENAI API TRANSCRIPTION EXAMPLE ##
# TRANSCRIPTION_API = "openai" # this will use the hosted openai api
## Faster Whisper local transcription ###
TRANSCRIPTION_API = "FasterWhisper" # this will use the local whisper model
# Supported models:
WHISPER_MODEL = "tiny.en" # If you prefer not to use english set it to "tiny", if the transcription quality is too low then set it to "base" but this will be a little slower
Note: The default whisper model is english only, try setting WHISPER_MODEL to 'tiny' or 'base' for other languages
To swap models open the config.py file and uncomment the sections for the API you want to use. For example this is how you would use Claude 3 sonnet, if you wanted to use LM studio you would comment out the Anthropic section and uncomment the LM studio section.
### COMPLETIONS API SETTINGS ###
## LM Studio COMPLETIONS API EXAMPLE ##
# COMPLETIONS_API = "lm_studio"
# COMPLETION_MODEL = "local-model" #This stays as local-model no matter what model you are using
## ANTHROPIC COMPLETIONS API EXAMPLE ##
COMPLETIONS_API = "anthropic"
COMPLETION_MODEL = "claude-3-sonnet-20240229"
## TOGETHER COMPLETNo open issues yet, or sync has not completed.