• 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 8
Voice recognition and control?, just basic!
#46
jitterjames Wrote:It is unfortunate that we have to rely on sms keypad style input to jump to a fricken letter... wtf? I could probably write a special function for XBMC, where if you have a command like this: "jump frog" (you wouldn't have to say frog it could be any word starting with f) it would grab the first letter ('f') and convert it to sms numbers. I don't really know how this works in xbmc though, can you get f by pressing sms3 button 3 times? Maybe it would be better to use search, or filter, or maybe smart playlists? I'm not that familiar with xbmc. I used to have a classic xbox and used xbmc a lot, but when I went HD I switched to using mediaportal and other stuff. That was a while ago.

When using keyboard
Shift + letter will jump to the letter Wink
Reply
#47
Thanks Waffa. That is helpful, but if we are controlling a remote machine via the http api, is there any way to achieve the same effect?
Reply
#48
Hi JJ

Iv just sent my voxcommando package to you in an e-mail, hope it help narrow down my issue.

RBX


PS. my OS is Windows 7 Ultimate 64bit
Reply
#49
jitterjames Wrote:Thanks Waffa. That is helpful, but if we are controlling a remote machine via the http api, is there any way to achieve the same effect?
Hmm can't help you on that one.

I've got a android phone and in remote function the keyboard works but not the shift function.

This might be interesting for you.
http://forum.xbmc.org/showthread.php?tid=68263
Reply
#50
thanks Waffa, I've sort of been avoiding that because I don't have the time to figure out the json interface. If someone could point me to a concrete example of sending a command to xbmc via json using c# that would help a lot. I get the impression that I'll need to install some kind of 3rd party wrapper for c# in order to get it to work... is that correct?
Reply
#51
One quick question: Using SENDKEYS, how do you send the "Shift Key"?

Quote:that's excellent, it could be useful for a lot of things, in particular the "alternates" feature of VC, but to really be useful we would need to be able to create multiple lines of text. Do you know if there is a way to insert newline characters? I tried \r\n but it didn't do anything.

I can't get it to do multiple lines. I'm not sure if it's a limitation of the function (no new line parameter recognized), or if it's an issue with how the skin chooses to display notifications. It is also limited to 256 characters, and will scroll the text larger than the windows, just like the RSS feed.

So far I have "Help" which responds with:
"Say 'How Do I...' followed by the function you are trying to use to get detailed instructions or Say 'Commands' for a list of common commands"

How do I play a movie(video)(TV Show)(Music)(audio file)(mp3)(...)
"Say 'play' or 'select' to playback of the media file chosen"

Also includes questions like:
How do I select something, fast forward, rewind, skip ahead, skip back, stop, mute, turn on subtitles, view codec info etc.

"Commands" just returns a single command for each function in a list. There may be (and usually are) multiple acceptable commands, but I list only the most obvious ones. For instance, "Exit" is listed for exiting the program, but you could also say "Good bye" or "Good night" to get the same effect. The commands help will only list "Exit" due to the limited number of characters I have to work with.

-----------------------------------

Here's the spreadsheet I mentioned, help functions aren't listed yet, as well as a few experimental functions I'm playing with.

http://spreadsheets.google.com/ccc?key=0...oIcO#gid=0

You guys are free to edit this sheet, add functions you want mapped, suggest phrases, comment on any areas where I've hit a snag etc.

------------------------------------

@Waffa

Thanks, I totally forgot about keyboard jumping. It should be possible to just use SendKey functions. I'll play around with it and see what I get.

-----------------------------------

Here's a bit of my xml so far, just copy and paste it between the beginning and end of 2 other command groups in the voicecommands.xml file.


Code:
<commandGroup name="XBMC Testing Functions">
        <command name="Action(11)">
            <phrase>info,details,data,summary,about</phrase>
        </command>
        <command name="Action(10)">
            <phrase>Back,up,return</phrase>
        </command>
        <command name="Action(27)">
            <phrase>Codec</phrase>
        </command>
        <command name="Action(25)">
            <phrase>Subtitles,sub,subs,caption,show text</phrase>
        </command>
        <command name="Action(12)">
            <phrase>pause,unpause,wait,hold on,hold u, just a sec,just a second, just a minute, rezoom, resume, be right back, I'm back</phrase>
        </command>
        <command name="Action(13)">
            <phrase>stop,end,fuck this movie</phrase>
        </command>
        <command name="Mute">
            <phrase>mute,silence,shut up</phrase>
        </command>
        <command name="Exit">
            <phrase>Good bye,good night,exit,close x b m c, shutdown</phrase>
        </command>
        <command name="Action(79)">
            <phrase>play,enter,start,begin,watch,o k</phrase>
        </command>
        <command name="Action(20)">
            <phrase>forward</phrase>
        </command>
        <command name="Action(22)">
            <phrase>jump forward</phrase>
        </command>
        <command name="Action(21)">
            <phrase>back</phrase>
        </command>
        <command name="Action(23)">
            <phrase>Jump Back</phrase>
        </command>
        <command name="execbuiltin(Action(fastforward))">
            <phrase>Fast Forward</phrase>
        </command>
        <command name="execbuiltin(Action(rewind))">
            <phrase>Rewind</phrase>
        </command>
        <command name="execbuiltin(Action(increaserating))">
            <phrase>I like it, I love it</phrase>
        </command>
        <command name="execbuiltin(Action(decreaserating))">
            <phrase>I don't like it, I hate it, it sucks, it blows</phrase>
        </command>
        <command name="execbuiltin(Action(select))">
            <phrase>Select</phrase>
        </command>
        <command name="execbuiltin(EjectTray())">
            <phrase>Open Tray, Open Drive, Close Tray, Close Drive</phrase>
        </command>
    </commandGroup>
    <commandGroup name="Launch XBMC">
        <command name="C:\XBMC_SVN\XBMC\XBMC.exe">
            <phrase>x b m c, xbox media center, let's watch a movie, movies</phrase>
        </command>
        <command name="notepad">
            <phrase>note pad</phrase>
        </command>
    </commandGroup>
    <commandGroup name="XBMC Jumplists">
        <command name="execbuiltin(Action(jumpsms2))">
            <phrase>A</phrase>
        </command>
    </commandGroup>
<commandGroup name="XBMC Help">
        <command name="execbuiltin(Notification(Voice Help,'To access help ask &quot;How do I...&quot; and the function you're trying to use or say List Commands for some frequently used voice commands.',35000))">
            <phrase>Help</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Say Up Down Left or Right to move the cursor in that direction',15000))">
            <phrase>How do I navigate, How do I move the cursor</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Say Play to begin playback of the selected media',15000))">
            <phrase>How do I play a movie, how do I play movies, how do I play a TV show, how do I play TV, how do I play music, how do I play M P 3's, how do I play my media</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Say Fast forward, forward, jump forward, rewind, back, or jump back to move your progress in a video or music file',15000))">
            <phrase>How do I fast forward, how do I rewind, how do I skip ahead, how do I replay</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Say Pause to pause the media and stop to return to the media selection screen',15000))">
            <phrase>how do I stop, how do I pause</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Say Select to choose the highlighted menu, item, or file',15000))">
            <phrase>how do I select, how do I pick, how do I choose</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Say Subs or Subtitles to enable subtitles in your video. You must have a local subtitles file for the movie or show for this to work',15000))">
            <phrase>How do i turn on subtitles, how do I see subtitles, how do I turn on closed captioning</phrase>
        </command>
        <command name="execbuiltin(Notification(Voice Help,'Commands are Up Down Left Right Select Play Pause Stop Forward Back Jump-Forward Jump-Back Fast-Forward Rewind Info and Subtitles',45000))">
            <phrase>Commands, List Commands</phrase>
        </command>
    </commandGroup>

