VoxCommando

General Discussion => General Discussion => Topic started by: Dominique on July 07, 2014, 06:39:00 AM

Title: New Here
Post by: Dominique on July 07, 2014, 06:39:00 AM
Hey everyone, my name is Dominique Garcia.  I am an internationally known radio personality and journalist.  I came across VoxCommando when I was looking for a way to integrate my artificial intelligent virtual assistant Denise with XBMC.  As much as I wanted my program to perform everything, I simply acknowledged that V.C. is much more simple.  I could have accomplished it, yet like I said, V.C. is much easier to work with.

I am a forum moderator for the A.I. software I speak of, out of respect for this forum I will not post a link.  However I have made enormous contributions on the program and getting the program to perform all kinds of task that the creator never even dreamed of.  Every time I do something innovative with it, I always make YouTube tutorials to show the other forum members.  If you want to see a few, you can see them here....

https://www.youtube.com/user/DeniseTutorials

Well it seems as if I am now apart of this community despite owning the full version of the program as of this moment.  If and when I get the software, i will make some videos.
Title: Re: New Here
Post by: Dominique on July 07, 2014, 06:56:22 AM
http://youtu.be/ra0iwSuj2QM

I think doing the same thing as the video above is do-able with V.C.
Title: Re: New Here
Post by: Kalle on July 07, 2014, 08:09:20 AM
Yes, I use also Guile3D and you can control the A.I. with VoxCommando (the most things). We have in VC2.0 also a "Talking head" plugin.

He is a example video with the Guild3D (not the best, but I will record a new video next time)

http://www.youtube.com/watch?v=pXcOznuUDmY (http://www.youtube.com/watch?v=pXcOznuUDmY)

Title: Re: New Here
Post by: Dominique on July 07, 2014, 07:56:33 PM
Yes, I use also Guile3D and you can control the A.I. with VoxCommando (the most things). We have in VC2.0 also a "Talking head" plugin.

He is a example video with the Guild3D (not the best, but I will record a new video next time)

http://www.youtube.com/watch?v=pXcOznuUDmY (http://www.youtube.com/watch?v=pXcOznuUDmY)



Interesting.  Its nice to see a fellow Guile 3D user on here.  However I have a question, what exactly is the point of running both programs at the same time?  It appears as if V.C. is sufficient enough to do everything you did in the video all by itself.  Just wondering.  Plus, I am pretty knowledgeable on how to program Guile 3D (you would know from the forums), which method did you use for this?  I ask cause I am curious.  If I knew, then I would have a better understanding as to why you used both V.C. and Guile 3D at the same time.  Was it simply for the looks?
Title: Re: New Here
Post by: Kalle on July 08, 2014, 05:05:22 AM
I use the Guile3D only as "talking head" for VoxCommando and how you pointed correctly out, in my case there is nothing what VC can't do.  ;)
The advantage of the Guile3D is, that you can run it on other machine as VoxCommando and it is easy to communicate between them over the Guile3D api with the powerful "scrape" action in VoxCommando.

To get start out of the box, copy the following code in your command tree, which will create a command group (before you can use the commands you must start guile3d first)

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 1.9.5.6-->
<commandGroup open="True" name="guile3D test" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1464" name="connect" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="Use a valid IP adress for your system (http://127.0.0.1:8000) if you run guile3d on the same machine as VC, otherwise use the IP from the system where guile3d run. Insert in the first scrape action your username and password.&#xD;&#xA;The whole command creates a map table and stores the &quot;AuthKey&quot; automatically in this map table. This is necessary, because when you close Guile3d, it will create a new key each time and this way everything is automated and you must do nothing ;-)&#xD;&#xA;You can see within the two last actions - this &quot;AuthKey&quot; is necessary for each Scrape of the Guile3d API and this way you need only to insert {M:botpass.botpass} instead of the key and VC will replace the key automatically.&#xD;&#xA;">
    <action>
      <cmdType>Map.CreateTable</cmdType>
      <params>
        <param>botpass</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Kernel?function=AskAuthKey&amp;Login=yourUsername&amp;Password=yourPassword</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Map.Set</cmdType>
      <params>
        <param>botpass</param>
        <param>botpass</param>
        <param>{LastResult}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Kernel?function=SetParam&amp;Param=P_AGENT_NAME&amp;Value=Denise_2012&amp;Auth={M:botpass.botpass}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Agent?function=AgentSetVoice&amp;Auth={M:botpass.botpass}&amp;Voice=Guile3D - Nuance Samantha - EN</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>VC.Loaded</event>
  </command>
  <command id="1487" name="3D bot speak" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Agent?function=AgentSpeak&amp;Auth={M:botpass.botpass}&amp;Text={LastResult}</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>bot speak</event>
  </command>
  <command id="1461" name="speak test" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Results.SetLastResult</cmdType>
      <params>
        <param>Yes I can! Congratulations, it looks like you've figured out how to communicate with me. </param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.TriggerEvent</cmdType>
      <params>
        <param>bot speak</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>can you hear me</phrase>
  </command>
</commandGroup>


To find all the API commands take a look at file guile3d\sdk\guilesdk.js and open it in Notepad++ (or any other editor)  ;)

