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.


Topics - jb5349

Pages: [1]
1
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

2
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/

3
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.

4
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!

5
VoxCommando Basics and Core Features / Can I use Skype as my microphone
« on: September 23, 2014, 12:16:41 AM »
I was thinking of something the other day regarding using Skype with VC and wanted to see if it was possible, and how to go about implementing this. Currently I am using Mobiola Headset for iPhone to have two-way communication with VC to my PC. I would prefer to use Skype instead.. and here's why... through my questions.

1. Is it possible to setup Skype with VC so that, when I call my computer, I have Skype auto-answer. But VC is listening to my call since it is set as the audio input device. Then when it replies, I hear the TTS response via Skype? If so, how do I set this up, and does the VC Skype plugin have this built-in?

2. Would it be possible to have VC know which person is calling and thus provide different information. For example, lets say I call my computer, VC see's my Skype ID and knows its me and says, "Hi Jeff, how may I help you?" and then I can proceed to speak, however when my wife calls, it see's her Skype ID and says "Hi Barbara, what can I do for you?", then lets say I also let someone else I know call in to chat with VC, but since the call is not coming from me or my wife, VC says "Hi there, please provide the passcode in order to interact with me" and then the person must state a code, or VC will not enable any commands.  Is this even possible?  If nothing else, I would like to be able to have the responses more personalized based on who is talking to VC, between my wife and myself. Would be great it VC could at least track a profile and then switch between the MS Speech profiles and even preferred TTS voice, etc. based on who is calling on Skype. (Feature request maybe?)

3. Finally, assuming the first option is possible, would it also be possible to use the Skype chat so that VC does OSD info in the Skype Chat and anything I type is treated like I spoke it? That would be really great to have available.

If anyone has been able to get this or something similar working, I would love to learn how as I find the Mobiola headset very limiting and the potential of using Skype as the two-way audio interface with kind of a user personalization a really great solution in general, and also for all of us using iOS devices (iPhones, iPads, etc.) But also it makes it even more universal to anything which can run Skype.

Thanks!
Jeff

6
Feature Requests / Results.Replace for a Payload Response
« on: November 19, 2013, 05:08:17 AM »
Hello, I have run into an annoyance that I wasn't sure if a feature existed that would correct it.

I have a payload XML of relationship titles and one of them is "cousins on my moms side". For the TTS.Speak part, after it reads me back {LastResult} from my Map of relationship names to titles, I have it state the payload {1}. The problem is that it is not saying the title using proper grammar. I want it to say "your" instead of "my". I know how to use results.replace to do this but how can I do this on a payload response, even if I sent it to a variable first. Is there a way to do a replace on the payload itself before TTS.Speak or how could I do this?

If it isn't possible yet, maybe a payload1.replace, payload2.replace, etc. would be nice to have for situations where I need to re-phrase something using proper grammar?

Thanks!

7
Feature Requests / Belkin Wemo and Phillips Hue Support
« on: November 18, 2013, 02:00:37 PM »
Any chance since the APIs and SDKs are available that there could be plugins or support for Belkin Wemo devices (switches, motion sensors, energy usage monitor, etc.) to be used with VC. I know there is an HTTP interface for these and I have seen some python scripts on the Internet, but it would be great to have a nice plugin that 1. detected the devices and added them to a payloadxml and 2. sent commands to the devices

Also, same idea with Phillips Hue Wifi to Zigbee interface to control LED light bulbs.

And by chance, the new LifeX wifi bulbs (which are controlled directly through a nifty mesh network using only 1 IP address) www.lifex.co


I have managed to get VC to work using my Radio Thermostat brand (3M Filtrete model Wifi Thermostat) from Home Depot to read me temperatures and modes, etc. I still need to figure out how to send the JSON formatted commands back to it. Maybe I just need an example of how to send a POST request with text data in it to the interface.

And pretty much being able to control other Internet (wifi) connected devices as they are introduced to the marketplace.

8
Feature Requests / Mute microphone when TTS
« on: November 16, 2013, 12:48:05 PM »
So I saw the experimental feature of not listening when TTS speaking. It doesn't seem to work so well and was wondering if this could be addressed in version 2?

Some ideas to make it work without using special hardware. This has to be done in the VC code itself.

1. Mute sound input device before TTS event
2. Set sound input level to 0 before TTS event and restore to previous level after speaking stops

