Author Topic: VoxCommando Version 0.875 official release is finally here!  (Read 18248 times)

0 Members and 1 Guest are viewing this topic.

Wanilton

  • $upporter
  • Hero Member
  • *****
  • Posts: 559
  • Karma: 6
    • View Profile
    • XBMC Brazil Forum
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #15 on: March 02, 2011, 05:17:29 PM »
Import this commands, test Command Cinema Plus, triggered by "cinema plus + name of the movie", the answear 2 tts returns, one tts each command,  ie 1 TTS.Speak Cinema Experience home +  1 TTS.Speak Cinema Plus message.

My conclusion was that if we have the presence of a single event, in this case XBMC.CELaunch in many others commands, all actions planned in all commands, will be executed regardless of the command called, which I think is not correct, vox should respect and perform only returns actions for the command that I called lastly, based course at the event, but isolating the action for the command sent.
« Last Edit: March 02, 2011, 05:22:50 PM by Wanilton »
www.xbmcbrasil.net
XBMC  Brazilian Community Forum - Admin
Windows 8.1 - XBMC Gotham Custom Plus - Aeon MQ 5
My Room Entertaiment´s
About me

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #16 on: March 02, 2011, 05:32:32 PM »
The whole point of an event is that they are not triggered by a voice command, but by something external!  The event will be triggered even if you queue the movie using your remote control.  This is what we want.

If you want something triggered by a voice command, just put it in the voice command. You don't need an event in that situation.

If you are getting TTS twice on an event, simply delete one of your commands that is using that event.  Why do you have two?

The one change that I will probably make, is to make commands triggered by events only active if they are in a group that is Enabled.  Currently they will be triggered, even if the group they are in is Disabled.

painy

  • $upporter
  • Sr. Member
  • *****
  • Posts: 103
  • Karma: 1
    • View Profile
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #17 on: March 03, 2011, 02:50:34 PM »
Great job on the tutorial, really helpful :)
Found a little bug: When i rightclick edit properties in the tree editor. i get a "unhandled exeption has occured in your application" error. Doesn't crash VC though.

Also a question, I managed to create an event that disables my Medamonkey commands when XBMC is focused, but I don't know how to enable them again when XBMC defocuses. Does such an event exist? The reason why I want this is because when I talk dutch (my mother language), the voice recognition engine flips out, and hears al sorts of english commands set in VC ow (despite using prefix mode, and the two languages don't sound alike). This causes a lot of false positives and my MM often starts playing when I'm talking to someone while watching a movie in XBMC.
Is there anyone else who has this problem? or is it mainly my cheap microphone that's causing this.
A potential way around this would be an event that triggers VC.off/disable groups while in listen or standby mode if VC hears like 10 consecutive commands with accuracy levels lower than the set 'required confidence'. Could this be done?

Another question: Is there an event that recognises hotkeys? I ask this because i have a remote app on my smartphone that can trigger commands. I'd like to assign a button in the app to turn on/off VC. I don't know how to do this directly, but i know that the app can emulate keyboard hotkeys (like CTRL ALT A or something) and I could use that if VC would be able to recognise this.

And an idea. There are a few smartphone remote control apps. For example Gremote This program has integrated accelerometer functions. I bet the creator could easily build in an option that emulates the amulet controller(tilting your smartphone to turn on and off VC). And maybe even utilise the smartphone's mic (like you did with you ipod touch) to run voice commmands.
If you think this would be a good idea, I could try and sent the creator an email and asks how he feels about doing that if you'd like.

Greets

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #18 on: March 03, 2011, 03:17:20 PM »
Found a little bug: When i rightclick edit properties in the tree editor. i get a "unhandled exeption has occured in your application" error. Doesn't crash VC though.

Can you please provide more information on this.  I don't get this error when I right-click a group and select "Edit Properties"
- What are your various language settings (overriding display language in VC options?)
- OS language?
- What are you right-clicking?  A group?  Does it happen with every group, or just one?
- Is it possible to copy and paste the actual error code here?