I have created a group for my self with many basic settings for the guile3d. As example: When I call the bot with a prefix from VC - it will showing up and after I say "Thanks" it is hide in the background - changing the bot on the fly and many more. Let me know if you are interessting in special commands or if you need any help.

I will record next time a new video (when I have finished the renovation of my living room  ::yuck ) with runnig VoxCommando and Guile3d bot as my Virtual Assistend on my iPad (splashtop app for iOS needed).

I hope this will help you to better understanding in which way I use the guile3d software with VoxCommando.  ::hmm

Kalle
Title: Re: New Here
Post by: Dominique on July 08, 2014, 05:44:14 AM

To find all the API commands take a look at file guile3d\sdk\guilesdk.js and open it in Notepad++ (or any other editor)  ;)

I have created a group for my self with many basic settings for the guile3d. As example: When I call the bot with a prefix from VC - it will showing up and after I say "Thanks" it is hide in the background - changing the bot on the fly and many more. Let me know if you are interessting in special commands or if you need any help.

Kalle

You have no idea what you just did.  I am totally going to do this.  I will post my results.

EDIT:  I just looked, which js file did you use?  I am interested in setting it up like you have it to where when I call attention, it appears and then disappears upon command.
Title: Re: New Here
Post by: Kalle on July 08, 2014, 07:35:56 AM
Haha, sorry when I have infected you  :D

Take a look in the main folder of guile3d, there is a folder which is called "sdk" and then open the guilesdk.js in a editor. If the file is not exist, you need the platinum version of guile3d.
Did you get it to work with my example group?
Title: Re: New Here
Post by: Dominique on July 08, 2014, 07:55:24 AM
Haha, sorry when I have infected you  :D

Take a look in the main folder of guile3d, there is a folder which is called "sdk" and then open the guilesdk.js in a editor. If the file is not exist, you need the platinum version of guile3d.
Did you get it to work with my example group?

Yes I see that, I was looking in wrong place.  I do own platinum version of Denise (3 to be exact), maybe I should give one to James so he can play around with it.

I tried using your code but had no where near your results.  I have been so scatterbrained that I have yet to get it all working like it should before I attempted this.  Today is my first day and have learned much, however I am still a "newbie".  I have been going in many different directions such as learning one thing and before I master it, learn something else.  DAMN YOU ADHD!!! 

It appears at the moment I need to correctly get this working with XBMC before I attempt this again. However, I am having trouble.  I have been learning so many things that they all meshed together and I confused myself.  I think maybe I should start over from scratch.  Once i get it all working, then re-attempt.  My main issue at the moment is having V.C. successfully browse the XBMC itself.  In fact the only real command that seems to work flawlessly is "GO HOME" 

Anyways, when I finally get off the ground I am very excited that this is available to us.  I suspect that I will be using Denise along with V.C. for the foreseeable future, her avatar is just so nicely drawn.  By the way, do I have to change anything in your code like for example, my login and password?  Or is that irrelevant since I will already be logged in when I attempt to call her?  Also, do you shut down the speech rec on Denise or allow the speech rec to listen?

Any pointers you can throw my way would be most appreciated.  I may be a newbie but I will get it down.  I mastered Denise and AIML in only a few weeks.  Since I already have a general grasp of what V.C. is and what it can do it should be much shorter time frame than that.
Title: Re: New Here
Post by: Kalle on July 08, 2014, 08:35:06 AM
No hurry, learning by doing  ;)

Please take a look in my connect command by do a double click on the thunder symbol in the command tree. In this command is a decription at the bottom - and yes, you must insert your username and password then save the command tree and make a VC full restart. Click in VC on the "file" menu and "Open Map Editor". Take a look in the map table if the botpass exist, select it and get sure there is a key "botpass" with a "value" stored. If yes, everthing is fine. Take care that the TTS voice samanta also exist or change it to a voice which is in you system installed. Disable speech rec in guile3d advanced settings.
Then speak in you mic which is connected to VC - "can you hear me" and if everything correct, the bot will give you the answer  :bignod

And by the way - it is very nice to give James a version of guile3d - I'm sure if James find the time to play with it, he will find much more things what is possible - Thanks  ::bow
Title: Re: New Here
Post by: danderson on August 03, 2014, 11:48:09 PM
Hi Kalle,I too am new here.My name is Dan and I have been following this thread to make Denise work with voxcommando.So far I can get the test guile 3d to work ok She replies with "i can hear you .....etc. Now I have XBMC installed (gotham) and I would like to get denise to reply with the answers like(what song is this ,,etc) and I would like to learn how to add more commands for Denise,Like how to execute a program (.exe file) in response to a verbal command.
dan
Title: Re: New Here
Post by: Dominique on August 03, 2014, 11:50:20 PM
Hi Kalle,I too am new here.My name is Dan and I have been following this thread to make Denise work with voxcommando.So far I can get the test guile 3d to work ok She replies with "i can hear you .....etc. Now I have XBMC installed (gotham) and I would like to get denise to reply with the answers like(what song is this ,,etc) and I would like to learn how to add more commands for Denise,Like how to execute a program (.exe file) in response to a verbal command.
dan

I know you were having initial issues getting Denise connected to VC as a talking head.  Is it safe to say you finally got a working connection?
Title: Re: New Here
Post by: danderson on August 03, 2014, 11:54:11 PM
I know you were having initial issues getting Denise connected to VC as a talking head.  Is it safe to say you finally got a working connection?

