Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - zen_SuR

Pages: [1]
1
Feature Requests / Re: dynamic command creation/updating
« on: September 19, 2017, 01:39:18 PM »
a possible solution for my usecase would also be if voxcommando could load an entire xml commandtree as default thats online and not the local one in the vc folder? is there any way you could think of for doing just that? 

2
Feature Requests / Re: dynamic command creation/updating
« on: September 19, 2017, 05:18:13 AM »
I was fearing that but hoping, since i basically just want the function of copying and pasting an xml file from the forum into my commandtree, that it qualifies for a managable feature request... dont you think that would open so many doors for how one can use voxcommando? Otherwise i am interessted why it is not possible to have such a function for better understanding vc. Greetings, joe

3
Feature Requests / dynamic command creation/updating
« on: September 18, 2017, 10:30:43 PM »
i just want to be able to include an external often changing xml with commands and combine it with an existing commandtree on restart of vc.

kind of a command on VC.Loaded that says something along the line:

"VC.importcommands from http://www.yourdomain.de/vc_commands.xml in group xy"

or is there a workaround i am not aware of?

4
Integration Ideas / Re: Faster TTS.Speech - Response Management
« on: September 03, 2017, 04:27:50 PM »
Quote
I took the liberty of filling out your web form a few times, and I think James did as well. :)

yes he definetly did. james seems quite full of himself. rightfully so.
;-)

Quote
We did find an error in the construct_page command. The last action is trying to launch the local php file instead of the web page. We changed the command to:

this is quite intentional since i found no cool way to manage the upload-management. the system is in constant danger of overwriting already existing entries on the webspace. some kind of automation that checks the existing entries, appends them to the new txts would solve that. but do you know of any "slick" way to do an automatic ftp upload after creation? i need this system to be really public available since i harvest my friends for textblocks for quite some time now. its hillarious (about 120 different "context"-blocks by now as i call it. it feels like a rude and misguided AI i lost control over... your entries are now part of the collection btw and they fit quite well)

Quote
2. I notice that you're using PY.ExecString > result = 'string' to set your {LastResult} variable. Is there a reason you're not using the Results.SetLastResult action?

no, no particular reason.

Quote
3. On my server I ran into some 500 errors when setting the file permissions. For our users who're comfortable setting public permissions on their website in order to make this work, just a note that you might still need to debug a bit to find which permissions settings will work on your server.

i really would like to know so much more about this topic... i did 777 because i dont know better.

Quote
I think this is a really cool idea for people who have a website. I personally am not that comfortable with the security aspect. That is always up to each person to decide what works for them, of course.

do you have any idea of how to get rid of this concerns?

Quote
James and I were brainstorming about other possible implementations, possibly using Dropbox. We'll let you know if/when we come up with something. Sometimes it's interesting to compare how different people solve the same challenge.

it induces endless joy to hear that!!!
if we can work around dropbox i would highly appreciate it since their service kind of su.... nowadays. but whatever works i guess.


what i really also want to achive is to provide an interface to external users to also create "questions" that are automatically added on restart of voxcommande. the answers also need aditionial values to be set so they work optimally with the much bigger interfacesystem (personalitysimulator, tamagochi, whatever) for voxcommandoi am quite working on*.

there would be endless possibilities to create/grow different "AI experiences" (whatever this is...) for the people out there that completly escape the imagination of the user itself. or it would be just funny to see how people load different grown personalities of other users and stuff like that. a database of different "personalities" like "butler", "teacher", "crazy catlady", "girlfriend/boyfriend" think of a lot of siris without being so uptitght and 100% customisable in its behaviour with special commands attached to them). or let your girlfriend make a boring version that pretends to be her so she has the feeling of being part of the voxcommando-experience and suddenly finds it cute when you ignore her because of configuring....(yes, i know that was oddly specific)

*(heeeey..... actually.....it works really well already....  you didnt see it yet because right now there would be copyrightcomplications with a japanese hentai-simulator-manufactor - but i am working on that ;) ) you will meet "Dominique" soon enough in whatever form. if you liked this you will love that ;)