Also a question, I managed to create an event that disables my Medamonkey commands when XBMC is focused, but I don't know how to enable them again when XBMC defocuses. Does such an event exist? The reason why I want this is because when I talk dutch (my mother language), the voice recognition engine flips out, and hears al sorts of english commands set in VC ow (despite using prefix mode, and the two languages don't sound alike). This causes a lot of false positives and my MM often starts playing when I'm talking to someone while watching a movie in XBMC.
Is there anyone else who has this problem? or is it mainly my cheap microphone that's causing this.
A potential way around this would be an event that triggers VC.off/disable groups while in listen or standby mode if VC hears like 10 consecutive commands with accuracy levels lower than the set 'required confidence'. Could this be done?

Another question: Is there an event that recognises hotkeys? I ask this because i have a remote app on my smartphone that can trigger commands. I'd like to assign a button in the app to turn on/off VC. I don't know how to do this directly, but i know that the app can emulate keyboard hotkeys (like CTRL ALT A or something) and I could use that if VC would be able to recognise this.

And an idea. There are a few smartphone remote control apps. For example Gremote This program has integrated accelerometer functions. I bet the creator could easily build in an option that emulates the amulet controller(tilting your smartphone to turn on and off VC). And maybe even utilise the smartphone's mic (like you did with you ipod touch) to run voice commmands.
If you think this would be a good idea, I could try and sent the creator an email and asks how he feels about doing that if you'd like.

Greets

What are you using as your prefix?  I don't think the problem is a cheap microphone necessarily, but maybe it is just picking up too much.  I personally don't use Vox where it is always listening.  Even with prefix mode I didn't find it very practical.

There is no global keypress function in VC and I don't much like the idea of adding one, though it is probably a possibility.  You can easily set this up using eventGhost.  Any program can send events to VC using simple UDP broadcasts, so yeah, if you want to get that integrated into some remote apps that could be cool.  If they are interested I can provide the string that needs to be sent.

You can trigger events in VC using a command line program.  Would that help?  Which remote app are you using on your smartphone?

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #19 on: March 03, 2011, 03:27:50 PM »
Quote
Also a question, I managed to create an event that disables my Medamonkey commands when XBMC is focused, but I don't know how to enable them again when XBMC defocuses. Does such an event exist?

Actually, ya, I had intended to create a defocus event and then I forgot!  I will put this in the next version.

I will add this.  Currently you can only turn MediaMonkey back on using various focus events for other programs, which is obviously not ideal.