This excludes some of the currently non-working functions, but anyone who can cut and paste can at least see what I'm up to and try it out.

The next things to do going forward are:
• Add lettered jumplists
• Add command function for any named button or menu in XBMC. If a user sees "Movies" it should go to movies, if the skin has a "Weather" menu, saying "Weather" should take them there. Basically, if the function or menu is already named by the skin, saying that name should return similar functionality for the sake of ease of use.
Reply
#52
Here are the actions and function for xbmc.

Can't find more info about shift-letter than what is descriped in NextLetter and PrevLetter in actions.

Edit: More info about sendkey Smile
Web Server HTTP API (Commands that Generate Actions)
SendKey(buttoncode;...) Key.h
Reply
#53
Quote:One quick question: Using SENDKEYS, how do you send the "Shift Key"?

preced it by a +

so +k would be shift-k

here's the reference:
http://msdn.microsoft.com/en-us/library/...S.85).aspx

I can't remember now what I distributed, but I do have this file that can be edited and used as a "payloadxml" by referencing it in the command tree. It is just for actions.

Code:
<?xml version="1.0" encoding="utf-8"?>
<!--xbmc button commands.-->
<!--see:    http://xbmc.svn.sourceforge.net/viewvc/xbmc/trunk/guilib/Key.h?revision=31448&content-type=text/plain-->


