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 - jb5349

Pages: [1] 2 3 4
1
Feature Requests / Re: Community collaboration.
« on: October 04, 2014, 03:45:42 PM »
I do like the idea of community collaboration and had a similar idea myself but also see the challenges of it. I have been slowly working on a framework of sorts. Basically a set of basic commands which anyone can use to build their system's personality without having to start from scratch. I am creating a generic personality template which can be expanded upon by anyone.

I do think the XML exchange is good but there isn't a lot of examples on there for general use. I hope to help that be putting out a huge collection of examples and how to tie all of the most common things together. Then if you have a specific system or device you interface with, you can just add a few extra commands or modify what is there so it works with it.

2
Command Builder Reference / Sending spoken text to Skype text
« on: October 04, 2014, 03:29:03 PM »
I would like to be able to send the TTS spoken text to Skype text message. The problem is that in my TTS.Speak I have random responses separated with the | and I would like the one that is spoken also sent through Skype.SendText

I saw something mentioned called friendly payloads, is that something I would use here? I am just confused. I tried {LastResult} and {LastSpoken} and see those didn't work like I thought.

Any help or direction would be appreciated.

Thanks,
Jeff

3
Integration Ideas / Send all unrecognized commands to Pandorabot?
« on: October 01, 2014, 01:23:59 AM »
Ok, so I am asking this generally but this could also be used for something besides Pandorabot. How can we send the unrecognized commands to a Pandorabot to get the responses from it? I know there has to be some kind of priority set so the VC commands are checked first and then the spoken text is passed along to the bot and the response returned and spoken as TTS.

1. Is this possible?
2. If so, how would this have to be structured to work?

I have some extensive AIML files I would like to mess with so I am interested in VC checking the bot when it can't find a match for what I asked. I realize this requires some kind of free dictation and the easiest way is to create a command with a prefix word and then the dictation so it can pass the text string to the bot. I understand all that but wanted to have this more seamless.

Is there a way for it to always listen for dictation and match the commands it finds defined in VC first then refer rest to pandorabots? That may be a better way to put it?

Thanks for any input or direction.


Also, is there any way to get Program AB to run with VoxCommando? I was thinking of customizing the AIML responses so they included some of the VC commands in them (i.e. var.Variable) or run some actions.  I see Program AB supports the new AIML 2.0 standard and ALICE 2.0 which already has some really great features built in. Would save a ton of time in developing the personality of my smart home if I could use the AIML scripts. Pandorabots has changed everything and the new Developer API is not available yet publicly. I am thinking if I can have my own mini pandorabots like server running on my VC system, and if VC can interact with it, that would be ideal. Here is what I am referring to by the way. https://code.google.com/p/program-ab/

4
Tips and Tricks / Re: VC Knows All About You
« on: October 01, 2014, 12:17:56 AM »
Ah I see. Very clever and not so obvious ways to do this. I will give them both a try and see what I can come up with. Thanks for the examples!

5
Tips and Tricks / Re: VC Knows All About You
« on: September 30, 2014, 06:56:05 PM »
Great thank you! I am going to give it a try.

I am really trying to figure out how to give my smart home a personality. I am thinking of a framework of commands which anyone can build upon to customize it for their own use, adjusting personality, etc. I know there are so many different setups out there but I find that in order to get people to use something, they have to be able to talk to it like it was another person, not having to change how they talk for the machine but rather have the machine understand them. I guess this is NLP in a way. But I really like the idea of creating a base personality that others can then take it to another level.

We will see how it goes.. if I come up with something interesting, I will be sure to share it in the XML exchange.

Right now I am trying to limit the commands to the essence of its meaning with all of the possible alternate words as optional. Only adding extra words when needed to keep commands separate from others that are similar.

One question as I haven't found the answer yet in searching..

Can you have a command response be constructed into a variable through a series of IF/Then Else statements in a Macro?

Example..

I give a command but for the response I have a variable called var.TheResponse  and it goes through a series of IF/Then statements building the variable.

So If A = B then
var.TheResponse is "The first part of my response is {1}

Then another If then A= B
var.TheResponse = var.TheResponse + "and this is the second part of the response"  (is there some kind of Append to existing Variable command?)


I am basically wanting a response to be customized based on a set of conditions. Maybe even based on what other variables contain.

Just so it can pull from multiple stored variables to create responses which make it seem more intelligent and human like.

So the end result of a custom build response is then spoken with TTS.Speak var.TheResponse

6
Tips and Tricks / Re: VC Knows All About You
« on: September 27, 2014, 10:14:02 PM »
I am only using Skype at this point since I don't have any other mic setup. But I see your point about when not using Skype. I already created a switch user command.