I got a working connection but I'm not dominique,,I just jumped in here ,my name is dan
Title: Re: New Here
Post by: Dominique on August 03, 2014, 11:56:38 PM
I got a working connection but I'm not dominique,,I just jumped in here ,my name is dan

Uhh no.  I know you are not Dominique, Dan.  That's because I am.  ha ha

I was simply asking t he question based off our emails from earlier.  You were having issues getting Denise connected to VC.  I was asking if you made a successful connection.
Title: Re: New Here
Post by: danderson on August 04, 2014, 12:02:59 AM
Uhh no.  I know you are not Dominique, Dan.  That's because I am.  ha ha

I was simply asking t he question based off our emails from earlier.  You were having issues getting Denise connected to VC.  I was asking if you made a successful connection.

Yes indeed. Then just for the heck of it, I installed a new version of vox (in another folder) and configured for XBMC Then I copied the group from the guile3d test one and added it to the group in XBMC tree.Now I get a verbal response in Denises voice ,but her mouth doesn't move .Just learning by doing
Title: Re: New Here
Post by: danderson on August 04, 2014, 12:11:37 AM
Now I just need to learn how to make this scrape function work for xbmc
dan
Title: Re: New Here
Post by: danderson on August 04, 2014, 12:44:17 AM
Now I just need to learn how to make this scrape function work for xbmc
dan
I also want to learn about the agent show\hide settings.Haven't found that yet
Title: Re: New Here
Post by: Kalle on August 04, 2014, 04:12:46 AM
Hi Dan and welcome to the VC Forum.
Ok, I will here explain step by step how it works and hope in this way some user learn a bit about using a Maptable, trigger events ...  ;)
To write here a desciption take me some hours, because english is not my native language and also I will get safe that each step will work for all users.

I use Denise as TTS output instead or also with the TTS.Speak action from VC, with the advantage that "Denise" can run on the same or any other machine as VC. So in this way you can have, for example, in each room a pc with a installed Guile3D bot like Denise, Spock or each other bot character with different voices. In theory you can say "Computer, I'm in the living room" and only the bot in the living room will talk to you.
To do this, we need a special Command Group in which this functions all managed, because there are more than one action to do this.

It is important to know, that we must have the data which should be "Denise" say in VC {LastResult} stored or stored on a place from which "Denise" can pick up the data (eg. in a txt file).
This can be done in different ways, but I will descibe here only the {LastResult} way.

1. Go safe, that you have connected the bot within the command group some posts above http://voxcommando.com/forum/index.php?topic=1650.msg14407#msg14407 (http://voxcommando.com/forum/index.php?topic=1650.msg14407#msg14407) if the bot speak aloud with lip sync: "Yes I can ..." the first step is done and now you have allready access to the bot. If not, please open the VC command editor, select the connect command by a double click and check that the IP-address, username and password are correct written and don't forget that the guile3D software must already run before you connect to the bot. Any error will highlighted orange in the VC history window and when you move the mouse over you can read what is wrong.

What the "connect" command do:

The connect command is triggered by the VC.Loaded event which will fired when VoxCommando start. The whole command create a Maptable in VC (by overwriting a existed key) and store the "AuthKey" automatically in this Maptable. This is necessary, because when you close the Guile3D software, it will create a new AuthKey each time and with this way everything is automated and you must do nothing by hand  ;)
The last action in the connect command will set the voice of the bot, which mean it overwrite the voice which is set in the bot software. Get safe that this TTS voice exist on your system, otherwise change the name to a name who exist or you can delete/disable this action if you use always the same voice.

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

From now on we can abbreviate everything if you want to know only how you get "TTS feedback" from XBMC or other stuff (like what song is this) to your bot without going to much in detail, then you need only to replace one action in your existing commands. Replace the TTS.Speak or TTS.SpeakSync with one scrape action. To make it easy copy the following command in a existing command group and open the command in the VC Editor to see what is going on. The VC.Pause action at the end of the command is required when you use XJson.SoftMute and XJson.SoftUnMute, because VC will execute the unmute action before the text is spoken by your bot. There is also a other trick to let the bot speak first before the unmute is executed without the VC.Pause, maybe I will this explain later if it is a wish.

here the fast way command code:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.0.0.3-->
<command id="780" name="What song is this with bot speak" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>XJson.SoftMute</cmdType>
    <params>
      <param>60</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>XJson.Raw</cmdType>
    <params>
      <param>Player.GetItem</param>
      <param>"playerid":0, "properties": ["title", "album", "artist", "rating","playcount","genre"]</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>XJson.ParseTokens</cmdType>
    <params>
      <param>This is {item.title}, by {item.artist[[&amp;]]}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Scrape</cmdType>
    <params>
      <param>http://127.0.0.1:8000/Agent?function=AgentSpeak&amp;Auth={M:botpass.botpass}&amp;Text={LastResult}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>OSD.ShowText</cmdType>
    <params>
      <param>{LastResult}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>VC.Pause</cmdType>
    <params>
      <param>2500</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>XJson.SoftUnMute</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>What, Which, wie heist der, welcher</phrase>
  <phrase>song, track</phrase>
  <phrase optional="true">is this, ist dass</phrase>
