Download
voicebox requires node.js to be installed on your system for it to work
Press alt+s
to trigger the voicebox window
VoiceBox currently has a very limited set of sentences it understands. If you want to contribute to this, please look at the adding responders section.
Hello
What time is it?
My name is Thomas
What's my name?
Tell me about [any topic]
What is a guitar
Start a timer for 20 Seconds
what is 20% of 245
Remind me to take the pizza out of the oven in 15 minutes
What's the weather like in Dublin
VoiceBox is built on top of electron.
npm install
grunt
electron .
Now press alt+s
Create a new folder for your responder. Responders are downloaded from NPM so a responder will need at least a package.json and index.js file. Open the responders manager and click the 'install from dir' button and select your responder folder.
The addResponder
method takes two parameters:
The voiceBox.respond(message)
method is then used inside the response function to output a response.
NB: The response function is only called if it is the last responder to match the input
voiceBox.addResponder(/Hi|Hello|Hey/i, function(){
voiceBox.respond("Hello")
})
voiceBox.request
can be used to make external API requests.
NB: This uses the request module
voiceBox.addResponder(/What's the weather like in (.*)/i, function(){
voiceBox.request('http://api.openweathermap.org/data/2.5/weather?q='+RegExp.$1, function (error, response, body) {
if (!error && response.statusCode == 200) {
voiceBox.respond(JSON.parse(body).weather[0].description)
}
})
})
In some cases a responder may require the user to give more information. This can be done using the voiceBox.addChoice
and voiceBox.choice
methods.
First, you need to add a choice using the voiceBox.addChoice
method. This works the exact same way as the voiceBox.addResponder
method.
You can then respond asking for more information using the voiceBox.choice(message)
method. This tells VoiceBox that we are asking for more information and will begin listening again after output of the message has finished.
voiceBox.addResponder(/give me options/i, function(){
voiceBox.addChoice(/one|1/i, function(){
voiceBox.respond('You selected option one')
})
voiceBox.addChoice(/two|2/i, function(){
voiceBox.respond('You selected option two')
})
voiceBox.choice('Do you want option one or option two?')
})
You can store information using the following methods
voiceBox.db.set('users_name', 'thomas')
voiceBox.db.get('users_name')
You can change the voice in the OS X speech and dictation settings. In the system voice dropdown you can select 'custom' which will allow you to download more voices. I use 'Samantha' which is the same voice used by siri on the iPhone.
All the things
VoiceBox is released under the MIT License.