"This is John speaking" or "Switch user to Susie", etc.

This sets a variable  {var.CUser} to be the first name of that person. That is fine unless you have more than one person in the house with the same first name.. In which case use the first and last name and then have VC shorten it when speaking.

I have everything built for having VC to know all about the user, however I just have to complete the numerical data entry stuff and then I can test it. If it all works well I will post the XML.

7
Tips and Tricks / Re: VC Knows All About You
« on: September 27, 2014, 06:13:38 PM »
Ok great, thanks for the tips and suggestions. I will try these out and see what I can come up with.

Right now I have the My Favorites, My Relationships and My Personal Details as separate commands, also have one for preferred settings to be used for things like temp, volume, etc. So I need to create a new one for numbers input.

Is there any way to go back and process words and convert them to numbers. Lets say "Remember my address is one two three oak street" and I want it to take that and make it "123 oak street" before saving to the map. Or doing the same with a phone number for example?

I know there was some kind of payload with numbers that had words and the numerical value. Maybe if I set that as optional before the dictation part, it could work for address entry?

I see that I need to create two commands here. One ready for numerical data based on some key words like phone, etc. and one for address, etc.

8
Tips and Tricks / Re: VC Knows All About You
« on: September 27, 2014, 01:57:12 PM »
I know that was a little long winded.. here is a simple way to put it..

Make VC...

Remember that A is B. And store that for each user.

Examples:

favorite color = blue
favorite food = pizza
preferred temp = 68
preferred volume = 25
preferred light level = 75
birthday = november 29th
wife's phone = 1234567890
dad's phone = 5555554555


