Wake Word Skill Trainer

!!! Bugs
wakeword is only a few times spoken and bad detection sorted out. you could not do that through speech. i have thought about it and make a skill.

How to test SKILL NAME

Specify the steps the user should take to test the Skill, such as;

  • Configure the Skill Settings in home.mycroft.ai
  • Speak I want to call you {name} now
  • Mycroft should start record wake word training or change wake word if exist
  • Speak (I |) train weckword {name}
  • Mycroft should start record wake word training
  • Speak You still do not understand me correctly
  • Mycroft should play recordings from wakwords to select good and bad words (not jet)
  • Speak you can upload your wakeword {name}
  • Mycroft should start upload wake word to https://github.com/MycroftAI/Precise-Community-Data (not jet)

Where feedback on Wake Word should be directed a

Be clear about how feedback on the Skill should be provided, such as through Issues on GitHub, via email or via Mycroft Chat.

5 Likes

Hey Andreas, looks like an ambitious project and a great companion ot the new Precise Community Data Repo.

Look forward to seeing it evolve :slight_smile:

Hey gras :slight_smile:

I love your idea :slight_smile: keep up the good work!
You absolutely need to add a requrements.txt to your skill so that mycroft can automatically install dependencies on “msm install”.
I just needed to add wget :wink: so no big deal… It’s working out of the box for me… :smile:
I would try to let precise calculate async…
it took a really long time, and didn’t warn me.
(without looking at the logs I would have thought of major failure :smiley: and most likey hit a kill switch, since I am not very patient)

than i get the following errors:

not-wake-word/en-short/notcomputer-en-1ea1c5bc-d2fa-11e9-aa7a-54a050546b1f.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
/bin/sh: 1: /home/cola/.mycroft/skills/WakeWord/precise/.venv/bin/python: not found                                                    
14:05:31.240 - WakeWord - INFO - precise file computer not found                                                                       
14:05:34.262 - WakeWord - INFO - precise: check for end calculation      

ok i got it … just run the “~/.mycroft/skills/WakeWord/precise/setup.sh” than prcise can calculate and train :slight_smile:

Normally the installation should be done automatically. I think I have to think of something to make it transparent. have fun while testing. I have already fixed some bugs in the last few days. Installation may take up to 30 minutes. which os do you use?

I am using KDE Neon. It worked up to the end of the training…
Now it’s stuck in an endless " 14:44:16.238 - WakeWord - INFO - precise: check for end calculation" loop.

I need more log information before and after

I sent you an email at gras64@web.de

I can also be contacted via chat

Is fixt now. And many oher things too.

2 Likes

Great initiative! And thnx for creating this, I do have a few questions if you don’t mind:

  1. After the 12 times you have to say the wake-word it asks something like ‘now with over influencing words’, I can’t quite catch what is said, what are you supposed to say then? And when do you stop?
  2. How will I know if ‘calculations’ are finished in the end? (and the wake-word is ready?)
  3. How do I change to the newly created wake-word?

*Edit: Btw If I ask ‘hey Mycroft’ if I can call her the new Wake-word, then she asks ‘I already learned that, would you like to discard that?’, no matter what I answer yes or no, it always starts recording again…

Thnx again!

  1. not wakeword is an example of “Britta” are “Pritta” or “brite”.
  2. the skill should make an output after the final calculation, but it can take a few minutes. You can see the progress in the log. or the installation also takes hours.
  3. if you say “I want to call you {name} now” and mycroft found a modell, mycroft will setup this directly"
    PS:.if you say yes you will create a new model. if you say new, the model will be added and recalculated.