***EDITED my syntax on james.


5
Integration Ideas / Re: Faster TTS.Speech - Response Management
« on: September 02, 2017, 03:00:56 PM »
i just found a little mistake


in createtxt command i need to put a blank space in the second field... so something has to write... just leaving it blank wont create the txtfile where the answers are stored.

6
General / Re: Mapping the coolest people in the world
« on: September 01, 2017, 07:50:20 PM »
thats a really old threat... but is there maybe a an updated map? just wondering....

7
Integration Ideas / Faster TTS.Speech - Response Management
« on: August 31, 2017, 09:04:01 PM »
Faster TTS.Speech - Response Management

Description:
Create a php-formular based on your commandtree. In this formular you can put in tts-strings that are used randomly when the command is called. On the fly. With 1 Click.


Setup/Update Online Formular:
======================================
- Put the attached folder "formupdate" in your vc-installfolder.
- copy attached xml into your command tree
- open the command called "setup". Put in the path to your webspace were you will store the php formular
- Press Save and Execute.
- upload the now generated contents of the folder "/formupdate/to_webspace" to your webspace
- set chmod for files to 777 in your ftp client
- go to your webspace and open input_formular.php.
- try my examplecommands and see if it works.

now for the commandstructure for it to work:
- write "public" as first word in the command description (this field). Only then command will show up in the form.
- set "vc.setEventTimer" with "1" for one second and set the eventname to "speak" as the first action.


what do you guys think of it? I use it to fastly fill up tts commandresponses to make vc feel way more immersive without even having to open the commandbuilder. I also let friends fill it out for me so i get surprise-answers from voxcommando.

8
RegEx (Regular Expressions) / Re: Getting enabled commands using regex
« on: August 31, 2017, 01:04:51 PM »
right in this second i came up with this:

<command\sid[^<>]*name="(.*?)"[^<>]*description="public(.*?)"

now i get what i want. your solution works the same while being way more beautiful ;)


i also know and heavily use the regextool.

EDIT: it just works if i result.replace description="" with description="_" so match.1.1 and match 1.2 add up since i store it in seperate txts... but everything works now ;)

i now try to also read the according phrase... and maybe commandgroup... but that seems to be superhard ;) is there somewhere the codesnippets responsible for creating the commandhelp.html? it basically needs the same functionality from what i am trying to achieve....



9
RegEx (Regular Expressions) / Re: Getting enabled commands using regex
« on: August 30, 2017, 06:56:15 PM »
oh it should... but the next problem is when the commandgroup is disabled. that does not reflect in the enabled="true" in command id...

for that and for other reasons i try to get the following going: i just wanna find commandnames thats description starts with "public "...

<command\sid[^<>]*name="(.*?)"[^<>]*description="public\s(.*?)"

does not at all work great... this regexstuff does not exactly boost my selfconfidence ;)

EDIT: yes... its my intend that i want the description as a submatch also... the endgoal is an automated dynamic html-interfacecreator and it kind of works already... but i just want certain commands to appear - therefor i decided to tell vc that way...

10
RegEx (Regular Expressions) / Getting enabled commands using regex
« on: August 30, 2017, 11:24:55 AM »
hy,

i am trying to get an AND regex to work for the last few hours and i give up and hope somebody here can help me...

