#======================================
Modification notes by llfuller:
Forked from github user Emi1699.
Adds Whisper speech-to-text and ElevenLabs or Google text-to-speech for seamless verbal conversation. Updates GUI accordingly.
Requires API access to ElevenLabs and OpenAI ChatGPT.
Whisper can be run locally (just uncomment the relevant code), but for speed purposes is run online by default.
Tested and runs on Windows 10, Python 3.7.16.
End of modification notes by llfuller
#======================================
Just A Really Very Intelligent System :)
Inspired by Iron-Man's sophisticated assistant.
This project is also found inside my #machine-learning repository; I started developing it there as a side-project to get some experience with OpenAI's new API, but it grew into something that I use every single day.
Lots of improvements need to be done still, especially on the GUI side.
config.py
: Here is where you'll keep your API_KEY (see step 2-4 below).jarvis.py
: GUI.openai_api
: Consume the OpenAI API.modes.py
: This sets the tone for how the chatbot responds and 'behaves' for the rest of the conversation. You can add your own modes as well; make sure to go to line 26 inopenai_api.py
and use whatever mode you want for your app. (Read the official docs to get a better idea).
Nothing much to see here, but just wanted to remind people that they can press:
<return>
-> Generate response from JARVIS<return> + <shift>
-> add new line to the input box
So it is just like any other input field out there.
Also, you might need to scroll to view JARVIS's full response (just a reminder that you can do it :D).
This will almost certainly work on any UNIX-like system that supports the OpenAI library.
I have not tested it on Windows; do so at your own peril. Also, the instructions below assume you are on a UNIX-based machine.
I am using Python 3.9.
$ pip install openai
Go to https://platform.openai.com/account/api-keys and create your own API key.
Create a config.py
file inside the project's main folder (where jarvis.py
resides)
$ touch config.py
Add this line inside the config.py
file: OPENAI_API_KEY = "your-api-key"
.
Replace 'your-api-key'
with your API key from step 2.
$ python jarvis.py