<PayloadsRoot>
    <payload>
        <value>1</value>
        <phrase>left</phrase>        
    </payload>
    <payload>
        <value>2</value>
        <phrase>right</phrase>        
    </payload>
    <payload>
        <value>3</value>
        <phrase>up</phrase>        
    </payload>
    <payload>
        <value>4</value>
        <phrase>down</phrase>        
    </payload>
    <payload>
        <value>5</value>
        <phrase>page up</phrase>        
    </payload>
    <payload>
        <value>6</value>
        <phrase>page down</phrase>        
    </payload>
    <payload>
        <value>7</value>
        <phrase>select</phrase>        
    </payload>
    <payload>
        <value>8</value>
        <phrase>highlight</phrase>        
    </payload>
    <payload>
        <value>9</value>
        <phrase>parent</phrase>        
    </payload>
    <payload>
        <value>10</value>
        <phrase>previous menu</phrase>        
    </payload>
    <payload>
        <value>11</value>
        <phrase>show info</phrase>        
    </payload>
    <payload>
        <value>12</value>
        <phrase>pause</phrase>        
    </payload>
    <payload>
        <value>13</value>
        <phrase>stop</phrase>        
    </payload>
    <payload>
        <value>14</value>
        <phrase>next item</phrase>        
    </payload>
    <payload>
        <value>15</value>
        <phrase>previous item</phrase>        
    </payload>
    <payload>
        <value>16</value>
        <phrase>forward</phrase>        
    </payload>
    <payload>
        <value>17</value>
        <phrase>rewind</phrase>        
    </payload>
    <payload>
        <value>18</value>
        <phrase>show gui</phrase>        
    </payload>
    <payload>
        <value>19</value>
        <phrase>aspect ratio</phrase>        
    </payload>
    <payload>
        <value>20</value>
        <phrase>step forward</phrase>        
    </payload>
    <payload>
        <value>21</value>
        <phrase>step back</phrase>        
    </payload>
    <payload>
        <value>22</value>
        <phrase>big step forward</phrase>        
    </payload>
    <payload>
        <value>23</value>
        <phrase>big step back</phrase>        
    </payload>
    <payload>
        <value>24</value>
        <phrase>SHOW OSD</phrase>        
    </payload>
    <payload>
        <value>25</value>
        <phrase>SHOW SUBTITLES</phrase>        
    </payload>
    <payload>
        <value>26</value>
        <phrase>NEXT SUBTITLE</phrase>        
    </payload>
    <payload>
        <value>27</value>
        <phrase>SHOW CODEC</phrase>        
    </payload>
    <payload>
        <value>28</value>
        <phrase>NEXT PICTURE</phrase>        
    </payload>
    <payload>
        <value>29</value>
        <phrase>PREV PICTURE</phrase>        
    </payload>
    <payload>
        <value>30</value>
        <phrase>ZOOM OUT</phrase>        
    </payload>
    <payload>
        <value>31</value>
        <phrase>ZOOM IN</phrase>        
    </payload>
    <payload>
        <value>32</value>
        <phrase>TOGGLE SOURCE DEST</phrase>        
    </payload>
    <payload>
        <value>33</value>
        <phrase>SHOW PLAYLIST</phrase>        
    </payload>
    <payload>
        <value>34</value>
        <phrase>QUEUE ITEM</phrase>        
    </payload>

</PayloadsRoot>
Reply
#54
arkryal Wrote:The next things to do going forward are:
• Add lettered jumplists
• Add command function for any named button or menu in XBMC. If a user sees "Movies" it should go to movies, if the skin has a "Weather" menu, saying "Weather" should take them there. Basically, if the function or menu is already named by the skin, saying that name should return similar functionality for the sake of ease of use.

to jump to windows you only need one command:
Code:
<command name="execbuiltin&amp;parameter=ActivateWindow">
            <phrase>activate window</phrase>
            <payloadList>HOME,programs,pictures,filemanager,settings,music</payloadList>
        </command>
