Author Topic: version 0.733 new features for XBMC users  (Read 7162 times)

0 Members and 1 Guest are viewing this topic.

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
version 0.733 new features for XBMC users
« on: July 11, 2010, 04:41:53 PM »
I'm trying to release this today (july 11th)

new features include:

- right click context menu on simple commands to execute command for testing purposes so you can work when the wife is sleeping  :D
- request music by artist name.  If it works for you, we can discuss how to make this more useful for everyone...
- ability to loop a finite number of times using the repeat command.  (actually this is not just for xbmc users - but will affect all commands)
format will be [repeat: delayinmillsecs: #timestoexecute]    example [repeat:200:3] would execute the command 3 times with a .2 second pause between each.

I will post this untested release in this thread.

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #1 on: July 11, 2010, 04:55:15 PM »
also got two new "magic" commands

repeat-faster  (reduces delay by 20%)
and
repeat-slower (increases delay by 25%)

so if you have a repeat comand looping every 1000 ms
and you use the command: repeat-slower (with whatever phrase)
the delay will change to 1250ms.
then using repeat-faster would change the delay to 1000ms.


Freddo

  • Jr. Member
  • **
  • Posts: 6
  • Karma: 0
    • View Profile
Re: version 0.733 new features for XBMC users
« Reply #2 on: July 11, 2010, 05:11:54 PM »
Awesome, can't wait!

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #3 on: July 11, 2010, 05:59:51 PM »
do you know if it is possible to clear the sms state?

if you say SMS delta - it goes to D

if you then say SMS echo- it it adds two to the current state and you end up at F !

or another example.

if you say SMS alpha you get A

if you say SMS alpha again you get B.

doh!

It works fine if you jump to a letter that is on a new key, but not if you try to jump from (a,b,or c) to (a,b,or c)

am I making sense?

anyway if we could clear first it would solve the problem...


Freddo: Did you ever try to disable UAC ?

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #4 on: July 11, 2010, 06:12:29 PM »
ok.  here's what I've got so far.  Currently you need to have xbmc running when you start VC in order for it to scan your artists.

Fingers Crossed...
« Last Edit: November 22, 2014, 01:42:34 PM by jitterjames »

Freddo

  • Jr. Member
  • **
  • Posts: 6
  • Karma: 0
    • View Profile
Re: version 0.733 new features for XBMC users
« Reply #5 on: July 11, 2010, 06:27:26 PM »
do you know if it is possible to clear the sms state? ...

It works fine if you jump to a letter that is on a new key, but not if you try to jump from (a,b,or c) to (a,b,or c)

am I making sense?

anyway if we could clear first it would solve the problem...

Freddo: Did you ever try to disable UAC ?

Thanks JJ, I've tried the new build and repeat works just like you described, and unfortunately no, I can't find a smsJump clear button, nor does it appear to time out at all, so thats a bit knackered still, might have to post again in the XBMC forums and see if we can get a straight up Jump(a-z) instead of SMSJump(2-9), that'd make all this much simpler.

In the meantime filterSMS DOES have a clear-filter command :

Code: [Select]
    <commandGroup name="XBMC Filter Controls">
        <command name="execbuiltin(Action(FilterClear))">
            <phrase>Clear</phrase>
    <phrase>This, That, The</phrase>
    <phrase>Filter</phrase>
        </command>
        <command name="execbuiltin(Action(filtersms6))">
            <phrase>Filter</phrase>
    <phrase optional="true">Letter</phrase>
            <phrase>Mike, M, Emm</phrase>
        </command>
    </commandGroup>

So that does now work awesomely. Thanks for all your hard work! I'll poke the XBMC devs tomorrow about getting straight up Jump(0-Z) , Filter (0-Z) and Search(0-Z) actions, which would simplify all this immensely.

Oh and no I didn't get time to check UAC, I will try it in future and report back though.

Freddo

  • Jr. Member
  • **
  • Posts: 6
  • Karma: 0
    • View Profile
Re: version 0.733 new features for XBMC users
« Reply #6 on: July 11, 2010, 06:33:06 PM »
Just thought I'd post this too, neat little application for limited repeats to hopefuly make general navigation (up, down left right etc) a little more...natural to use:

Code: [Select]
        <command name="[repeat:10:2]action(4)">
   <phrase optional="true">Go, Double</phrase>
   <phrase>Down</phrase>
           <phrase>two, twice, Down</phrase>
        </command>

Also worth noting are page up and down:

Code: [Select]
        <command name="execbuiltin(Action(PageUp))">
            <phrase>Page</phrase>
            <phrase>Up, Left</phrase>
        </command>
        <command name="execbuiltin(Action(PageDown))">
            <phrase>Page</phrase>
            <phrase>Down, Right</phrase>
        </command>

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #7 on: July 11, 2010, 06:50:24 PM »
thanks for that.  That reminds me.  I'd like to change the way that payloads work, so that you can insert your payload anywhere into your command.

So for example you could have a command

Code: [Select]
       <command name="[repeat:10:{payload1}]action(4)">
  <phrase optional="true">Go</phrase>
  <phrase>Down</phrase>
           <payloadRange>1,20</payloadRange>
        </command>

and you could say "go down 15". Make sense?

Currently payloads get attached to commands in a kind of haphazard way to try to conform to the http api standard, but this way you could specify exactly how to use it.

anyway this is rainy day stuff, but if anyone has comments on the best way to do this, when I have time, I'm all ears.  I'd also like to do it in a way that will work with macros.... head swimming with idea... must... have... beer... to suppress... synapses firing.... ah. m'ok now.
« Last Edit: July 11, 2010, 06:54:53 PM by jitterjames »

Freddo

  • Jr. Member
  • **
  • Posts: 6
  • Karma: 0
    • View Profile
Re: version 0.733 new features for XBMC users
« Reply #8 on: July 11, 2010, 09:59:52 PM »

Code: [Select]
       <command name="[repeat:10:{payload1}]action(4)">
  <phrase optional="true">Go</phrase>
  <phrase>Down</phrase>
           <payloadRange>1,20</payloadRange>
        </command>


Sounds solid in concept but isnt the repeat syntax kind of out of xml spec? (is that even a thing?) Sorry to criticise because clearly it works just fine as it is, but in my mind the most logical xml would be this?

Code: [Select]
       <command repeat="{payload 1}" delay="10" name="action(4)">
  <phrase optional="true">Go</phrase>
  <phrase>Down</phrase>
           <payloadRange>1,20</payloadRange>
        </command>

where repeat is the number of times to repeat and delay is how often? I understand this would require you to implement a gui solution for defining these values though.

I like the idea of being able to inject payloads at custom positions in the command, it'd greatly simplify the xml I'm doing, for example in my xbmc windows right now I have to do this:
Code: [Select]
   <payload>
        <value>home)</value>
        <phrase>home, top menu, start page</phrase>        
    </payload>

