Jump to content

X360 KINECT™ Remote Control (new TestingThread)


chef

Recommended Posts

chef

@@Cynful, I think I have to update the API Libraries from Media Browser. I think the newest version of the Server requires some updated DLL.

 

Do you actually see the "User Buttons" after you select a culture,

 

or does the app break before you see the user buttons on the screen.

Edited by chef
Link to comment
Share on other sites

trooper11

The current rumors floating around regarding the next version of Windows say that Cortana has been spotted running on it.  MS has made it clear they intended to bring Cortana to their other platforms, but this is the first sighting of it in Windows.

 

I bring this up because I really hope that the APIs for tapping into Cortana make it useful for a program like this one to leverage.  On WP, the apis are open to 3rd party developers to leverage in their own apps, so I would assume the same will apply to Windows. 

 

If chef has access to a service like Cortana, I can only imagine how much more could be done control wise without as much effort as is required currently.

  • Like 1
Link to comment
Share on other sites

Cynful

Hey @@chef.

 

The application breaks after I choose the user not before.

 

Hope that helps somewhat.

  • Like 1
Link to comment
Share on other sites

chef

The current rumors floating around regarding the next version of Windows say that Cortana has been spotted running on it.  MS has made it clear they intended to bring Cortana to their other platforms, but this is the first sighting of it in Windows.

 

I bring this up because I really hope that the APIs for tapping into Cortana make it useful for a program like this one to leverage.  On WP, the apis are open to 3rd party developers to leverage in their own apps, so I would assume the same will apply to Windows. 

 

If chef has access to a service like Cortana, I can only imagine how much more could be done control wise without as much effort as is required currently.

 

You mean like the Master Chiefs Cortana!?! that woud be interesting.  Mostly I find that the Kinect V1 (x360) seems to be a resource hog. I can only speculate that the new version 2.0 is probably even more so, because of it's higher resolution camera.

 

I have come up with a couple neat tricks to keep the resources down when using things like skeleton and colour streams, which use high Processor cycles.

 

For instance,  I use a variable which collects all the data from the stream, and then I use a timer to choose a frame. I can then take my time processing the fame, and collecting information about it.

 

For example, who's face is in the frame.

 

This still takes quite a bit of resources to do. So it is imparitive to keep the taxing processes on for short periods of time.

 

Luckily for us the Speech Recognition (when it works.... lol) is not taxing at all.

  • Like 1
Link to comment
Share on other sites

chef

Hey @@chef.

 

The application breaks after I choose the user not before.

 

Hope that helps somewhat.

 

 

I know where the error is from now.

 

Thanks man,.

Link to comment
Share on other sites

trooper11

Here is some further news about the launch and the SDK 2.0 release:

 

http://blogs.msdn.com/b/kinectforwindows/archive/2014/07/15/the-kinect-for-windows-v2-sensor-and-free-sdk-preview-are-here.aspx

 

I'm not sure how much of that is useful for this application, but who knows.

 

 

You mean like the Master Chiefs Cortana!?! that woud be interesting.  Mostly I find that the Kinect V1 (x360) seems to be a resource hog. I can only speculate that the new version 2.0 is probably even more so, because of it's higher resolution camera.

 

 

Well there is hope regarding performance since Kinect 2.0 has built-in resources that the first Kinect did not.  That might result in less reliance on the pc for performance, but we will see. 

  • Like 1
Link to comment
Share on other sites

chef

Hey Guys!  I spent most of this week researching the code, trying to explain the NULL object in the Speech Training Page when you first start the app.

 

I dumbed down the code quite substantially and went through line by line making sure that each object created was filled with proper parameters and then logging it.

 

There are two times I requested User Information on that page from the server.  I went through and made sure that whatever User Information was requested the first time was kept, and then sorted a second time.

 

This stopped the second call to the server, and also may stop issues.

 

The only other thing that could have been causing this error was starting the Speech Training Process.

 

There are things to consider when starting this external process. For instance, Is the proper User loaded into the Speech Training session in Windows.

 