I know this would be better than me having to press the mute button on my mic so often.

9
Feature Requests / If A contains B (options)
« on: November 16, 2013, 10:41:39 AM »
I'm not sure if this is entirely possible or not or if there is a method for this but, can the B in an If  A contains B have a list of things to match?

Following the same logic of using phrases, it would look something like this...


If {LastResult} contains "option1, option2, option3" then

Perform action(s)

Else


Ok so real world example....

If weather conditions contains "rain, thunderstorm,  drizzle" then

tts.speak " it's raining | looks like rain | it's currently raining"


Now second part of this question, if we can't list the items like option1, option2, etc. to match against , a payload XML be defined in the B field to check against? So instead of just a few options maybe I have a long list of them?

Anyway, wondering if this could be done?

From a programming side, looks like if condition A string contains B string then is the way it appears to work now. With my example, it would follow along something lines of...

Check B string for delimiter ","  (if it exists then parse the items then run through a For loop until each B string is compared to A string for a match) and if any are a match then do Actions
Else do standard match of A contains B and if there is a match do Actions

Anyway, hope this can be done as it would sure save having to create so many If then logic items for similar words I want to match.

Thanks!

10
Feature Requests / A simple query function (Question / Answer)
« on: November 16, 2013, 04:06:30 AM »
I know this has been brought up before but why not have a new option called query or QA in the list to go along with payloads, phrases, etc. This time make it have two parts.

1. The question which is essentially OSD/TTS speaking
2. The available responses which should be pretty much like the IF THEN functionality but setup more like a Select Case (for the programmers out there).

The main difference is, once a query (QA) is triggered, all other XML voice commands are ignored until one of the available responses is given. And lets say there is always a kill switch called "Cancel" to the query to override it.

Example:

Question: Do you prefer Blue or Red?

Available Responses:

Blue, Red, I prefer Blue, I prefer Red, Neither

Each available response can have an action tied to it. The possibilities are now huge!

Example 2:

This example uses a normal command then linked to the QA action.

Phrase: "I would like to listen to some music, I would like to listen to music"

Response: QA (query) TTS.SPEAK "What type of music would you like to listen to?"

** At this point all other XML phrases and commands are ignored except the list of choices **

Available Responses: "Classical, Rock, Jazz, Country, etc.)

Let's say the user chose "Classical" and the action linked with that is another QA(query) which asks "Which artist do you prefer?" and available options could be "Bach, Beethoven, etc."


Can you see the possibilities, and the feature would be fairly simple to implement as it already kind of exists. As far as the isolation of commands goes on the QA(queries) from a technical standpoint. Unload existing XML from speech recognition, load temporary available responses, then unload those once a response is given and return to original list of XML commands. Simple and reduces false recognitions and allows Yes and No to apply to many things in a proper Context of a question.

Please please please add this! Or if it can be done.. please demonstrate it with examples. Thanks!

11
Feature Requests / Alarm Clock
« on: November 16, 2013, 03:52:00 AM »
I know this may seem simple enough, and maybe someone has done this already. If so, please share.

How about a built in timer/alarm clock function.

"Wake me up tomorrow at 6:00am" or "Set a timer for 30 minutes"

Then VoxCommando starts a macro or process (lets call it a countdown) until the event time is reached.

Then there could be three options. User can just enable the one they want to use.

1. Wake up with speaking

2. Wake up with sound or music file playing

3. Wake up with speaking first, then play sound or music

For the alarm, it could be a "Don't forget to take the bread out of the oven" or simply playing a sound

Both the alarm clock and the timer can be turned off or silenced by "turn alarm off" or "snooze alarm" or "timer off"

And finally, there should be the option of multiple timers and even multiple alarm clocks.


Now to expand upon this idea further, when the alarm goes off and the alarm is silenced, VoxCommando proceeds with "Good morning John" and then can proceed to offer up additional data. Weather, schedule, etc. as the user prefers.

It seems like this can already be done to some degree with existing functionality. The question is how?  For example, is there a way to have VoxCommando check for status changes, weather it reads data from a URL, a file, etc. every so often. Maybe every 5 minutes poll for data?


This would be a great feature to have as it could be modified for other things like turning on devices, lights, etc. at certain times on certain days and/or after a timer goes off.




Pages: [1]