mycroft-precise
mycroft-precise copied to clipboard
After Precise-Train-Incremental wake word stops recognizing
Hi, I followed the instruction given in wiki and tried training wake word with different data set. After the first training i.e. recording the wake word and then training it, wake word gets detected along with anything else i speak. This is expected. After i do an incremental training using the dataset in method 2 the wake word stops detecting completely. How can get this resolved.
You can try retraining with the sensitivity parameter increased. By default I think it is around 0.2
or 0.3
. You can try either retraining with it much higher, adding more samples for your wake word to prevent class imbalance, or removing some of the generated samples in not-wake-word/generated/
.
Let me know if this helps.
I have axactly this issue. 5000 wake words and 8000 not-wake-words works so-so, when I delete model complitely after incremental train and just run usual train with 60-100 epochs. It works with sensivity 0.999 in end point client. If I try to train 600 or 6000 epochs, sensivity 0.999 not works at all, it shows 0 or 1 probability, but 1 is very rare.
60-100 epochs/0.999 sens works, but shows many false activations, even in night silence.
And I have question: I must set sensivity high on train and continue training after 6000 epochs on existing model, or delete model and train with high sensivity from scratch?
Another question: sensivity 0.999 (on end device) is normal or I do something wrong?
P.S. I have 500 wake-words, writtem with actial microphone, 1 seconds each, word in beginning, silence in end, and I transformed it to 5000 wake-words by adding some background noises. Clean 500 wake words also in wake-word samples when training. As not-wake-words I use 5-10 minutes of real backgroun noise, 20 files of false wake detections, and google wake word dataset, and mozilla open voice (all i -r directory, all 8000 not wake words created atomatically)
P.S.2. test model before converting to .pb says that there is 100% success, 0 false positives or negatives/
Trim silence from your wake word samples where possible.
I use sensitivity of .8 normally, .999 seems excessive?
When adding large chunks of new or altered data, I find it best to retrain from scratch.
How many epochs to train is a bit of a guessing game, with .3 it seems to be <100 typically.
Set your batch size to 5000 (precise-train -b 5000).
If you have recorded 500 wake words, then 8000 not-wake seems reasonable. I would suggest you supplement the not wake word with the google speech commands as well.
Additionally, see https://github.com/sparky-vision/mycroft-precise-tips
and https://github.com/el-tocino/localcroft/blob/master/precise/Precise.md
For more recommendations.