Home Community Blog Buy Now

Misty Community Forum

2019.12.17 - StartKeyPhraseRecognition (Breaking) Changes

Misty’s 2019-12-17T07:00:00Z system update will give developers the ability to capture speech recordings for use with third-party services like Dialogflow. These changes include a new command for capturing speech, as well as a new event type that triggers each time Misty creates a new voice recording.

Additionally, Misty’s StartKeyPhraseRecognition command will be updated with parameters you can use to configure speech recording to begin immediately after wake word detection occurs, so that you don’t have to issue a separate command to start recording speech. The default configuration for this command will be such that Misty will immediately attempt to capture a speech recording when she detects the wake word; however, you can modify this behavior with the new optional parameters for this command.

The new syntax for the misty.StartKeyPhraseRecognition() method in Misty’s JavaScript API is planned to be:

misty.StartKeyPhraseRecognition([bool captureSpeech], [bool overwriteExisting], [int maxSpeechLength], [int silenceTimeout], [string callback], [string callbackRule], [string skillToCall], [int prePause], [int postPause])

The new parameters are planned to include:

  • CaptureSpeech (bool) - If true, Misty starts recording speech after recognizing the “Hey, Misty” key phrase. Defaults to true.
  • OverwriteExisting (bool) - If true, the captured speech recording overwrites any existing speech recordings saved under the default filename. If false, Misty saves the speech recording under a unique, timestamped filename. Defaults to true.
  • MaxSpeechLength (int) - The maximum duration (in milliseconds) of the speech recording. If the length of an utterance exceeds this duration, Misty stops recording after the duration has elapsed, and the system triggers an event with a message that Misty did not detect the end of the recorded speech. Defaults to 7500.
  • SilenceTimeout (int) - The maximum duration (in milliseconds) of silence that can precede speech before the speech capture mechanism times out. If Misty does not detect speech before the SilenceTimeout duration elapses, she stops listening for speech and triggers a VoiceRecord event with a message that she did not detect the beginning of speech. Defaults to 5000.

These parameters will also be available in the implementations of this command available to Misty’s REST API and .NET SDK.

1 Like

@cameron - I know you’ve got a conversation skill that may be affected by these changes :wink:

7 posts were split to a new topic: Speech Recognition & Database Questions

Hi Jonathan,

After a series of automatic updates, my Misty starts to behave unpredictable with her StartKeyPhraseRecognition. I did not run her skills or activate StartKeyPhraseRecognition, but suddenly, Misty got into the listening mode and flashing her lovely blue light, then she recorded whatever was going on.

More interestingly, I did not say “Hey Misty” and there was no other key phrases in my system, still Misty activated StartKeyPhraseRecognition autonomously. Once, I was just singing to my cat and Misty’s StartKeyPhraseRecognition switched on. My cat was scared and ran away. How strange!

It has been happening quite often recently. I don’t want people to perceive Misty as a cute digital spy.

Is there a way to make Misty’s StartKeyPhraseRecognition more predictable? I am not sure how to implement “I told you not to do that” in Misty. For me, Misty should be a friendly bot who behaves nicely.

Many thanks.

Best regards,