</command>

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

The second command in this group is called "3D bot speak" and how the name said, it will send the data from{LastResult} to the bot, which speak it aloud.
This command has only one action (at the moment). It is the VC "Scrape" action in which contains the bot function "AgentSpeak" followed by the auto generated "AuthKey" from the Maptable {M:botpass.botpass} and the text which the bot should be speak from the {LastResult}. The command will triggered by the "bot speak" event (the calendar icon with digit 9).

The last command in this group "speak test" will show you in which way you send the {LastResult} to the bot. It contains two actions "Result.SetLastResult" which set all what is typed here in as {LastResult}. This can be text, {Match.x} or any other Data which we will send to speak aloud with the bot.
The second action is "VC.TiggerEvent" with the parameter "bot speak" - this trigger any command which contain the event "bot speak" and in our case it trigger the command "3D bot speak", because the command contain the "bot speak" event in his tree.


As next the bot show/hide function - first, copy the following code in your VC command tree:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.0.0.3-->
<commandGroup open="True" name="guile3D show/hide" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1513" name="show bot" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Agent?function=AgentShow&amp;Auth={M:botpass.botpass}&amp;STATE=wsMaximized</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Agent?function=AgentPosition&amp;Auth={M:botpass.botpass}&amp;left=1920&amp;top=66</param>
      </params>
      <cmdRepeat>0</cmdRepeat>
    </action>
    <phrase>show</phrase>
    <phrase>denise</phrase>
    <event>VC.Prefix.Start</event>
    <event>show 3Dbot</event>
  </command>
  <command id="1477" name="3D bot hide event" enabled="true" alwaysOn="True" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Agent?function=AgentSpeak&amp;Auth={M:botpass.botpass}&amp;Text=you welcome!</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.SetEventTimer</cmdType>
      <params>
        <param>2</param>
        <param>hide bot</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase optional="true">please, yes I know, I know, ok</phrase>
    <phrase>ok thanks, ok bye, hide in background, please be quiet, be quiet</phrase>
  </command>
  <command id="1518" name="3D bot hide" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Scrape</cmdType>
      <params>
        <param>http://127.0.0.1:8000/Agent?function=AgentShow&amp;Auth={M:botpass.botpass}&amp;STATE=wsMinimized</param>
      </params>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>hide bot</event>
  </command>
</commandGroup>

This group contains 3 commands:

The first command in this group is the "show bot" command, which can execute here in 3 different ways.
1. by saying the phrase "show Denise"
2. triggered by the event "VC.Prefix.Start" when you say your prefix in standby mode (only if you have enabled the prefix mode in VC Options). For example: If your prefix is "denise" and you say first "denise" followed by any command, the bot will show up.
3. triggered by the event "show 3Dbot" which can you fired by insert a "VC.TriggerEvent" with parameter show 3Dbot in any command to show the bot

this command contains two "Scrape" actions: the first one maximize the bot and the second (is optional - diabled as default) move the bot to a specified postion on the screen (maybe you have two screens, then this is a good option to place it).

The second command is the "3D bot hide event" fired a event to hide the bot and contains two actions.
1. a "Scrape" action which send the text "you're welcome" directly to the bot.
2. a "VC.SetEventTimer" action, which fire the event "hide bot" after waiting 2 seconds.

When you saying the phrase "ok thanks, ok bye, hide in background, please be quiet, be quiet" (note that there are a optional phrases "please, yes I know, I know, ok" which can you say first, but it is not necessary).
This command has one important feature: If you take a look on it in the VoxCommando command tree ->the command name is showing bold, which means it is always ON - VC recognize and execute this command without a prefix in stanby mode. So if you are in ON or standby mode makes no different, the bot will hide when you say "ok thanks, ok bye ...". How you can change this feature will you find here: http://voxcommando.com/mediawiki/index.php?title=Logical_Command_Builder (http://voxcommando.com/mediawiki/index.php?title=Logical_Command_Builder)

The third command from this group is the "3D bot hide" and contain one action.
1. a "Scrape" action which minimize the bot. This command is triggered by the "hide bot" event which is fired from the VC.SetEventTimer" above.


The story will continue later, - need a break  ::zzz

Kalle
Title: Re: New Here
Post by: danderson on August 04, 2014, 10:05:10 PM
ThankYou sooo much Kalle,I'm getting to work on this now ,I'll let you know if I get it.This is very interesting how this works.I have had Denise now for about 2 years and I never knew she could be accessed this way
Dan
Title: Re: New Here
Post by: danderson on August 07, 2014, 10:19:11 PM
 Hi Kalle ,Ok this is great. It took me a while because I wanted to see some of the tutorials and learn a few things.Success......I can now make denise appear and hide,,,,I edited your script a little to give me more options for making her appear ,and the XBMC part works but she would only respond with song titles ,but not albums.So I made a copy of your script then edited the name ,item and phrase ,,,then copied to command tree and it worked.Now she replies with album info.So, I see how to make more commands for this.I am definitely buying this software!    My next struggle is for Denise to respond to "what time is it"
Dan
Title: Re: New Here
Post by: Kalle on August 08, 2014, 05:04:37 AM
Hi Dan, that are great news  :clap

