Hugo is a Node.js-powered, modular voice assistant, with an easy way to add new features!
Note: looking for testers for macOS!
- Can run completely offline
- Very customizable
- No 3rd-parties can access your data
- Compatible with Linux (tested), Windows 8+, and macOS
-
Clone the repository:
git clone https://github.com/CharlesBobOmb/HugoVoiceAssistant.git cd HugoVoiceAssistant -
Download an appropriate speech recognition model from here (recommended model is
vosk-model-small-en-us-0.15) -
Extract the contents into a folder called
vosk-modelinside ofcore/speech-recognition -
[Windows/Linux] Install
espeak-ng(for text-to-speech) from this repository -
Install NPM dependencies and generate intents:
npm install npm run generate-intents
-
Start Hugo by running:
node index.js
To test Hugo, make sure a microphone and speaker are connected, run the program, and say "Hugo". Once a sound is played, ask Hugo "what time is it?" If everything is set up right, Hugo will tell you the time.
You can also change Hugo's name by adding a WAKE_WORD property to a .env file in the root. Make sure that the wake word is contained in your Vosk model (by using the say module), otherwise Hugo won't wake up!
Modules are code files that can be added to Hugo to let him do more things. Every module contains
- A
hugo.module.jsonfile - An
index.jsscript
To install a module, just move the folder containing these things into the modules folder. Then, run npm run generate-intents (YOU MUST DO THIS OR THE MODULE WON'T WORK). That's it!
-
Create a folder with the previously mentioned files
-
Put the following code into
hugo.module.json:{ "id": "example", "description": "Example Hugo module", "intents": { "run": ["run the example module"] } }This is the header for your Hugo module. Next, put the following into the
index.jsfile:module.exports = { run(hugo){ hugo.say("This is the module template!") } }
Now, run
npm run generate-intents, and you can use your new module. Wake Hugo and say "run the example module" to verify that it works. For examples of how to make a module, including using arguments, take a look at the time module or the math module included with Hugo.
Any pull requests or issues are greatly appreciated!
None yet!