Because this user is created based on Media Browser User Infomation, it was hard to trace back where the training information was being saved to, and if indeed it was being attached to the proper user.

 

I have added logging events to make sure that these traces are leading back to the proper loaded profile. In most cases they are.

 

There were a couple other things I had come across this week regarding SPeech Recognition, the Kinect, and Media Browser, which i really think need to be noted at this point:

 

  1. If you had loaded prior version of MBKinect for testing, you currently have an "English -US" Recognizer loaded even if your have choosen you default Recognizer to be something like "Great Britian - English". 

This is because originally the "Culture Code" was was added to the Windows Registry for "en-US".

I hadn't figured out culture codes during the initial programming of the code, and therefore, is probably the leading cause of mis-recognition with people who don't have

"en-US" accents or something close to it.

 

This can be fixed! But will need to be programmed into First Run. It hasn't yet.

 

        2. Sadly, the X360 KINECT is where this version of the MBkinect application will end.  Inorder to run Verison 2 of the KINECT Sensor, you'll have to be running Windows 8.

This is means that not only will you have to purches a Sensor for your PC @ $299.00 US, but you'll have to upgrade to Windows 8, which is also expensive.

 

I currently will not be able to upgrade my system to deal with the Version 2 Sensor, and therefore will only be coding for the X360 Sensor. I do apologize to anyone who had there hopes up to move forward, but it just isn't financally fesible for me to do so.

 

I have read some great head way has been made towards XBOX One application of Media Browser, so if you choose to use the Version 2 Sensor, that is the direction you'll have to go. It will probably be really amazing.

 

I personally really enjoy my MBC, and I will continue to struggle towards a decent Speech recogniton Application for my Windows Seven PC and MBC, using Gen 1 Kinect Sensors.

 

I just try to keep in mind that as the Version 2 Sensors become used more, the Generation 1 sensors can be purches second hand cheaper.

There ability is quite impressive, and they are still a great option, at a low price.

 

 

I'll post a new version build of the Kinect app tonight, which should at least log everything that happens during some of the problematic areas of the app so far.

 

Lookin forward to it!

  • Like 1
Link to comment
Share on other sites

trooper11

No problem chef, I understand why you would stick with the current hardware.  I'm happy to keep using it and not upgrade my hardware.  Maybe the hardware will get cheaper over time and you can look at it again.

 

Plus, if the rumors about a cheap or free upgrade to Windows 9 from 7 or 8 comes true, then maybe the whole platform is cheap enough to invest in at that point.

 

One small correction though, Kinect v2 is $199, not $299. 

  • Like 1
Link to comment
Share on other sites

chef

@@Cynful, or @@travelmanics

 

The reason I ask you guys this, is because you are from other countries than U.S. or Canada

 

Before this next test release. I was wondering if you had time to look at something quickly in the Windows Speech registry?

 

But first you would have to create a test profile for speech recognition as follows:

 

 

  1. Open Control Panel
  2. Select "Ease of Access"
  3. Select Speech recognition
  4. On the left side panel, select "Advanced Speech Options"

Speech Properties Window will then open

 

     5. Select the "New" Button under "Recognition Profiles"

     6. Name the New Profile "Test"

 

 

Open "Regedit.exe" > Open "HKEY_CURRENT_USER"

                                > Open "Software"

                                > Open "Microsoft"

                                > Open "Speech"

                                > Open "RecoProfiles"

                                > Open "Tokens"

 

 

Okay, under "Tokens" you will find registry entries for each Profile created in windows for speech recognition.  You will probably notice the keys that MBKinect creates that corresponds to Media Browser.

 

However, we are really interested in the one entry that has a "Data" Value of "Test" . This is the one you guys just created.

 

 

TestRegistry.png

 

 

Notice in the image above, There is a default Value, and then there is a Numeric Value under name "409"

 

Could you please tell me what yous says instead of 409. I just want to make sure this is were the Speech recognizer Culture info is really stored.

 

Thanks so much. This may fix everything.,

Link to comment
Share on other sites

Cynful

@@chef

 

Test Profile has (default) and 409 here in Australia with English-UK selected as Language ...

 

