Home Community Blog Buy Now
Blog

Misty Community Forum

StartKeyPhraseRecognition doesn't work for .NET SDK - Mothod not FOUND!

Hi Johnathan, I’m using the StartKeyPhraseRecognition as part of my new .NET skill. I found it failed to start a skill due to this command. I verified with the existing sample skills with the same failing result. I check for the extension update and didn’t see any new one and notes. Below here is the log file info for a sample using the same function with failure. Please help to check and let me know the solution. By the way, the time stamped in the log message is off by 5 hrs from the file timestamped in the log folder which is the right time.

Thanks,

Phillip

New Skill Test Run #9 => 12/15/19 08:01:45.862 PM => Skill ‘InteractiveMistySkill’ connected to robot using RobotMessenger adapter
New Skill Test Run #9 => 12/15/19 08:01:45.918 PM => RobotMessenger : Connecting to robot system events
New Skill Test Run #9 => 12/15/19 08:02:15.235 PM => AppServiceMessageManager - appservice connection established with the robot, registering for messages.
New Skill Test Run #9 => 12/15/19 08:02:15.282 PM => Skill ‘InteractiveMistySkill’ connected to robot using RobotMessenger adapter
New Skill Test Run #9 => 12/15/19 08:02:15.283 PM => RobotMessenger : Connecting to robot system events
New Skill Test Run #9 => 12/15/19 08:02:15.744 PM => MistySkill : ProcessStartSkill called for ‘InteractiveMistySkill’
New Skill Test Run #9 => 12/15/19 08:02:15.880 PM => Starting skill cancellation timer for ‘InteractiveMistySkill’ for 300 seconds.
New Skill Test Run #9 => 12/15/19 08:02:15.902 PM => Failed to start skill.
==> Exception: System.MissingMethodException: Method not found: ‘Void MistyRobotics.SDK.Messengers.IRobotMessenger.StartKeyPhraseRecognition(MistyRobotics.SDK.Messengers.ProcessCommandResponse)’.
at SkillLibrary.InteractiveMistySkill.OnStart(Object sender, IDictionary2 parameters) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at SkillLibrary.InteractiveMistySkill.OnStart(Object sender, IDictionary2 parameters)
at System.EventHandler1.Invoke(Object sender, TEventArgs e) at MistyRobotics.SDK.Messengers.RobotMessenger.ProcessStartSkill(Object sender, IDictionary2 parameters)
New Skill Test Run #9 => 12/15/19 08:03:12.636 PM => MistySkill : Starting cancellation of skill ‘InteractiveMistySkill’
New Skill Test Run #9 => 12/15/19 08:03:12.709 PM => InteractiveMistySkill : OnCancel called
New Skill Test Run #9 => 12/15/19 08:03:14.766 PM => Shutdown task called - completing task deferral and shutting down ‘InteractiveMistySkill’.
New Skill Test Run #9 => 12/15/19 08:03:14.819 PM => Request timed out while attempting to send message type StopFaceRecognition or process its response. Skill may be shutting down
New Skill Test Run #9 => 12/15/19 08:03:14.944 PM => Request timed out while attempting to send message type StopKeyPhraseRecognition or process its response. Skill may be shutting down
New Skill Test Run #9 => 12/15/19 08:03:14.961 PM => Request timed out while attempting to send message type ChangeLED or process its response. Skill may be shutting down

Thanks, @phillip.vinhha. We expected a few issues like this to come up with the beta nature of the SDK. Appreciate you raising it to our attention so we can get it fixed! We’ll keep you updated here as more information is available.

@phillip.vinhha, would you be willing to share the code from .cs file for the skill in which you encountered this issue? It could help us get at the root cause a bit more quickly. You can copy and paste the code into a .txt file and attach it to an email to support@mistyrobotics.com.

In case this is helpful, I’ve just successfully tested the following in a C# skill using a robot on the current public release (Misty changes her LED to green when she hears the wake word):

// Use this in your OnStart method:
_misty.StartKeyPhraseRecognition(null);
_misty.RegisterKeyPhraseRecognizedEvent(10, false, "KeyPhrase", null);
_misty.KeyPhraseRecognizedEventReceived += ProcessKeyPhraseEvent;
// Define this helper function elsewhere in your skill code
public void ProcessKeyPhraseEvent(object sender, IKeyPhraseRecognizedEvent keyPhraseRecognizedEvent)
{
     _misty.ChangeLED(0, 255, 0, null);}

That said, we’re releasing changes to Misty’s wake word functionality with tomorrow’s release, and I wouldn’t be surprised to learn that some of the changes introduced in preparation for that update have interfered with your implementation of the command.

Hi Johnathan,

Sure, can share the code with you. I just saw an update process completed. I’ll check again and send to you. I’ll also share the new sill today.

Thanks,

Phillip

1 Like

Hi Johnathan,

I still got the same error although I got the latest update for my robot with the version of V1.8.4.10075.

Here is the link to the complete project from my GitHub repo.

I temporarily commented out the use of the “KeyPhrase” voice recognition setup commands in this project. This skill program is initiated by the sequencer and run the skill per design for.
The full program for the “TellingJokeSkill” consists of new audio files and custom skill program solution. You can clone and recompile to run on your setup. I’m creating a video file for YouTube and will send you a link.

Thanks,

Phillip

Thanks, @phillip.vinhha! We’ll dig into this and I’ll get back to you when there’s more information to share.