Yes, I've postet only the "what song is this" for XBMC as example, because it is easy to add this for all other XBMC commands which contains speech output  ;)

We have in VC two action parameter to get the time:

1. {ShortTime} will give you the current time back in a short format like this: 1:15 PM (for en-US) or 13:15 (for de-DE)

2. {LongTime} will give you the current time back in a long format like this: 6/15/2009 1:45:30 PM (en-US) or 15/06/2009 13:45:30 (es-ES)

you will find more about variables in our Wiki: http://voxcommando.com/mediawiki/index.php?title=Variables (http://voxcommando.com/mediawiki/index.php?title=Variables)

So if you want the current time in short format spoken by "Denise", you need only this action in your command:


http://127.0.0.1:8000/Agent?function=AgentSpeak&Auth={M:botpass.botpass}&Text=the current time is {ShortTime}

Maybe today I will have a bit time to continue the tutorial above, because I'm sure one of the next question will be - "Why did you trigger bot speak instead of sending the speak action direct to the bot?" The short answer is, the flexibility to change the character, size, position, speech language and much more.
Title: Re: New Here
Post by: danderson on August 09, 2014, 02:36:52 PM
Ok I got it.I was able to copy a command and edit it ,to make it work.   I made a little video to show what I have so far.Of course I will have to edit some of my phrases.The next thing I'm curious about is how you got the weather and how to configure for my area......
&feature=youtu.be
dan
Title: Re: New Here
Post by: Kalle on August 09, 2014, 03:33:15 PM
Hi Dan, I've started to write a tutorial with the most functions for the bot - if you take a look on site two in this tutorial (it has only two at the moment  :D  ) you can read that the bot can speak all data which is stored by VC in a variable like {LastResult}, {ShortTime} ...
So you need only to activate the VC weather plugin http://voxcommando.com/mediawiki/index.php?title=Plugin_WUnder (http://voxcommando.com/mediawiki/index.php?title=Plugin_WUnder)
and then the weather data will be  stored in the {LastResult}, the rest is written in my tutorial  ;)



The tutorial is finished and can be downloaded from this post: http://voxcommando.com/forum/index.php?topic=1650.msg14800#msg14800 (http://voxcommando.com/forum/index.php?topic=1650.msg14800#msg14800)
Title: Re: New Here
Post by: Dominique on August 09, 2014, 07:44:42 PM
Hi Dan, I've started to write a tutorial with the most functions for the bot - if you take a look on site two in this tutorial (it has only two at the moment  :D  ) you can read that the bot can speak all data which is stored by VC in a variable like {LastResult}, {ShortTime} ...
So you need only to activate the VC weather plugin http://voxcommando.com/mediawiki/index.php?title=Plugin_WUnder (http://voxcommando.com/mediawiki/index.php?title=Plugin_WUnder)
and then the weather data will be  stored in the {LastResult}, the rest is written in my tutorial  ;)

Wow Kalle that looks great and should be of great help.  I will be joining you two shortly in getting Denise to be as cool as yours and also Dans.  I've just been a little busy.
Title: Re: New Here
Post by: Kalle on August 11, 2014, 03:43:33 AM
Ok guys, today I've finished the tutorial to use the Guile3D API functions in VoxCommando and I hope the API functions are all clear enough described  ;)

Let me know how it looks for you and also if I have anything forgotten to explain.

Have fun
Kalle

The tutorial is updated and contain now the correct function to chat with the bot.
Title: Re: New Here
Post by: danderson on August 11, 2014, 08:21:18 AM
Thank you so much Kalle, I was able to get the weather plugin to work. And this PDF file that you have provided has most of the answers I was looking for.I was especially interested in the speak in chat function.This is like having the best of both worlds.I'm going to work on this tonight ,,Again Thank you ,I never would have figured this out on my own.
Dan
Title: Re: New Here
Post by: Kalle on August 11, 2014, 08:36:52 AM
Thanks Dan you are welcome.
It would be nice if you share your results with us  ;)

Kalle
Title: Re: New Here
Post by: danderson on August 14, 2014, 08:27:39 PM
Hi, I will post my results just as soon as I learn enough to finish my project.I have been going through the tutorials and reading the forum for information. Learning about payloads now. Of all I have seen so far ,I have yet to come across anything that shows me how to open a program , in my program files. I can open a file and launch a URL ( but in default browser only), set volume , but launch application has eluded me. Can someone offer a link to show how to do this. This has to be a dumb question,so this Topic should be appropriate,(new here).
Dan
Title: Re: New Here
Post by: nime5ter on August 14, 2014, 09:18:57 PM
Launch or Launch.RawParam.
http://voxcommando.com/mediawiki/index.php?title=Actions#Launch

I think it's discussed in Fireside Chat 1 (the videos for new users). Not sure if it's in any other tutorial vids.

If you want to browse directories to find the correct file path for the program you want to open, you can do so within the parameter helper:
http://voxcommando.com/mediawiki/index.php?title=Parameter_Helper

If you've installed a default configuration such as the XBMC configuration, just search your command tree for "Launch" to find an example. The XBMC config comes with a "launch XBMC" command.
Title: Re: New Here
Post by: danderson on August 14, 2014, 10:09:36 PM
Thank you very much ,that is exactly what I was looking for,,you just saved me hours ,,,again thanks....
Dan
Title: Re: New Here
Post by: nime5ter on August 31, 2014, 10:35:17 AM
@Dan - your follow-up question on a different topic was moved over to the "XBMC (aka Kodi) Frodo / Gotham" board.

