
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
bumblebee-hotword
Advanced tools
A minimalist hotword / wake word for the web, based on Porcupine
Bumblebee Hotword is a stripped down and repackaged version of the excellent Porcupine wake word (hotword) system. This requires no cloud services and is freely available to use under the Apache 2.0 license (GPLv3 compatible).
When Bumblebee Hotword is added to a web page, it listens to the microphone and emits an event when it hears any of the available hotwords.
For more information about the Bumblebee platform and its other features visit:
If you need hotword detection in NodeJS use bumblebee-hotword-node.
Using npm:
npm install bumblebee-hotword
And include in your web project:
import Bumblebee from "bumblebee-hotword";
The porcupine webworker files must be manually served from your public html directory and the location must be specified using setWorkersPath()
before starting bumblebee.
bumblebee.setWorkersPath('/bumblebee-workers');
Copy the entire directory here to your web server's public html or assets directory.
const Bumblebee = require('bumblebee-hotword');
let bumblebee = new Bumblebee();
// set path to worker files
bumblebee.setWorkersPath('/bumblebee-workers');
// add hotword
bumblebee.addHotword('bumblebee');
// set sensitivity from 0.0 to 1.0
bumblebee.setSensitivity(0.5);
bumblebee.on('hotword', function(hotword) {
// YOUR CODE HERE
console.log('hotword detected:', hotword);
});
bumblebee.start();
Note: browsers require user-interaction to start the microphone.
The hotwords available by default are:
Due to processing time it is recommended to only add the hotwords that need to be used. The hotword spoken can be retreived in the .on('hotword')
event:
bumblebee.addHotword('bumblebee');
bumblebee.addHotword('grasshopper');
bumblebee.addHotword('hey_edison');
bumblebee.addHotword('porcupine');
bumblebee.addHotword('terminator');
bumblebee.on('hotword', function(hotword) {
console.log('hotword detected:', hotword);
});
The Picovoice hotwords open source hotwords are freely usable under the Apache 2.0 license. Custom hotwords can be licensed from https://picovoice.ai.
Like the open source hotwords, the file must be in Porcupine's "_wasm.ppn" format.
You can use the tools/convert_ppn.sh shell script (uses the xdd command line program) to convert the PPN file to a JavaScript file:
sh tools/convert_ppn.sh my_custom_hotword_wasm.ppn
The resulting .js file can then be added to Bumblebee:
import my_custom_hotword from './my_custom_hotword'
bumblebee.addHotword('my_custom_hotword', my_custom_hotword, 0.5)
Hotword detection sensitivity (0.0 to 1.0) is configurable only before the first call to bumblebee.start()
bumblebee.setSensitivity(0.8);
Use the stop() method to disable the microphone and all processing:
bumblebee.stop();
bumblebee.setMuted(true); // mutes microphone volume
bumblebee.setMicVolume(0.5); // sets microphone volume to 50%
bumblebee.setMicVolume(2); // sets microphone volume to 200%
Bumblebee Hotword instantiates an audio analyser which can be used to draw an oscilloscope or other types of processing:
bumblebee.on('analyser', function(analyser) {
// analyser is an instance of audioContext.createAnalyser()
});
Bumblebee Hotword emits a stream of "data" events which can be used to receive the microphone audio data after downsampling to 16bit/16khz PCM. This is the format also used by other speech processing systems such as DeepSpeech.
bumblebee.on('data', function(data) {
console.log('data', data);
});
Clone this repo, then...
For the basic example:
cd examples/basic-example
yarn install
yarn start
For the full example:
cd examples/full-example
yarn install
yarn start
This repository is licensed under Apache 2.0. See Porcupine for more details.
0.2.1:
0.2.0:
0.1.0:
FAQs
A minimalist hotword / wake word for the web, based on Porcupine
The npm package bumblebee-hotword receives a total of 41 weekly downloads. As such, bumblebee-hotword popularity was classified as not popular.
We found that bumblebee-hotword demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.