This is Quinton; a voice assistant, similar to Siri, Google Assistant, and Amazon Alexa, but with many differences and limitations
This is an abridged version of the project's README. For the complete README, please see README-EXT.md
You will need to install and run Quinton-VoiceAssistant with Python 3.8 or newer. Download and install the correct build and version of Python for your operating system here.
macOS Users: If you prefer, you can install Python via Homebrew rather than from source.
omxplayer-wrapper
phonetics
pyalsaaudio
pyaudio
pyowm
pytz
pyyaml
speechrecognition
tinytag
There are some packages that Quinton-VoiceAssistant requires that need to be installed from your package manager. These dependencies are installed by running the setup script, so there is not need to install them separately unless you choose to. A table of the required packages for Debian, Ubuntu, and Manjaro systems is provided below. If you use a different distribution or package manager, you can search for packages for your system here.
Debian/Ubuntu | Fedora | Manjaro |
---|---|---|
portaudio19-dev |
portaudio-devel ; redhat-rmp-config |
portaudio |
python3-espeak |
espeak-devel |
python-pyaudio |
python3-pyaudio |
python3-pyaudio |
- |
espeak |
espeak |
espeak |
libbz2-dev |
bzip2-devel |
bzip2 |
sox |
sox |
sox |
ffmpeg |
ffmpeg |
ffmpeg |
NOTE: omxplayer
can be used instead of ffmpeg
on a Raspberry Pi running Raspberry Pi OS.
NOTE: If you try to run the software and get an error involving one of these packages, (such as a ModuleNotFoundError
for _bz2
), you may need to rebuild your Python installation. See this
StackOverflow thread for more information.
In order for Quinton to run, you will need to have a Houndify and OpenWeatherMap accounts with valid API keys. The good news is, all of this is free. Both services offer premium subscription options if you decide you want to upgrade your account in the future (to increase your daily API call/credit allotment), but it's completely optional. In addition, both accounts can be signed up for without the use of a credit card.
For complete instructions on how to set up/register API keys for both services, see README-EXT.md
NOTE: You must put all API keys in the credentials.yaml file for everything to work properly!
Before running any commands, make sure you're in the source directory. Also, be sure to use the correct Python versions/commands
for your system. For example, your Python interpreter may be run by calling python3.9
rather than python3
. In these examples,
I will be using python3
.
In certain cases, you may have to run setup.py install
as root. If you don't want to use sudo
, you can use the --user
argument:
sudo setup.py install <args>
# --- OR --- #
setup.py install <args> --user # Will install in the current user's site-package directory
With the modified build behavior, one command can be used to install all dependencies as well as the software for Linux and macOS. As of now the supported package managers are:
- Homebrew (
brew
) apt-get
yum
dnf
pacman
If your system meets these requirements, you can install by running:
# NOTE: `True` must be capitalized for the command(s) to work properly.
python3 setup.py install --pkg-install=True
# --- OR --- #
python3 setup.py install -k True # An alternative to the above command
If your system doesn't meet these requirements or you want to install the dependencies separately, see README-EXT.md.
Once everything is installed, type voiceassistant
in your terminal to run the program.
To learn more about how to contribute, see "Contributing" in README-EXT.md.
Quinton-VoiceAssistant is licensed under the GNU General Public License v3+. For more information, see LICENSE.txt.
Quinton-VoiceAssistant is Copyright (c) 2020-2021 by Ryan Smith
Quinton-VoiceAssistant is free and open-source software. You can find the code on GitHub.
To report any bugs, contact me by email at rysmith2113@gmail.com or raise an issue on Github.
Feature requests for Quinton-VoiceAssistant are welcome! You can send them in by email or raise an issue on the repo. When you do, choose the feature request issue template and follow the directions to fill everything out.