See: "Video add-on question" --> http://voxcommando.com/forum/index.php?topic=1725.0
Title: Re: New Here
Post by: danderson on September 03, 2014, 12:16:15 AM
Hi Kalle  I had a question about denise and vox . to speak in chat with the dictation box minimized . I have been able to chat if the dictation box is focused but not min.

here's what I'm working with:


Title: Re: New Here
Post by: Kalle on September 03, 2014, 05:07:46 AM
Good catch Dan, this is the wrong function to chat with Denise :bonk, but you have also a missing part in the function at the end (&Text= is a part of the API function which is missing in your scrape action).
I have updated the tutorial.  http://voxcommando.com/forum/index.php?topic=1650.msg14800#msg14800 (http://voxcommando.com/forum/index.php?topic=1650.msg14800#msg14800)


Away from the wrong API key issue above, you need no SendKeys action and also not open the chatbox - please change your command as following:

delete the sendkeys action and change the scrape action with this parameter - http://127.0.0.1:8000/Chat?function=ChatInput&Auth={M:botpass.botpass}&Text={1}

Thats all  ;)
Title: Re: New Here
Post by: danderson on September 03, 2014, 10:18:45 AM
Thank you Kalle !!! , That works perfect . I had tried that  Text={1} , But had the function wrong . The guile sdk says function=AgentSpeakInChat . but what actually worked was  function= ChatInput . I'm curious how you knew this ?    I love this , now I'll experiment with sending AIML commands to denise this way
Title: Re: New Here
Post by: Kalle on September 03, 2014, 11:31:31 AM
No problem   ;)

I knew this, because both of this functions are in the API described and only the ChatInput works. I do the mistake by copy and paste the wrong function from the API in to the tutorial and you have catch it - so thanks for that  ::bow

Kalle
Title: Re: New Here
Post by: danderson on September 03, 2014, 07:09:03 PM
but the API function in guile's SDK says :function AgentSpeakInChat(Text){
   return call('/Agent?function=AgentSpeakInChat&Auth='+AuthKey+'&Text='+encodeURIComponent(Text));

not chatinput  Where does it say ChatInput so I coud have found it?
Title: Re: New Here
Post by: Kalle on September 03, 2014, 07:55:20 PM
Scroll a bit down in the SDK and you will find it  ;)
Title: Re: New Here
Post by: danderson on September 04, 2014, 12:23:17 AM
I'm so sorry for this but I can't find it ??????? :bonk here is my SDK




Title: Re: New Here
Post by: Kalle on September 04, 2014, 07:56:21 AM
take a look at code line 61 to 77 in your SDK file ::yikes

To bring up a bit light in the darkness:

The Agent?function=AgentSpeakInChat&Auth='+AuthKey+'&Text='+encodeURIComponent(Text) is not to chat with "Denise", it will only speak the sendet "Text" aloud and print it in the chatbox (described in the SDK). So we can say it is absolute similar to the "AgentSpeak" function and the difference is only that the text is printed in the chatbox.

The Chat?function=ChatInput&Auth='+AuthKey+'&Text='+Text is to Chat with "Denise" like as you type text in the chatbox and press return. So you are able with this chat function to let "Denise" things do like a search in the web. As example when you say: "tell me more about Phil Collins", Denise give you all the important information about Phil Collins back and speak it aloud. You can also say "play music" and Denise play all the music which she found in your music folder.
Tip: If you get back a long text from a websearch or Denise has read all the information which was interesting for you, so you can say "stop talking" to get "Denise" be quiet.  ;)
I've tested "stop talking" also to my wife, but it doesn't work  :biglaugh

Ok, I hope this clarify the difference between this two functions.
Title: Re: New Here
Post by: jitterjames on September 04, 2014, 10:53:15 AM
There is a top-secret feature in most programs.  "Ctrl-F"
Title: Re: New Here
Post by: Kalle on September 04, 2014, 01:36:26 PM
Haha, yes thats true. Here is a report if anyone does not know the "top secret" function  :biglaugh

http://www.smh.com.au/technology/technology-news/only-one-in-10-know-what-ctrlf-does--here-are-shortcuts-you-should-know-20111130-1o69d.html (http://www.smh.com.au/technology/technology-news/only-one-in-10-know-what-ctrlf-does--here-are-shortcuts-you-should-know-20111130-1o69d.html)
Title: Re: New Here
Post by: danderson on September 06, 2014, 04:03:38 PM
Hey that works pretty good!!! I was one of the 9 out of 10 that did not know that , thanks....
Title: Re: New Here
Post by: danderson on September 07, 2014, 02:15:16 PM
Well ,I just thought I would let you know of my progress , I created a group with commands for google talk , I like this because it's free (no Skype credits to buy), this might be a good plug-in for vox