MediaBrowserKinect created profile has (default), 409, and 809 ..

Edited by Cynful
Link to comment
Share on other sites

chef

@@chef

 

Test Profile has (default) and 409 here in Australia with English-UK selected as Language ...

 

MediaBrowserKinect created profile has (default), 409, and 809 ..

Damn, 809 is the number for UK English. I was really expecting the test profile to have this number. 409 is US English.

 

@@Cynful say you were to trIn the test profile from the speech recognition properties page where you created it from.

 

Does the number change afterwards to 809

Edited by chef
Link to comment
Share on other sites

travelmanics

Hi @@chef,

 

Language is set to English-UK

 

I have just checked on my 64 bit machine using an old version 2 versions ago i.e. when this new thread was created.  Created the test profile and and registry is showing 409 value.  My main profile travelmanics is also showing 409 value.

 

Deleted the test profile and installed the latest version of Kinect.  ran through speech training etc.  Created the test profile and checked the registry, which again is showing 409 value.

 

My profile however, now has 3 entries:

 

1.) default

2.) 409

3.) 809

 

Speech does now appear to be working though in Media Browser Classic.

Link to comment
Share on other sites

Sean Forester

Hi Chef,

 

Newest version works for me until after selecting culture. Then it just "users is nothing" and crashes.

 

 

Sent from my iPad using Tapatalk

Link to comment
Share on other sites

chef

@@travelmanics  can you confirm, that with the latest version you are able to browse your media in MBC.

 

@@Sean Forester Okay the NULL object that people were experiencing was with users. thank you! This has been fixed in a new release that I will post. I had thought that that was the issue, but could be certain. This does in fact confirm what I speculated.

Edited by chef
Link to comment
Share on other sites

Cynful

Damn, 809 is the number for UK English. I was really expecting the test profile to have this number. 409 is US English.

 

Cynful say you were to trIn the test profile from the speech recognition properties page where you created it from.

 

Does the number change afterwards to 809

 

Trained the profile Chef. No change to the registry in terms of number. 409 still sitting there looking at me smugly ... little twerp ...

 

Cyn

  • Like 1
Link to comment
Share on other sites

travelmanics

@@chef

 

Yes I can confirm that LEDs are installing correctly and I am able to control my media with MBC. not tried media MBT yet though. The only thing I cannot do is say GO TO MAIN MENU. It maybe this is is not implemented yet but would be a good feature otherwise there is no way to go back up a level without using the remote

 

Regards

  • Like 1
Link to comment
Share on other sites

chef

@@travelmanics use the phrase: "go to the main menu"

I haven't had very good response when trying the app with the theatre. Mostly because it is set up differently. The main page doesn't build libraries, it builds channels. I will have to implement this. If all goes well, I will. Mb plus uses this same structure, so it is inevitable.


@@Cynful delete the user speech profile from windows.

If you are not sure how to do this. You can either delete the registry key which is found under the "tokens" key (the one you are looking at with the "409" value in it), or you can delete it from the speech properties page under advanced speech properties.

Once the profile is removed from windows. Restart MBKinect and it will create the proper user profile.

 I have a new version (ready to go) which puts a "hot fix" during first run which should put everyone's registry into the proper speech culture mode.

 

I also think I have minimized room for error in the First Run Speech Training Page.

Should be able to post later today.

Edited by chef
Link to comment
Share on other sites

Cynful

@@chef

 

Deleted speech Profiles.

Re-ran MBKinect

Trained Once

Perfect Install

 

Set Designation "Media"

 

Media - Green Light

Start Listening - Active

 

Go to The Main Menu - WORKS

 

Go to Television - WORKS

 

Go to *Television Show* - Works

 

Go to The Main Menu - WORKS!!!

 

Go to Movies - ... ... Show me Movies - ...

 

Maybe I just need to train the profile more... will get back to you on that.

 

Do you have a documentation file on speech commands attached to MBKinect? I could only ascertain the ones in the Grammar/Libraries.xml file

 

By the way ... YAY!!!!!!!!

Edited by Cynful
  • Like 1
