Snowboy-CustomMaker

Dear @KiboOst,

thanks for the good explanation. It’s completely clear to me now.

The distinction of the family members according to wake word sounds clever - let’s see if I implement this.

Unfortunately I will probably not be able to get 2000 people to say “hey pico” three times. :sweat_smile:
I have the impression that the pitch of the voice influences the recognition rate. Depending on whether you go up or down with the voice. Maybe I am just imagining this.

You’re not imagining this, it surely influences the recognition, at least that’s my experience. For instance, if by coincidence all your training samples have their pitch going up, the recognition rate will be worse when you utter the wake word with the pitch going down.

Now here’s what I’ve been thinking:
If the height of the tone influences the recognition rate, would training the same wake word with different voice melodies improve the robustness of the wake word? So a lite variant of a universal model, not with many different people but only with voice data from me with different types of voice melody.

First of all I thought of a full-factorial matrix of meaningful combinations, where the absolute height (abs) of the voice is high (hig), medium (mid) or low (low) and the syllables of “hey pico” then take a melodic course or are monotonous (e.g. mid mid mid mid mid).

abs  hey  pi   co

low  low  low  hig
mid  low  low  hig
hig  low  low  hig

hig  low  hig  mide
mid  low  hig  mide
low  low  hig  mide

hig  hig  hig  hig
mid  mid  mid  mid
low  low  low  low

My idea is to record each melody three or six times and then feed the different melodies into the model via several accounts. It will be a bit annoying to generate multiple accounts - but if it works it is worth the work.

Forget having different voices on same custom wakeword.

A custom wakeword is a totally different beast as universal wakeword ! They even don’t have same file format.

Thanks for the program. Works great. BUT:
Please change German “de” -> “dt”
Snowboy has its own way.

Arg sorry !! Will change that :joy:

EDIT: Done :wink:

Works Great! Much better than porcupine. Your instructions were very easy to understand and setup went very quickly. Thanks.
The only thing i dont understand is that everything works fine but the advanced tab keeps showing porcupine. when i deleted porcupine, it disabled the wakeword. Then when i reselected snowboy, everything worked again, and porcupine was still in my profile? It doesnt seem to matter but it may be a bug in rhasspy.

Hello @rickmini ,

i have observed this before, between “Settings” and “Advanced” sometimes old settings are remembered and changes of the other tab are not noticed after restart of rhasspy. After deleting the browser data or visiting the website in incognito mode, the data is consistent again.
@synesthesiam Is there anything left in the browser cache? I once read that you don’t like web development that much. Maybe there is someone else who can investigate that? My abilities are limited to trial and error and thinking about that.

Thanks. I see now, after restarting the next day, that the Advanced tab shows the correct info.

Your are welcome. If you are not sure about the advanced tab, you also could open the file to see it’s actual content and not a potntially old state cached by the browser. I like to edit the file and restart rhasspy due to the browser chaching effect.

Hi @KiboOst,

Thanks for your scripts. Very useful :+1:

I used them to generate my own wakeword. So everything looks good for this part. Wav files are OK (I have followed your tips and recording were done in a non noisy environment) and pdml file imported into rhasspy.

But with my custon wakeword, Rhasspy is wake up as soon as I talk or when there is some noise in the room. Even my wife’s voice is also able to wake it up. I tried to change the sensitivity but it did not help.

Any idea ?

And I missed one point in your tips :

So, it's better to record samples in a room where you don't plan to use this wakeword

So i will try using arecord instead of pyaudio and will do my recording in an other room than the one where I will use it.

Can you try to manually cut the x_uncut.wav, save them overwrting x.wav and generate a new pmdl file ?
Maybe automatic cutting cause problems ?

I’ve generate mine with manual cutting (before scripting auto cutting) and I have no false positive and 100% detection.

x_uncut.wav files were looking good when listening them but I have not check them with Audacity. I will load them into Audacity to have a look and will try to cut the x.wav files manually too.

After checking my config, I was already using arecord for the microphone.

I have done new records in another silent room and tried to manually cut the files but it was still the same.

Finally, I have used the uncut files to generate it and it is a lot better. Only a few false positive with sensitivity set to 0.5 and no more false positive with 0.4 (but not 100% detection).

So I will try with new records and new wake words to find the better one.

do you know if it would help to take the audio files into audacity and remove all background noise, in order to decrease false positives? logic would seem to dictatate that it would be so. what i am really asking is if you have tried it yet, before i take the time to do so.

Hi KiboOst,
I already started successfully and used Snowboy-CustomMaker from december 2020. but it seem that snowboy company (https://snowboy.kitt.ai/) stopped and shutdown all applications, also stopped to provide an API token to generate the pmdl wakeword.
How can we continue to use and generate custom wakeword or should I change of wakeword module ?
in case of change, what do you purpose instead of ?
thanks in advance.

Just take a look at this instead.

1 Like

I have personally switched to Raven wakeword. Easier to set and seems better.

1 Like

Thanks Daenara and KiboOst for your suggess, I will have a look the more easy to use :wink: