1. To prevent many of the listener "dead state" (avoiding unwanted exceptions to break the loop)
2. Wake up must work for both "mycroft wake up" and "wake up mycroft"
3. To ensure "mycroft" keyword is always detected when it exists
4. To rely on "mycroft" instead of "hey mycroft"
5. To process "ok", "okay" and "allright" as part of the wake word detection
Some of the possible test cases:
1. wake up mycroft with: "mycroft wake up" and "wake up mycroft"
- it must wake up no matter the position of the "wake up" keyword
- it must always say it's awake at the first time (before, it'd only say it the second time you try to wake up)
2. try "okay mycroft, what's the weather in lawrence" and similar requests with "alright"
- this ensures we ignore "okay" and "alright" on the sentence
3. "mycroft" keyword should be detected as much as possible even if the sentence does not trigger a real skill/action
- that means the wake word detection is working
4. try all of those from close distance to the unit
- this ensures the changes are working
5. try all of those from a far distance to the unit
- to test the auto gain mic (for those who have one)