You can also set a process in the group properties (well I can, apparently you can't because it will crash) so that the group will only be enabled when that process is active.  I was thinking it would be nice to be able to set an anti-process in here instead.  You could specify an anti process by preceding the process name with an '!'.  This is another thing I have been intending to get around to...

painy

  • $upporter
  • Sr. Member
  • *****
  • Posts: 103
  • Karma: 1
    • View Profile
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #20 on: March 03, 2011, 04:36:33 PM »
Can you please provide more information on this.  I don't get this error when I right-click a group and select "Edit Properties"
- What are your various language settings (overriding display language in VC options?)
- OS language?
- What are you right-clicking?  A group?  Does it happen with every group, or just one?
- Is it possible to copy and paste the actual error code here?

Everything is set to default (english), OS is english.
When I drag an event to the tree, and I rightclick the event and press edit properties, i get the error.
And I just noticed that the edit properties option in the right click menu only appears on events that i dragged from the history tab, and not the ones I add manually.

Error code:

Object reference not set to an instance of an object

Code: [Select]
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at VoxCommando.CommandTreeEditor.editPropertiesToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.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)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4952 (win7RTMGDR.050727-4900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
VoxCommando
    Assembly Version: 0.8.7.5
    Win32 Version: 0.8.7.5
    CodeBase: file:///C:/Users/Stijn/Downloads/Voxcommando/VoxCommando.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Interop.SpeechLib
    Assembly Version: 5.4.0.0
    Win32 Version: 5.4.0.0
    CodeBase: file:///C:/Users/Stijn/Downloads/Voxcommando/Interop.SpeechLib.DLL
----------------------------------------
CoreAudioApi
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.0.0
    CodeBase: file:///C:/Users/Stijn/Downloads/Voxcommando/CoreAudioApi.DLL
----------------------------------------
System.Speech
    Assembly Version: 3.0.0.0
    Win32 Version: 3.0.6920.1109 (lh_tools_devdiv_wpf.071009-1109)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Speech/3.0.0.0__31bf3856ad364e35/System.Speech.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Interop.iTunesLib
    Assembly Version: 1.13.0.0
    Win32 Version: 1.13.0.0
    CodeBase: file:///C:/Users/Stijn/Downloads/Voxcommando/Interop.iTunesLib.DLL
----------------------------------------
System.Management
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Management/2.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
Accessibility
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
InputSimulator
    Assembly Version: 0.1.0.0
    Win32 Version: 0.1.0.0
    CodeBase: file:///C:/Users/Stijn/Downloads/Voxcommando/InputSimulator.DLL
----------------------------------------
Interop.SongsDB
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Stijn/Downloads/Voxcommando/Interop.SongsDB.DLL
----------------------------------------



Quote
What are you using as your prefix?  I don't think the problem is a cheap microphone necessarily, but maybe it is just picking up too much.  I personally don't use Vox where it is always listening.  Even with prefix mode I didn't find it very practical.

My prefix words are computer and monkey for medamonkey. I don't think altering these would help much, as talking dutch can even activate commands like "monkey what artist is this" when i never said anything remotely similar.
I don't see any other option then using prefix mode. I don't have the amulet remote, or any other real remote, and I usually have music running when using VC. If i am to exit stand by mode, VC immediately picks up various words from my music/movie and hears them as commands like play/pause.  

Quote
There is no global keypress function in VC and I don't much like the idea of adding one, though it is probably a possibility.  You can easily set this up using eventGhost.  Any program can send events to VC using simple UDP broadcasts, so yeah, if you want to get that integrated into some remote apps that could be cool.  If they are interested I can provide the string that needs to be sent.

You can trigger events in VC using a command line program.  Would that help?  Which remote app are you using on your smartphone?

That would be the Gremote app specified in my post above

Quote
Actually, ya, I had intended to create a defocus event and then I forgot!  I will put this in the next version.

I will add this.  Currently you can only turn MediaMonkey back on using various focus events for other programs, which is obviously not ideal.

You can also set a process in the group properties (well I can, apparently you can't because it will crash) so that the group will only be enabled when that process is active.  I was thinking it would be nice to be able to set an anti-process in here instead.  You could specify an anti process by preceding the process name with an '!'.  This is another thing I have been intending to get around to...

Sounds like a plan :D
I don't have problem editing groups btw, only single dragged events
« Last Edit: March 03, 2011, 06:10:40 PM by painy »

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #21 on: March 03, 2011, 05:01:15 PM »
OK thanks.  Now I know what is wrong.  Events do not have properties.  But I forgot to set the context menu when an event is dragged in so you are probably seeing the context menu for Groups.  Thank-You!

btw - I already got a test for Unfocused events working so you will have them soon!  (maybe tomorrow)

I'm not sure what the best way to deal with the Gremote challenge is.  It seems to work only for Android and I only have an iPod Touch here.  Are you able to direct a keypress to a particular program, or will it just be sent to whatever has focus? Are you able to customize your gremote to do other things like send a program a "message" or to send udp broadcasts, or to run a program?

painy

  • $upporter
  • Sr. Member
  • *****
  • Posts: 103
  • Karma: 1
    • View Profile
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #22 on: March 03, 2011, 05:34:47 PM »
Quote
I'm not sure what the best way to deal with the Gremote challenge is.  It seems to work only for Android and I only have an iPod Touch here.  Are you able to direct a keypress to a particular program, or will it just be sent to whatever has focus? Are you able to customize your gremote to do other things like send a program a "message" or to send udp broadcasts, or to run a program?

I'm afraid it's all pretty closed. Although it is able to send controls to certain programs (like winamp and WMP), it is limited to these two programs, and the controls you can choose from are predefined. Other programs (like XBMC) are controlled via keyboard emulation or hotkeys. The keyboard emulation is send to the program that has focus. It's also able to run custom programs and you can set the parameter.


jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #23 on: March 03, 2011, 05:48:54 PM »
Maybe you can get them to add something, but in the mean time you can try this.  If it can execute a program then use the attached and call it like this to generate your own events.

udpsender.exe 33000 "event&&mode.on"
udpsender.exe 33000 "event&&mode.off"
udpsender.exe 33000 "event&&mode.standby"

or if you want you can call actions directly like this.

udpsender.exe 33000 "Vc.On"
udpsender.exe 33000 "Vc.Off"
udpsender.exe 33000 "Vc.Standby"

by the way the 33000 is the port that VoxCommando listens on.  It can be set in options but best to leave it at the default if possible.
BEHOLD THE POWER OF THE VOX!

the UDPSender.exe is available on the download page as part of the "Extra utilities" zip file.
http://voxcommando.com/home/downloads/
« Last Edit: January 03, 2016, 12:03:26 PM by jitterjames »

painy

  • $upporter
  • Sr. Member
  • *****
  • Posts: 103
  • Karma: 1
    • View Profile
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #24 on: March 03, 2011, 06:10:04 PM »
Your ability to adapt and survive in this software jungle never ceases to amaze me james  ;D
Is it possible to hide UPS sender when it launches? or at least keep it minimised?

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #25 on: March 03, 2011, 06:25:48 PM »
VC can launch programs hidden.  Since you are launching the udpsender from GREmote, it will depend on whether they offer a similar function.  My guess is no.

I don't think there is a way to control that visibility from the receiving end, because it is a command line utility so you will always get that windows commandline window unless the caller hides it.

Using a command line utility is obviously not ideal, and can sometimes be a bit slow to respond.  It would be better if GREmote could send udp, or a windows message.

painy

  • $upporter
  • Sr. Member
  • *****
  • Posts: 103
  • Karma: 1
    • View Profile
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #26 on: March 03, 2011, 06:32:59 PM »
Ok :(
How can I trigger a group or an event with udp sender (like say 33000 "Vc.Triggerevent.testevent")?
I'll ask around on their forum.

Thx a lot :)

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #27 on: March 03, 2011, 06:46:44 PM »
I'm not really sure what you are asking, since I just told you how to do exactly that.

udpsender.exe 33000 "event&&testevent"

painy

  • $upporter
  • Sr. Member
  • *****
  • Posts: 103
  • Karma: 1
    • View Profile
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #28 on: March 03, 2011, 07:29:33 PM »
Do'h
I was wondering what the difference was between "event&&mode.on" and Vc.On" but now i know
Works like a charm!
Thanks james :)

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7713
  • Karma: 116
    • View Profile
    • VoxCommando
Re: VoxCommando Version 0.875 official release is finally here!
« Reply #29 on: March 03, 2011, 09:11:25 PM »
cool :)

I should probably mention that the udp strings:

event&&testevent
and
Vc.Triggerevent.testevent

will ultimately do the same thing, but the first is faster / more efficient because it fires the event directly from the udp listener.  The 2nd has to create a dummy command and then send it off to the action processor where it will determine what kind of action you are calling.  Both will be pretty much instant, but faster is still better.

also, you could directly call

VC.DisableGroup* or VC.EnableGroup* in your udp command if you want, instead of firing an event, but if you want to do more than one action at a time (macro), it makes more sense to use an event, I think.