&feature=youtu.be
Title: Re: New Here
Post by: jitterjames on September 07, 2014, 05:47:54 PM
Looks good.  I don't think we need a plugin.  It seems to works fine as it is.
Title: Re: New Here
Post by: danderson on September 07, 2014, 07:59:55 PM
Well maybe your right , but I was thinking of an easy to open GUI to keep contact names in and numbers, and easy to edit , instead of creating a new command for every new contact . that's what I have so far.
Title: Re: New Here
Post by: jitterjames on September 07, 2014, 08:47:53 PM
You can keep your names and numbers in a payloadXML file.
Title: Re: New Here
Post by: danderson on September 08, 2014, 10:37:18 PM
Hi Kalle , I have a question,,Regarding integrating denise with vox .  The Our Groceries is a great use for RoboB and it works perfectly with TTS voice . And the command for that is : (for example)
 TTS Speak                Are you sure you want to add {1} to your grocery list?
And I think ,{1} is the key information to speak , (the one item) however , if I replace this with :
http://127.0.0.1:8000/Agent?function=AgentSpeak&Auth={M:botpass.botpass}&Text=Are you sure you want to add {1} to your grocery list?   
 When she gets to the {1} she reads the entire grocery list. I have failed to find where that one item is stored for her to speak..
Title: Re: New Here
Post by: jitterjames on September 08, 2014, 10:43:57 PM
You really need to post the xml of the command you have tried to create so we can see what you have done.  It will save everyone a lot of time.

http://voxcommando.com/mediawiki/index.php?title=XML_on_the_forum
Title: Re: New Here
Post by: danderson on September 08, 2014, 11:36:08 PM
Ok ,,Thanks for showing me that , ..
This code works perfect:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.0.1.0-->
<command id="873" name="Add Item dictionary" enabled="true" alwaysOn="False" confirm="True" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <params>
      <param>OurGroceries</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <params>
      <param>importItemsList</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.SetText</cmdType>
    <params>
      <param>{1}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementParent</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Submit</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Are you sure you want to add {1} to your grocery list?</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>Don't forget, Remember, I need, We need, We are all out of</phrase>
  <phrase>to</phrase>
  <phrase>buy</phrase>
  <phrase optional="true">some</phrase>
  <payloadDictation>payloadDictation: Spelling</payloadDictation>
</command>


However , This one does not ,, but I think it should !?!?


Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.0.1.0-->
<command id="873" name="Add Item dictionary" enabled="true" alwaysOn="False" confirm="True" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <params>
      <param>OurGroceries</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementByID</cmdType>
    <params>
      <param>importItemsList</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.SetText</cmdType>
    <params>
      <param>{1}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.ElementParent</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Submit</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Wait</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>Scrape</cmdType>
    <params>
      <param>http://127.0.0.1:8000/Agent?function=AgentSpeak&amp;Auth={M:botpass.botpass}&amp;Text=Are you sure you want to add {1} to your grocery list?</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>Don't forget, Remember, I need, We need, We are all out of</phrase>
  <phrase>to</phrase>
  <phrase>buy</phrase>
  <phrase optional="true">some</phrase>
  <payloadDictation>payloadDictation: Spelling</payloadDictation>
</command>


dan

Title: Re: New Here
Post by: Kalle on September 09, 2014, 07:23:57 AM
Hi Dan, I've tested your second command code "alone" and it seems to work with "Denise".
So I can say the commandstructure is correct - to find the issue, please post your "Command Group".
Two things:
1. Please test the command first with the LogicalCommand Builder in VC by typing a item like Tomatos in the "Test payloads" in the field {1} see picture. In this way you can test the command.
2. You use a question for "Denise" - "Are you sure ..." which makes no sense for the Command "Add Item dictionary" with confirm option, because this command will only execute when you has confirmed it. So the correct syntax for "Denise" is normaly: "{1}, was added to your list" and you must have a other command which is triggered by the confirm event - see the second picture. So if you say YES the "Add Item dictionary" execute otherwise nothing will happens. The confim option is sometimes a bit difficult to understand, but we have tutorial videos on youtube how it works.

Kalle
Title: Re: New Here
Post by: jitterjames on September 09, 2014, 08:55:35 AM
Ok ,,Thanks for showing me that , ..
This code works perfect:

Both xml you posted are simply wrong.  Where did you get the first one?
Title: Re: New Here
Post by: Kalle on September 09, 2014, 09:50:26 AM
Upps, why or what is wrong? I have the same code for add items and you've created it long time ago  ::hmm
Title: Re: New Here
Post by: nime5ter on September 09, 2014, 10:10:35 AM
Just what you mentioned above, Kalle.

1. The TTS of the working command confirms that an item was added to the list. This command is not the one that asks for user confirmation. That happens in a separate command

Also:

2. The working command doesn't use Dictation "spelling". That, of course, is up to a user's judgement, so maybe this was changed on purpose if regular dictation wasn't working.

But this version of the command, even with those corrections, is not the updated xml that everyone has been told to use, so one thing that is confusing is: where did this version come from? We'd like to know because we are trying to keep users from using outdated xml as much as possible.