To be able to create these memories, you have to limit what VC can remember to some degree, just to make it work well. So using a payload XML, you can actually come up with a list of choices. Can be hundreds (maybe thousands as I don't know technical limitations)

List would look something like this

color
book
movie
song
artist
album
music
film
number
food
vacation spot
home address
work address
email address
phone number

etc..

whatever you want to be able to say (i.e. "Remember that my A is B") with A being one of the payload XML and B being Dictation.

I am continuing to experiment and develop this further and if I can get something I think will work for most people, I will post under XML exchange.

9
Tips and Tricks / VC Knows All About You
« on: September 27, 2014, 01:17:39 PM »
So I have been working on this idea of having VC know all about the person that it is interacting with. I have setup so that depending on who calls in using Skype to VC, it knows who that person is and then stores that info in a variable which is uses to do other tasks. I also set a command to switch user or basically state this is "so and so" and then it also sets this variable that way as well, in case not using Skype or needing to override it for some reason.

So with VC knowing who it is talking to the following things can happen right away.

1. VC can switch MS Speech Recognition Profile so it uses a trained profile for the person it is talking to for better accuracy.
2. VC can now refer to the person it talks to in a variety of command responses, so it seems more human like. Just by including the variable in your TTS string.

Now to take this to a new level, I started playing with the idea of building a database of knowledge about that person. In this case I started by using a simple Map which has a key and value. So by creating a table for that specific user that VC is talking to, I can have VC know about that person, and pull information about that person as needed in any of my other commands or responses.

For example:

If I say..  "Learn that my favorite color is blue" then VC stores a key called color and a value of blue.

Then later I can ask, "What is my favorite color?" and VC says "blue".

Simple enough. Now I can do this for anything really. Remember my birthday is on "November 29th".

Later, I can setup an automatic checking for current date and maybe have VC say "Happy Birthday Jeff" when it is actually my birthday. If not, I can ask, when is my birthday, and it responds.

But lets take this a step further. Not only can this Map include any type of info pertaining to the user, but now we can look at making this info available to other users should they need to know.

For example, I can have a command that, regardless of the user speaking can be  as follow's  "What is Jeff's favorite food" and then it checks the map for Jeff and returns the info to that user. Obviously you want to limit which type of data can be done this way, but it makes VC seem much smarter. "When is my wife's birthday", "What is my wife's favorite movie", etc. Maybe if your other user is a child, spouse, etc. you can then learn more about them through VC. Assuming they interact with VC and provide this information. If nothing else, you don't have to remember it all and can ask your smart home the answer.

Now, the final and ultimate level to this idea is basically to let VC create these "memories" on the fly. So if the Map doesn't exist for a person yet, it should be able to create one, then start adding in the information. "Remember my dad's phone number is 1234567890" and then when dad's map doesn't exist, it says "Ok, I will remember" and then it creates a new map called JeffsDadsInfo and a new key called phone number and value of 1234567890. So next time you ask, what is my dad's phone number, it matches dad's to JeffsDadsInfo and phone number to the map key and then returns the number. Then lets say another user "my wife" is talking with VC and asks "What is Jeff's Dad's phone number" and VC knows to check the map for that entry.  I can see creating the table name on the fly and linking it back with the command being a bit difficult.

I guess with this information you can also have VC use it when needing for other things like..  For Hue users.. VC can have a response "Would you like me to set the light color to blue? I know its your favorite."  Or after a command of "Play some music"  VC can say, would you like to listen to "Favorite Song" because it knows this. It could be favorite artist, band, etc. Or it may say "How about some James Brown" assuming you have that as a favorite artist.

Taking this further.. "I'm getting hungry" and lets assume you said you favorite food was pizza. VC says "Hmm. perhaps we should order in some pizza" or maybe if delivery isn't a choice, it could just be "What should I have for dinner?" and VC says "How about pizza?"

I hope you see the point of this is that you make VC aware of your preferences. You can even do this with things like volume level, light level for different rooms, etc. just be having it remember these things and recall them later. Oh.. Remember that I prefer the temperature to be 68 degrees at night. Or remember that I prefer the temperature to be 72 degrees during the day (sorry using Imperial here). All kinds of routines can be created for VC to know you.. Although I can see that being funny if VC checks each user and one has preferred temp to be 68 while the other is 74. Could be thermostat war!

Anyone have any ideas on generating the map names on the fly and having them work with commands later on. OR maybe this means creating new commands to interact with them on the fly as well? Any feedback or suggestions would be appreciated.

10
Just to add to that, you also need VC.StopMacro after that so it doesn't go ahead and try to give the normal response and ends the Macro.

So I have it working like this..

If var.CUser = Jeff then

Map.Get JeffsFavs {1}

This checks to see who is talking, and gets the correct list of favorites (Map). {1} is the result of the list of options I provided in the command. (i.e. color, song, food, etc.)

If Last Action Success

Else

TTS.Speak "I don't know"

VC.Stop Macro

Then below that I have the normal response if all else works. I could probably put this in LastActionSuccess as well and not use the stop macro. So it works either way, but at least with the way I have it I can disable the checking for nothing if I had to.

TTS.Speak "Your favorite {1} is {LastResult}

11
Awesome thanks! I just couldn't figure out how to go about it! That helps a lot!

12
So I have a map setup with favorites and with relationships. I can have VC store a new entry such as  color and blue with color being key and blue being the value.

However, my issue is not with creating new keys/values or looking up existing ones, but with how to handle when no key/value exists yet.

For example, I ask, what is my favorite food. VC checks for the key food and it doesn't exist yet, so I want it to return, "I don't know, perhaps you can teach me that"

I tried using {EMPTY} but that did not work.

Any ideas? Thanks!

13
VoxCommando Basics and Core Features / Can I use Skype as my microphone
« on: September 24, 2014, 01:13:23 AM »
And see I didn't even see the Control Skype page before you linked to it.. Just this one http://voxcommando.com/mediawiki/index.php?title=Plugin_Skype  which now I see a link at the very top of that page for the Control Skype page. I was looking for the answers in the wrong place because I wasn't even sure what I was looking for.

Anyway, thanks for clearing all that up jitterjames. Great software by the way, especially with the v2.1 update!

Also thanks nime5ter for the change to embedded video as that is much easier to find when that is what I was looking for since other plugin pages have them. I learned several new things today about VC and how the wiki is setup.

Thanks again! Now back to command building..

14
VoxCommando Basics and Core Features / Can I use Skype as my microphone
« on: September 23, 2014, 04:22:21 PM »
Please embed the video tutorial in your Skype Plugin Wiki page. You referred to it but I had to go search it out on Youtube to find it. I have been away form working with VC for many months now and since version 2 came out I thought I would come back to it. I am a little rusty on using VC and haven't kept up with all the changes, video tutorials, etc. so I apologize.

For those like me.. here is the tutorial being mentioned.


Thanks jitterjames for pointing me in the right direction.  :)


15
VoxCommando Basics and Core Features / Can I use Skype as my microphone
« on: September 23, 2014, 12:25:21 PM »
I understand what you mean. I forget that VC shows events in the history. I will see what I can come up with. Thanks!

Update:

I found the event of Skype.clsinProgress.cltIncomingP2P when the call comes in. But I have not found a way to determine who is calling? I am wanting to get the SkypeID of the caller so that I can setup a IF A ==B statement. If SkypeID is MySkypeName then set a variable {CurrentUser} to "Jeff".

I do see where it shows to get user info, but it appears you already need to know the Skype ID. If anyone has made this work so that VC can answer the call and say "Hello" and then your name based on who is calling, that is what I am trying to do.

Thanks,
Jeff

Pages: [1] 2 3 4