Note I had to enter the trailing close bracket there because XBMC wasnt getting the command quite right via HTTPAPI.

I really don't mean to seem so critical, this is an awesome fun app to play around with let alone for free! even though it's just a bit of fun for now and not really a serious solution to control XBMC all the time, it is great being able to just flop down on the sofa and go "new tv" and see whats fresh!

I'm using the PS3eye which has a 4 mic array ontop of it, results are suprisingly accurate even right accross the room (2m+ from mic to sofa), although I'm not sure if it'll be able to accurately ignore the tv sounds. I do have to ennunciate quite sharply to get it to work sometimes, but I'll be refining my voicecommands profile to try and reduce the number of phonetically similar commands to a minimum for better accuracy.

 I was curious JJ, you use the windows voice recognition engine, is there any point in doing the training/tutorials for that ? will it help with recognition accuracy in your app?
« Last Edit: July 11, 2010, 10:21:37 PM by Freddo »

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #9 on: July 11, 2010, 11:23:50 PM »
well, it's not really trying to be xml.  When I save the command tree as xml I mimic the layout of the tree, but the way that information gets attached to the words themselves and then returned to me by the engine based on what you say is a bit sticky.  Any given value has to be attached to something. So you need to have a phrase at the beginning of your command.  The command actually gets attached to (or associated with) the phrase.

I would like to use the tree only for the groups and command nodes, and then have a custom editor for each command, where I can do much more complex things, including macros, and have dropdown pre-wired commands and modifiers etc. to make it easier to edit.  Then I would store all that in a hash table and just get the speech engine to return the hash key and the payloads to me.  I've been thinking  about it a lot, and I 'll do it eventually but I haven't got the time.  Plus I haven't been coding in windows for very long and everything is a bit of a struggle.  One that I enjoy, but sometimes it is slow going.

Yes, it doesn't hurt to do a little training, especially if you want to use payload dictation as a payload, which is where you can say almost anything in the english dictionary.  And if you say complete sentences, some of the context logic kicks in, where it considers all the words together to make its best guess.  Don't OVERtrain it though.  I think that can cause some problems.

I am intrigued by that ps3 eye mic.  I love my ps3 remote.  Was it hard to set up drivers for it?  You are on win7x86 correct?  I wonder if x64 would let me... I like the idea of an array microphone, especially at that price.  My wifes laptop has a 2 element array on it, but it sucks.  Speech accuracy is way better when the "beam forming" is turned off (i.e. not acting as an array).

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #10 on: July 12, 2010, 12:14:17 AM »
Quote
Note I had to enter the trailing close bracket there because XBMC wasnt getting the command quite right via HTTPAPI.

actually you don't have to do that if you write your command like this:

execbuiltin&parameter=ActivateWindow

works fine with the attached payload, no extra commas brackets added.

But yes, this kind of confusion would be avoided if I could inject {payloads} into commands anywhere like variables.  Probably the syntax {%1} {%2} would work ya?  I don't think it would be too hard to implement either.
« Last Edit: July 12, 2010, 12:18:21 AM by jitterjames »

Freddo

  • Jr. Member
  • **
  • Posts: 6
  • Karma: 0
    • View Profile
Re: version 0.733 new features for XBMC users
« Reply #11 on: July 12, 2010, 04:19:10 PM »
That'll work wonders yeah.

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: version 0.733 new features for XBMC users
« Reply #12 on: August 03, 2010, 10:48:59 AM »
0.79 now lets you use payloads like this

{1} {2}...

so for example an xbmc command could be

action({1})