Also the proper OurGroceries xml groups prioritize the command in the other command group -- the one that uses the groceries.xml payload file rather than a dictation payload. That command is very important to how these commands function, so it would be good to make sure that Dan has correctly copied both, updated command groups if he wants to use the Our Groceries commands.
Title: Re: New Here
Post by: jitterjames on September 09, 2014, 10:11:57 AM
Kalle, you just explained what is wrong.  I am agreeing with you that it is wrong.  VC should not ask for confirmation after the confirmation has already been given.  Dan said that his first XML worked perfectly, but I don't see how that is possible, because it is wrong, and I want to know where he got this screwed up command from.
Title: Re: New Here
Post by: Kalle on September 09, 2014, 10:27:39 AM
Ahh ok, that makes it clear for me and that is why I told Dan to post the whole command group.
Title: Re: New Here
Post by: nime5ter on September 09, 2014, 10:38:56 AM
Yes, that would definitely be helpful, but there are 2 command groups.

We also would like to verify where Dan got the xml that he posted above. If it was copied directly from somewhere, we need to find where it is from so that we can correct the problem.
Title: Re: New Here
Post by: danderson on September 09, 2014, 10:37:04 PM
Ok,,I do apologize for the error , I pasted the wrong line in the wrong command when I posted it . And sorry for not checking it ,before posting . I do have the correct command group and it works fine , but when I would replace TTS voice with the scrape function for denise , she would read the entire list every time she came to a {1} . However I have figured out my problem , and now all works just fine ....Perhaps my incorrect post should be deleted .
Progress so far ...
&feature=youtu.be
Title: Re: New Here
Post by: Kalle on September 10, 2014, 01:00:39 AM
Good to hear that your problem is solved, but it would be nice you post us how you solved it, maybe a other user has the same problem.

Thanks
Kalle
Title: Re: New Here
Post by: danderson on September 10, 2014, 07:19:51 AM
Well I never knew what I was doing wrong in the first place , I simply deleted both command groups and reinstalled the two groups then did the same thing as before only this time it worked , so probably I just made a mistake the first time (unknown) . I'm new to this scripting language , so I'm still getting use to it. I wish there were more tutorials on the "if" "then" statements . I did add the "close groceries" command . Does anyone else on this forum deal with denise and vox ?

Dan
Title: Re: New Here
Post by: nime5ter on September 10, 2014, 08:02:27 AM
There are no video tutorials on the logic block that I'm aware of. A description of each of the logic types/operators is on the wiki, though. http://voxcommando.com/mediawiki/index.php?title=Logic_Block

It's more important to understand fully how payloads and other variables work. Once you're comfortable with those, the basic logic that is available in VC should hopefully make more sense.
Title: Re: New Here
Post by: Kalle on September 10, 2014, 08:35:06 AM
Yes, I use "Denise" and VC all the time and also with OurGroceries. Everything works fine, because I use it instead as TTS.Speak which is very simple.
Title: Re: New Here
Post by: danderson on September 25, 2014, 11:26:08 PM
Hi all ,
 I have two questions , is there a way to add a small delay ,(100 ms), between the activation of a command and the dictation payload within ?
And is there a way to do a mouse click relative to the active window ?
dan
Title: Re: New Here
Post by: Kalle on September 26, 2014, 06:52:09 AM
As far as I understand your first question - NO.
A phrase followed by a payload/payload dictation/payload list/payload range/... are parts of a command which trigger the actions in it - so if you need a pause between these phrases/payloads, speak this parts slowly. It is possible to have a pause between actions, but not between the phrases in the command tree. If you mean a delay before the command will execute, you can add a "VC.Pause" action with parameter 100 at the begin of the command.

Maybe you can give us more details to let us know what you really plan to do with this command.

Answer to your second question: Yes, if your active window is always on the same place with the same size.

http://voxcommando.com/mediawiki/index.php?title=Actions#Mouse (http://voxcommando.com/mediawiki/index.php?title=Actions#Mouse)

And here the same - we need more details, maybe we know other possibilities to help you.
Title: Re: New Here
Post by: nime5ter on October 05, 2014, 11:20:29 AM
@Dan:

Please post new questions in new threads, using an appropriate subject line, and ideally, in the most appropriate board of the forum.

Your latest support request regarding your chess game has been moved to Help with VoxCommando (http://voxcommando.com/forum/index.php?board=3).

New topic subject: "Opening windows at an absolute size & position"

http://voxcommando.com/forum/index.php?topic=1787.0 (http://voxcommando.com/forum/index.php?topic=1787.0)
Title: Why use denise
Post by: deco123411 on September 24, 2016, 10:34:47 AM
Hi Kalle.  I read your post and I know this is an old topic but are you still using Denise.  I heard she is having problems that users are experiencing..  And why just not keep using only Vox commando as essentially you are coming trolling Denise  with vox anyway.  The Denise  image is really not important and this adds more memory usage.
Also Vox can be loaded on every PC as well.
So I'm asking why use both Denise and vox.  What are the advantages as I could not understand on your earlier posts
Forgive my ignorance
Title: Re: New Here
Post by: Kalle on September 25, 2016, 11:02:41 PM
I do not really use Guile3D "Denise" anymore - I have only showing a talking avatar at a time in which VC was no talking head available. There is no advantage at all to use a avatar like "Denise" or any other, but for some users is it not a question of advantages. I have tried only to find a way to control Denise with VC and it was successfully. Sometimes only the way is the target and this exact why VC has a lot of plugins - not for everybody, but good to know if it is possible to use it.
Title: Re: New Here
Post by: deco123411 on September 26, 2016, 07:08:46 AM
Thank you for the info.. always good to keep up to date :clap