-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Issue-1491 -- Added support for the Porcupine wakeword engine #2139
Conversation
Hi, sorry for the delay on reviewing this. I will make time for it at the end of the week at the latest. |
Sorry this got lost in some reorganization madness. I had a quick look at it a couple of months ago but couldn't quite follow the instructions and now I took a deeper look and the issue seems to be that they've removed the possibility to create custom wakewords? the optimizer folder is removed and missing in older commits as well it seems. Does this still have value to include? |
But there are a bunch of pre-trained wakewords and this seems to be working fine. |
https://github.com/Picovoice/Porcupine apparently It looks like they went Apache and made some sort of webapp for training custom wakewords. |
Ah in the console thing. Ok then it's all good I guess :) (btw @ChanceNCounter do you ever sleep?) |
Tested and seems to work just fine. Merging. |
Trying to use Porcupine for wake word detection, and not having any success: As there is no way to create a custom wakeword as optimizer is no longer part of the porcupine package, I do see there is a way with the picovoice console tool to create custom wake word, but the free version only allows creation of wake for for x86 not ARM based machines....so trying to work with the existing models that are included with Procupine package. I have set mycroft.conf as this:
Porcupine wake word appears to be attempint to load, but having this error:
I saw the Phenome and Threshold warnings, so tried to set those in mycroft.conf, but it did not make any difference, I got exactly the same errors. Interestingly enough, I ask mycroft what the listener is and it tells me it's "Porcupine" although any sound seems to trigger it, and it is not recogizing speech commands after trigger. I"m noting that the library that is loaded is "Loading Porcupine using library path /home/pi/.mycroft/Porcupine/lib/linux/armv7l/libpv_porcupine.so " which could be an issue, as this is raspberry-pi and the Procupine package has a specific library for raspberry-pi. I tried adjusting the code in "hotword_factory.py" to use the raspberry pi library.
but I get the same error. So, how to go about getting this setup on raspberry-pi using the included raspberry-pi wakewords? |
Hmm, they seem to have made some changes to the layout of the library (but only x86 was tried during tests since that was the only one publicly available for free trial at the time so I might have missed an issue here)...They've also released some new instructions for installation so might be worth looking over in general. Edit: Will try it out here and see... |
Did some tests during lunch and I think I got as far as you did, changed the path to match and then updated the Porcupine init so the arguments matched but no wakeword did just trigger repeatedly after that...will keep digging a bit later. Maybe open a separate issue for this? |
#2720 Opened a new issue. thanks for taking a look. I really like Porcupine, it's wakeword detection is great++ hope to get it working++ Will be of any help I can++ |
Description
This PR adds support for the Porcupine wakeword engine, thus fixing issue #1491.
Porcupine is fast, very accurate and supports user-generated wakewords. That is, you can generate a wakeword listener model by just specifying an English text string.
The bad thing is that Porcupine is closed source and generated wake words are only valid for 30 days (but you can always use the provided optimizer to generate a new one).
How to test
On Linux:
Clone Porcupine into e.g. ~/.mycroft:
Generate a wake word file:
In ~/.mycroft/mycroft.conf, set the "hey mycroft" wakeword section as follows:
Contributor license agreement signed?
CLA [ ] (Whether you have signed a CLA - Contributor Licensing Agreement
Requested to sign.