I hope this helps you

  1. yes, ok…so words that are close, but wrong…

  2. Ok, it does kindah work (although I saw quite some error’s/deprecated commands being used…at least that’s what the system is warning about…

  3. Hmm, well anything really is regarded as the answer ‘yes, discard and do this anew’, whether it is to say yes, no, new or totally silent… this is really confusing… how would you change to another wakeword being activated without changing the files associated?

I understand that this is under development, but I can see it’s great potential!! ( I really do like the custom wake-word and see this as one of the strong points of this assistant!)

At the moment after a few tries, it didn’t really get any better…in a matter of fact…it got worse, now it seems that with any level above the normal ‘noise-level’ the new ‘wake-word’ is triggered…sadly :-/

Where to go from here?

  1. Ideally I would suggest that perhaps: https://github.com/MycroftAI/Precise-Community-Data using the not-wake-words could help with implementation?

  2. Have an option the further perfect the wake-word by saying something like "I would like to add more wake-word samples for ‘name’ ", in order to have more than 12 samples…

  3. It would be nice if there is an option to change what wake-word you want to use (perhaps within the settings) so that you can fallback to another wake-word if the new wake-word you created fails…

  1. that is already set up. you can send your data to community-data (currently you have to put in a fork in your github first). I don’t really know what works and what doesn’t.
  2. lock on Github doc and at the intent files for all options.
  3. Only when your model is available is set up but I can not check the model for correctness.

Hey Gras64, bear with me…I’m a novice at best… :wink:

  1. “if you say “I want to call you {name} now” and mycroft found a modell, mycroft will setup this directly”
    PS:.if you say yes you will create a new model. if you say new, the model will be added and recalculated."

I tried this again, but no matter what I say…even when I’m silent it will start with the 12 beeps. This could be a language thing, but I would expect the following when it asks ‘I already know this {name}, would you like to discard?’:

yes- restart learning, begin from new for {name}…
no- activate the {name} wakeword

  1. I don’t understand what you say (it’s probably because of language differences?). Let me explain myself better. What I think (and perhaps I’m seeing this wrong) is that because the Mycroft-wakeword works so well, we could perhaps use the ‘not-wake-words’ (and noises) from the Mycroft-wakeword and add only a few ‘not-wake-words’ for our New-wakeword (or is this already done in this matter?). I’m asking this, because at the moment my New-wakeword is triggered by ‘silence’…

4a) No matter if I try to ‘redefine’ my New-wakeword, this triggering by ‘silence’ seems to stay/get worse…

  1. You mean look in the github? ahh I see now: https://github.com/gras64/wake-word-skill/tree/master/vocab/en-us Thnx!

  2. Yes, it doesn’t matter if it is correct, it would be nice to be able to change the ‘active’ Wake-word *at the moment I have no idea how to delete my New-wakeword and revert back to the Mycroft-wakeword… (also see 3)

  1. if you say “train wackword {name}” .make start train (ask for new or old model). if you say “I want to call you hey mycroft now” mycroft check for model and if not found start training (ask for new or old model).
  2. the 12 wakewords are not checked. that is, once you have silence, the silence is also adopted in the model. precise needs a lot more files to work well.
  3. you can view, check and delete all audiofiles and precice files /.mycroft/skills/wake-word/
  4. yes
  5. you say “I want to call you hey mycroft now”

PS: I can also be reached via chat

Thnx for your replies,

  1. without a ‘check’ this function really does more harm than good (see 7)
  2. ok
  3. thnx!
  4. Ok, let me explain why this is really…I mean really bad. What do you think happens when I say ‘I want to call you hey Mycroft now’ and it hears it as; ‘hey Micro’, ‘hey Microsoft’, or even ‘hey Microft’…even when I copy and pasted the sentence you wrote here… it ‘thought’ it was a new wake-word and started again listening for the 12…etc.

I really think you made a really awesome skill, offcourse it needs still quite some work, but please change the implementation of the questions…

*btw I checked the actual sound-recordings, and it’s quite a mess…the ‘beep’ seems also recorded and I think perhaps it would be good to disable the active wake-word, so she will not talk/interfere while recording…

I worked with delays in part, so I will strive for a different solution. Which hardware and which audio management do you use?
As for hey mycroft and mycrosoft, could that be due to your STT? For me, STT works very well.

I have a Pi 4b, with a sony ps3 eyecam, and normal 3.5 jack out…

I don’t know about STT (speech to text?). I do know that even if I typed the command you wrote here in the console in putty (mycroft-cli-client) it didn’t even work. And well by saying things you get a more error-prone result. In my humble opinion these commands should be separated:

-to create a new wake-word
-to add extra wake-word voice samples
-to add extra not-wake-word voice samples
-to change the active wake-word

-and perhaps something for the feedback if the wake-word was heard correctly or not

I am currently in the process of revising the skill. I will contact you when I am ready. I will follow your tips.

3 Likes