first i file.read my voicecommands.xml
Code: [Select]
<?xml version="1.0" encoding="utf-8"?>
<VoiceCommands version="2.2.3.7" space="preserve" date="8/30/2017 12:00:00 AM">
    <commandGroup open="True" name="Vox Commands" enabled="True" prefix="" priority="1" requiredProcess="" description="">
        <command id="8" name="Don't Listen" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>VC.Standby</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>ignore me,don't listen,stand by</phrase>
        </command>
        <command id="31" name="Listen" enabled="true" alwaysOn="True" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>VC.On</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>computer, start listening, pay attention</phrase>
            <event>Amulet.On</event>
        </command>
        <command id="32" name="Option" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>VC.Option</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>Option,Select Option</phrase>
            <payloadRange>1,10</payloadRange>
        </command>
        <command id="43" name="Vox Off" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>VC.Off</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>vox off, vox commando off,disable vox commando</phrase>
            <event>Amulet.Off</event>
        </command>
    </commandGroup>
    <commandGroup open="True" name="Show Help" enabled="True" prefix="" priority="0" requiredProcess="" description="">
        <command id="266" name="Show help" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>Help.ShowAll</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.Speak</cmdType>
                <params>
                    <param>These are all of the voice commands for this configuration.</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>Show help, What can I say</phrase>
        </command>
        <command id="264" name="Show active commands" enabled="False" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>Help.ShowEnabled</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.Speak</cmdType>
                <params>
                    <param>These are voice commands in groups that are enabled.</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>Show</phrase>
            <phrase optional="true">me, us</phrase>
            <phrase optional="true">the</phrase>
            <phrase>active, enabled</phrase>
            <phrase optional="true">voice</phrase>
            <phrase>commands</phrase>
        </command>
        <command id="305" name="Send help" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
            <action>
                <cmdType>File.Read</cmdType>
                <params>
                    <param>Resources\help.css</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>File.Write</cmdType>
                <params>
                    <param>plugins\TCP\html\commandhelp2.html</param>
                    <param>&lt;html&gt;&lt;head&gt;&lt;meta charset="UTF-8"&gt;&lt;title&gt;aaaaa&lt;/title&gt;&lt;style&gt;{LastResult}asdfasdf&lt;/style&gt;&lt;/head&gt;</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Results.RegExSingle</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Help.ShowEnabled</cmdType>
                <params />
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.Speak</cmdType>
                <params>
                    <param>Refreshing command list on your local web server.</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>File.Read</cmdType>
                <params>
                    <param>commandhelp2.html</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Results.RegExSingle</cmdType>
                <params>
                    <param>&lt;/head&gt;(.*?)$</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>File.Append</cmdType>
                <params>
                    <param>plugins\TCP\html\commandhelp2.html</param>
                    <param>{Match.1}</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <phrase>Send help</phrase>
        </command>
    </commandGroup>
    <commandGroup open="True" name="reuters" enabled="True" prefix="" priority="0" requiredProcess="" description="">
        <command id="1173" name="Reuters news" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{Match.{i}.1} is the headline (where {i} is 1st, 2nd, 3rd ... headlines)&#xD;&#xA;{Match.{i}.2} is the URL linking to each full story.&#xD;&#xA;&#xD;&#xA;There will be more matches stored in the payload xml file than the 4 announced in the command.">
            <action>
                <cmdType>Scrape</cmdType>
                <params>
                    <param>http://feeds.reuters.com/reuters/worldNews</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Results.RegExSingle</cmdType>
                <params>
                    <param>&lt;item&gt;.*?&lt;title&gt;(.*?)&lt;.*?description.*?&lt;link&gt;(.*?)&lt;</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>PayloadXML.Clear</cmdType>
                <params>
                    <param>reuters.xml</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>PayloadXML.AddPair</cmdType>
                <params>
                    <param>reuters.xml</param>
                    <param>{Match.{i}.2}</param>
                    <param>{i}</param>
                </params>
                <cmdRepeat>{#M}</cmdRepeat>
            </action>
            <action>
                <cmdType>OSD.ShowText</cmdType>
                <params>
                    <param>Today's Reuter's headlines ({#M} total):</param>
                    <param>10000</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>OSD.AddText</cmdType>
                <params>
                    <param>{i}. {Match.{i}.1}.</param>
                </params>
                <cmdRepeat>4</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.SpeakSync</cmdType>
                <params>
                    <param>Here are the top 4 of {#M} Reuter's headlines</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.Speak</cmdType>
                <params>
                    <param>{i}. {Match.{i}.1}.</param>
                </params>
                <cmdRepeat>4</cmdRepeat>
            </action>
            <phrase>What's the news from Reuters</phrase>
        </command>
        <command id="1179" name="More from Reuters" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="Shows the first line of the story. Reads out the whole story.&#xD;&#xA;&#xD;&#xA;If you want it to only read the first few sentences, you can change {#M} to a specific number. So, if you use 2 instead of {#M} then it will read the first 3 lines, because the first sentence is read in the separate, TTS.Speak - {Match.1} action. (Or, you can create a separate &quot;shut up&quot; command with a TTS.Stop action to stop the TTS in mid-read. This would allow you to hear as much or as little as you wanted.)">
            <action>
                <cmdType>Launch.OpenURL</cmdType>
                <params>
                    <param>{1}</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Scrape</cmdType>
                <params>
                    <param>{1}</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Results.RegExSingle</cmdType>
                <params>
                    <param>="description"\scontent="(.*?)"</param>
                    <param><![CDATA[ ]]></param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.Speak</cmdType>
                <params>
                    <param>{Match.1}</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>OSD.ShowText</cmdType>
                <params>
                    <param>{Match.1}</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>Results.RegExSingle</cmdType>
                <params>
                    <param>&lt;.*?midArticle_\d"&gt;&lt;/span&gt;&lt;p&gt;(.*?)&lt;</param>
                </params>
                <cmdRepeat>1</cmdRepeat>
            </action>
            <action>
                <cmdType>TTS.Speak</cmdType>
                <params>
                    <param>{Match.{i}}</param>
                </params>
                <cmdRepeat>{#M}</cmdRepeat>
            </action>
            <phrase>Tell me more about headline number</phrase>
            <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">reuters.xml</payloadFromXML>
        </command>
    </commandGroup>
</VoiceCommands>

and with my regex i want all commandnames where enabled="true"...

no matter what i tried i dont get it.

the first half of the regex works very well:
Code: [Select]
<command\s[^<>]*name="(.*?)"gives me all the command names... but yeah... all of them. and i just want the enabled commands.

here would be a quick regex-onlinetool in case somebody wants to try... http://regexr.com/

11
but i got a smartwatch just because of voxwear/voxcommando in my flat and on the other hand for navigation on the motorcycle. since these two scenarios are mutually exclusive (at least... should be) i can live with this for now ;)


12
I use these Widgets of VoxWav very much! they are awesome.

but i should have been more specific:

I was asking about the dynamic html-remote-creator that generates an interface based on the command tree that can be triggered. so basically a script that makes something like vc-install\plugins\TCP\html\voxremote.html but dynamically...

i see really much potential in "mooding" such a thing.

-such as an easy interface creation for tablets, smartwatches, smartphones,... but i understand that there are many pitfalls ;)

- Just imagine commandhelp.html with an additional inputfield next to every command and a big save-button on bottom. you put in "answers" which are stored in an xml file thats used in a tts.speak confirmation attached to the command.

Now:
imagine letting your friends fill out that stuff remotely...

but why you may ask?

i have such a system integratet and a lot of friends who put a lot of humor in it which surprises me every day. but it involves too much manual handwork to create the form and get the files into the xml's...

ok - i think i also did my fair share of sidetracking in this thread now ;)...

so any news on this front may be helpful!

13
did anything ever come out of this? this would be really cool.

14
it works fine on my moto 360.

just one thing:

once i start voxwear i am not longer able to use google navigation since i think it does not completly restore the bluetooth connection to my phone when i close it/voxwear (and i disabled "run voxwear in background"). google navigation tells me that it can not connect. even if i disable wifi AND bluetooth on the watch and enable it again it just says it is connected but that does not change google navigation

if i restart my watch google navigation works again.  till the point where i start voxwear once...


EDIT:
Apparently i am stupid... i just overlooked the X button in the voxwear settings and thought swiping it away is sufficent.

15
XML Exchange / Re: What can I Say a la Siri Style !
« on: May 26, 2017, 03:25:30 PM »
I tried this now extensivly and i dont become happy... since i am quite an experienced user i think i avoided the pitfalls....

i changed the paths and the group name thats being rebuild, i manually created the VC_Commands_Topics.xml

but unfortunatly the xml remains empty... so i am pretty sure thats where the mistake lies... but i tried, tried again and tried a third time from scratch to get it to work. i am desperate enough to happily enough let someone else point out the error i am making (since i dont believe it is VC-Version related... i am using 2.2.3.5)

If i say "What can i say" - it responds with "choose the topic" (nothing else).
If i say then "List commands in *group name*" it detects "list commands *in/for/about* error"

would somebody please be so kind and take a look at my commands?

What can i say:
Code: [Select]

<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.3.5-->
<command id="443" name="What Can I Say" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="Builds a list of enabled commands topics (based on CommandsGroups)">
  <action>
    <cmdType>PayloadXML.Clear</cmdType>
    <params>
      <param>\payloads\VC_Commands_Topics.xml</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <params>
      <param>Choose a Topic</param>
      <param>10000</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Choose a Topic</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Scrape</cmdType>
    <params>
      <param>\voicecommands.xml</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>\&amp;amp\;</param>
      <param>And</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegEx</cmdType>
    <params>
      <param>&lt;commandGroup.*name="([^---].*)".*enabled="True"</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.AddText</cmdType>
    <params>
      <param>{Match.{i}}</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>&lt;silence msec="100"/&gt;{Match.{i}}.</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>PayloadXML.AddPair</cmdType>
    <params>
      <param>\payloads\VC_Commands_Topics.xml</param>
      <param>{Match.{i}}</param>
      <param>{Match.{i}}</param>
      <param>False</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>Group.Rebuild</cmdType>
    <params>
      <param>Help</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>What Can I Say?</phrase>
</command>



Commands in a topic:
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.3.5-->
<command id="339" name="Commands in a Topic" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <params>
      <param>Commands in {1}</param>
      <param>10000</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.SpeakSync</cmdType>
    <params>
      <param>Commands in {1}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.SetLastResult</cmdType>
    <params>
      <param>{1}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.Replace</cmdType>
    <params>
      <param><![CDATA[ ]]></param>
      <param>\s</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.SetVar</cmdType>
    <params>
      <param>CommandGroup</param>
      <param>{LastResult}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Scrape</cmdType>
    <params>
      <param>C:\Users\me\Google Drive\Dominique\Programme\Voxcommando\commandhelp.html</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExSingle</cmdType>
    <params>
      <param>id="heading"\&gt; {Var.CommandGroup}&lt;/div&gt;(.*?)id="clear"</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.SetLastResult</cmdType>
    <params>
      <param>{Match.1}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>&lt;TD&gt;(.*?)&lt;/TD&gt;</param>
      <param> $1</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>&lt;TD\sclass="optional"&gt;(.*?)&lt;/TD&gt;</param>
      <param> ($1) </param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>(\d+),(\d+)</param>
      <param>$1 to $2 </param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>{(.*?)}</param>
      <param>$1 </param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>,</param>
      <param> or</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>&lt;BR\s/&gt;</param>
      <param> or</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param> \|</param>
      <param>,</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>&lt;div\sid="command"&gt;&lt;table&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegExReplace</cmdType>
    <params>
      <param>&lt;tr&gt;(.*?)&lt;/tr&gt;</param>
      <param>$1.</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Results.RegEx</cmdType>
    <params>
      <param>&lt;table&gt;([^---].*)&lt;/table&gt;</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.addText</cmdType>
    <params>
      <param>{i}. {Match.{i}}</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <action>
    <cmdType>VC.Pause</cmdType>
    <params>
      <param>400</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>{Match.{i}}</param>
    </params>
    <cmdRepeat>{#M}</cmdRepeat>
  </action>
  <phrase optional="true">List</phrase>
  <phrase>Commands</phrase>
  <phrase optional="true">of, in, about, for</phrase>
  <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\VC_Commands_Topics.xml</payloadFromXML>
</command>



Pages: [1]