you just need to add more windows using the correct names and it should work
If you want to be able to use different aliases for each window (so you could say either "Home, or Top Menu, or start page" or whatever, then you would want to use an xml payload.

In my previous post I gave an example of one. In this case the payload for home would look like this:
Code:
<payload>
        <value>home</value>
        <phrase>home, top menu, start page</phrase>        
    </payload>
or maybe you could replace the value of home with the window id (depends how that command works). Then you can use the payload file in your command tree like this:
Code:
<command name="action">
            <phrase>ActivateWindow</phrase>
            <payloadFromXML>whatever you called the payload file.xml</payloadFromXML>
   </command>
it's an option in the pull down along with phrase, payloadlist, payload dictation, etc. You can use absolute or relative paths. so you could put it in a sub-folder of Vox called payloads, and name the file xbmcwindows.xml and then your line would read:
Code:
<payloadFromXML>payloads\xbmcwindows.xml</payloadFromXML>

edit: one thing I forgot to mention, if you want to use payloads of any kind they need to be preceded by a phrase. So you would have to say goto home, or window home. This is a good idea anyway because it leads to better recognition with less chance of overlap, but if you want to be able to just say home, then you need to make a command for each window.
Reply
#55
P.S. I shouldn't be, but I'm working on getting artist request working this weekend. I have made some progress. Currently I am assuming that xbmc is running when you start Voxcommando because I request the list of artists and their ids from the http server when VC starts up.

edit: this video pretty much describes the state of my brain right now

In the future it'll be more sophisticated Blush

Also, if you decide that shift letter is the best way to jump lists, then I can help you. I'll create a function for it. If it see's the command

"jumpLetter&&pickle"

I'll get it to send the key: shift-p

then you can create a command as follows:
Code:
<command name="jumpLetter">
            <phrase>jump to letter, starts with</phrase>
            <payloadDictation>payloadDictation: don't edit this</payloadDictation>
   </command>

I just wish we could find a way to do it through the http api. A more advanced sms method might be better.

If I sent the action: sms3 twice in succession would that equate to the letter e?
Reply
#56
Just a thought....

xbmc android remote gets an extra option "voice Remote"
starts Voxcommando and enables the mic on my android phone.
Reply
#57
lol. I'm not really following you, but I am intrigued!

are you able to use your android as a pc recording device? I am able to do this with my ipod using pocketaudio. But it drains the batteries pretty quick!
Reply
#58
A question for you xbmc Veterans:

I'm looking at this function:

Code:
RunScript(script[,args]*)

and I'm thinking to myself. NodNodNod If we could put python code into the VC directory and we can call it, AND we can pass it parameters... then the possibilities are really endless. For starters I think it might solve our OSD and sms issues.

It also means that you innovate even more yourselves, making it more open-source-ish.

so the question is, is this possible? Can the python code be anywhere on your hard drive? Any of you written python scripts for xbmc before? I've used python in EventGhost and I like it.

One drawback, putting it in the vox directory would imply that we would nedd to be running vox and xbmc on the same computer...
Reply
#59
jitterjames Wrote:ya. can you zip up your whole installation and send it to me? If that's too big, just send the options.xml and voicecommands.xml, but safer to do the whole thing.

I'm having the same issue, Win 7 64-bit. Mic is selected as the default recording device, I can see the levels in control panel and all looks well. Tried a combination of various settings incl mic level/etc to no effect. On the main UI under 'Microphone' (in voxcommando) the label reads 'audio warnings' though my log is identical to the one posted above (i.e. no discernible audio warnings?).

If you find a fix, could you post here? Thanks.
Reply
#60
Sinnocence Wrote:I'm having the same issue, Win 7 64-bit. Mic is selected as the default recording device, I can see the levels in control panel and all looks well. Tried a combination of various settings incl mic level/etc to no effect. On the main UI under 'Microphone' (in voxcommando) the label reads 'audio warnings' though my log is identical to the one posted above (i.e. no discernible audio warnings?).

If you find a fix, could you post here? Thanks.

go to he speech recognition control panel and choose advanced speech options.

change the language to English US. is yours set to english UK?

although it works with German, there seems to be some confusion between the two English languages. Confused Your display language has to match the speech language.

If I figure anything out I'll post it on VoxCommando.com/forum.

hopefully that's what is happening to you, and it will fix it.
Reply
  • 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 8

Logout Mark Read Team Forum Stats Members Help
Voice recognition and control?, just basic!2