Link to comment
Share on other sites

chef

Great! This is very very exciting! I will compose a list of commands. We should also get some ideas floating around for some new commands we can use.

 

Also, I found the NULL object error in speech training during first run.

 

Get this!

 

There was a request to the server to report all User Names. Once that request was sent out, if you used the drop down list to select the culture information before the User Names had returned from the Server, then the Users variable would be empty and hence throw the NULL error!

 

Asynchronous programming is so finicky!

 

It would seem looking at the code, that thee would be no reason for a NULL object.

 

I fixed this by hiding the drop down list until the server returned all the user information. Once the variable is filled, the drop down list appears.

 

This happens in seconds.

 

Things are moving along.

  • Like 1
Link to comment
Share on other sites

chef

so is it ready for me to try again?

Almost, I just have to post the version.

Link to comment
Share on other sites

Cynful

@@chef

 

2.6.55 install without deleting speech profile

 

Install & First Run perfect

No voice recognition

 

Delete all and delete speech profile for clean slate

 

Install

First Run

LED - loaded

Speech Training Profile - select culture UK

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Core.FirstRunSpeechProfileTraining.HotFixCultureHEXInSpeechRegistry(String ProperLCID)
   at Core.FirstRunSpeechProfileTraining.SpeechCultureItemsDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
   at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
   at System.Windows.Forms.ComboBox.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Select culture - US

 

Same result

 

Install broken - Damnit

 

LOG:
26/07/2014 2:44:08 PM BEGIN LOG

 ENVIRONMENT:
26/07/2014 2:44:08 PM - Operating System is Microsoft Windows NT 6.1.7600.0
26/07/2014 2:44:08 PM - 64bit Environment is False
26/07/2014 2:44:08 PM - Microsoft Kinect for Windows Device Driver Version:'1.6.0.476'

26/07/2014 2:44:09 PM: Success Microsoft.Kinect.KinectSensor Connected
26/07/2014 2:44:09 PM: 0 Core.MediaBrowserClientFactory: Openning Application Settings XML
26/07/2014 2:44:09 PM: Success Core.MediaBrowserClientFactory:  Protocol Address Saved - 10.1.1.3
26/07/2014 2:44:09 PM: Success Core.MediaBrowserClientFactory:  Port Address Saved - 8096
26/07/2014 2:44:09 PM: Success Core.MediaBrowserClientFactory:  All Application Settings Nodes Exist
26/07/2014 2:44:09 PM: 0 Core.BeginFirstRunSetup, Text: Form1: Checking pre-installed Kinect USB Device Filters
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1: libusb-win32 installer (v1.2.6.0)
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1: stopping libusbd service..
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1: deleting libusbd service..
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1: removing device upper filter VID_045E&PID_02B0&REV_0107..
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1:
26/07/2014 2:44:10 PM: 0 Core.BeginFirstRunSetup, Text: Form1: restarting device VID_045E&PID_02B0&REV_0107..
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1: libusb-win32 installer (v1.2.6.0)
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1: stopping devices..
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1: creating libusb0 service..
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1: starting devices..
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1: inserting device upper filter VID_045E&PID_02B0&REV_0107..
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1: restarting device VID_045E&PID_02B0&REV_0107..
26/07/2014 2:44:40 PM: 0 Core.KinectLEDConfiguration, Text: Form1:
26/07/2014 2:44:43 PM: 0 Core.FirstRunSpeechProfileTraining, Text: FirstRunSpeechProfileTraining: Checking Kinect Sensor Status...
26/07/2014 2:44:43 PM: Success Core.FirstRunSpeechProfileTraining, Text: FirstRunSpeechProfileTraining: Sensor is now Connected

 

Link to comment
Share on other sites

Cynful

Reloaded 2.6.54 - Training speech has let me navigate better. Though I still don't know most of the commands we have going. Can't open any television seasons as it doesn't seem to want to respond to the word season regardless of shouting at it...

 

 

 

Okay ... just realised saying "Season 1" on its own works :) Good old trial and error and shouting cusswords.

Edited by Cynful
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...