Community Event / Creation VoiceMacro is looking for Testpilots!

Hi

My new app "VoiceMacro" is looking for testpilots!

Are you interested in controlling your Spaceship with your voice?

Not fully satisfied with available Voice-Recognition enabled Macro-Tools I have created my own geeky solution :D

Current public version and latest test build can be found here -> http://www.voicemacro.net/download/

Edit: Don't miss to check out Traveler's awesome VoicePack and Profile "M.A.T.E." !

Features

  • Activate macros by voice command and/or keyboard / mouse buttons
  • 32+ actions (press key/button, move mouse, open file, play sound, speak text, activate window, rename window, auto play macro on profile activation etc...)
  • Conditions (wait for pixel, toggle ON/OFF, rotate, rotate end, OnTimeout, loop start/end etc...)
  • 4 Variable types (local, profile-wide, global and global saved to disk)
  • Auto-switching to different profiles depending on current active window (you can have multiple windows attached to the same profile)
  • Multiple commands can share one hotkey using single-, double- and triple-click
  • Mouse positioning relative to screen or window (topleft, topright, bottomleft, bottomright or center)
  • Repeat 1 - infinite, loop's within repeats
  • User interaction / feedback: Dialogs, OSD (On Screen Display), Text to speech
  • Recording function for mouse and keyboard
  • Testing macro-actions step by step
  • Auto-action when profile is activated
  • Placeholder's for repeat count, loop count, macro name or profile name, and many more you can include in "speak text" and other actions
  • Recoursion detection
  • Allow only one or multiple threads per command
  • Speech command hint's
  • Informative tray-icon
  • Import/export profiles

Important Notes:
- Recording function is still very basic and unfinished (will be iterated later since it's a lower priority feature for me)
- WaitForPixel does not work with games running in exclusive mode DirectX fullscreen
- The voice recognition gets SIGNIFICANTLY better (self learning) for each new voice command over time

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

Here are a few examples of what I do with VoiceMacro in ED...


"Start hyperjump" = All power to engines and system, full boost in a repeating loop until mass lock dissapears then all power system and start frameshift drive

"Scan Market Table"
= Automatically create screenshots of Market Table for EliteOCR (depending how much items the market has it makes more or less screenshots)

"Select next destination"
= Automatically switch between 2 destinations on Galaxy Map and plot route (current system is saved in variable that is saved "reboot protected" on disk)

"Watch Frameshift Drive"
= Disengage frameshift drive as soon "Safe disengage" appears

"Leave station;Exit station"
= Close all "windows", select "Launch Button" and activate, wait for "leave station" message, thrust up, retract landing gear, thrust some more... then say "ship is yours now commander"

"Go to hangar after docking"
= Ship will be automatically sent to hangar after docking completed (when using auto dock computer)


Another useful feature is the detecting of double- and trippleclicks from hotkeys to make the same button do 2 different things:

For example I have 0% speed (single click) and -50% speed (double click) on the same button
Or 50% speed (single click) and 75% speed (double click) on another button


this macros (and more) are all included in my attached ED profile (currently 40+ macros), with extra lots of comments to explain the macros

Fly safe!
CMDR Dragnet
 
Last edited:
Screenshot's with ED Profile:
View attachment 12855

Profiles_0623.png
 
Last edited:
I think one thing that is probably on some people's mind is where this is potentially better or easier than the already popular voice-attack software.
 
The reason VoiceMacro exists is because in VoiceAttack I missed key features like "Automatic Profile switching according to active Window" (played a MMO where Multiclienting was possible)

VoiceMacro can be used for free without any limitations

I honestly can not say what else is different because I deinstalled it when I started coding VoiceMacro back in september 2014, I was out to do my own solution "from scratch"

I play Elite: Dangerous, so if someone requests a "Elite-specific" feature I will probably do it ;)
 
I had a play with it and its very good, though i still prefer voice attack as it supports conditional statements which is a feature i use a lot.

The pixel colour thing is a really nice addition, i could see how that could be useful, for a few things, though can't think of anything specific in ED i could use it for, but a great little feature.

I would say its great for anyone who doesn't want to pay the $8 for Voice attack. and wants a simple free voice controller.

It's got the beginnings of a great program, good luck with it :)

Voice to text would be a great addition for dictating messages to comms, if that was in it, i could see me using it over voice attack
 
Last edited:
Thanks for the comments and feedback Dizzy BH :)

I have fiddled around with creating more macros for Elite this week while playing it, and besides
other new features and changes, "OnTimeout" was born - a conditional Action ;)

This Macro I have just created last hour shows off what you can do with
"WaitForPixel" in combination with "Rotate", "RotateEnd" and "OnTimeout":

newStuff.png
 
Last edited:
Another sample how I use "WaitForPixel" and "Loop" Action:

Request docking, no matter what Tab was selected it will press "E" until "WaitForPixel" finds the "Contacts" tab then exit the Loop and does the rest of the Macro
DockingRequest.png
 
"Voice to text" should be quite easy do implement, I will check that out...

Here is another example using "WaitForPixel" I have just created for my laziness :D

It does Screenshots from the whole Market Table, taking into account various
list sizes and does only as much screenshots as needed in a few seconds, ready for EliteOCR

MarketScan.png
 
Last edited:
Thats a great use for the wait for pixel, am sure many commanders that use trading tools and elite ocr would find it of great use.
You might want to put a post about VoiceMacro and the wait for pixel in one of the OCR threads as i think thats a great function and the people there would find it of great help.

The conditionals that are in voice attack are a bit more advanced than the basic wait for command that you have.

It allows you to set up a value holder (called a condition in VA)

You can assign a value to this condition (i think it supports only integers right now)

So you could set up a command - for simplicity's sake, i'' give an example with a lights command.

You would have a condition called lights_status (initially it would not be set to anything (null i guess)
your command lights would execute your keypress for lights,
Then check to see if your lights condition (lights_status) had been set.
and say either lights on or off depending on what the value of the lights_status was

begin condition lights_status = not set
say "lights on"
set lights_status to value 1
end condition (and stop command if condition is met)
begin condition lights_status = 1
say "lights off"
set lights_status to value null
end condition (and stop command if condition is met)

VA has the option to end the command if the condition is met thus preventing anymore of the command from running.

VA does not currently support text values in conditions natively (i think it might be possible with a lot of tinkering about but is more complex to do).

I can see how comparing text values would be a better option.

Of course i am comparing your excellent work to Voice attack as its as far as i know its the only other voice control app that is currently out there.
People have been using these condition to set a random value (say between 0 and 10)
the by checking the condition it would say a different sentence.

although that i believe is a bit defunct as voice attack now allows you to seperate things to say with a ";" and pick a random one when the say command is run.

I think it would be a good idea if you looked at the latest beta version and saw what extra functionality it has since you used it last.

Copying it as it is would probably not benefit your application much, though by seeing what is currently implemented and how you could maybe do things slightly different would give it an edge and a reason for people to move to yours rather than voice attack. as i think people who currently use voice attack would need something significantly different to warrant them moving across to your app even though it's free
 
Last edited:
VA does not currently support text values in conditions natively (i think it might be possible with a lot of tinkering about but is more complex to do).

I can see how comparing text values would be a better option.

It is capable of doing that: (or I missed the point of what you are meaning)

http://www.voiceattack.com/files/voiceattackhelp.html
{TXT:valueName} - The text value stored in a text variable will be retrieved. This works the same way as COND (above), except that... well... you get the idea. This token must be set prior to using, otherwise the value will be, 'NOT SET' when accessed.

{TXT:valueName:defaultValue} - The text value stored in a text variable will be retrieved (just like above), but, if the value results in, 'Not Set', the text in the position of, 'defaultValue' will be used. This value does not have to be set prior to using (since the default value will be used instead).

Copying it as it is would probably not benefit your application much, though by seeing what is currently implemented and how you could maybe do things slightly different would give it an edge and a reason for people to move to yours rather than voice attack. as i think people who currently use voice attack would need something significantly different to warrant them moving across to your app even though it's free

That's what I see too. If you don't provide features, that VA lacks and you don't develop your tool into something really comparable to VA, then probably noone, who uses VA, changes to your tool. Even if it's free of charge, cuz 8$ aren't an argument not to pay for an excellent tool... On the other hand is developing software without getting any worthy back (money, huge reps, etc.) is sometimes really painful (was developer too). And the gamers community is often hard to please, crying for features, bug fixing, etc.

Wish you all good and I keep an eye on your piece of software...
 
Voice to text would be amazing and would definitely turn me into a convert!

I use Voice Attack purely as a source of text macros to talk to other players. One thing I don't think VA does, is allow you to enable/disable voice command and key press input (with a command or key press) when they are not needed, without alt-tabbing out of the client. I say this because I one sneezed, VA interpreted that as my saying the word "Demand", and told a heavily armed and hitherto friendly Anaconda it had 15 seconds to drop all its cargo or die! That took some explaining... :eek:
 
It is capable of doing that: (or I missed the point of what you are meaning)

Yes you can have text variable but i believe with conditions it can only make comparisons with integers

example

setText myNormalTextVariable = 1
setText myOtherNormalTextVariable = 2

begin condtion if myTextVariable is not equal to myOtherTextVariable
say TXT:myTextVariable is not equal to TXT:myOtherTextVariable

Wouldnt work because it can't perform comparisons on text values

however the following would work

set Condition:myNormalVariable = 1
set Condition:myOtherNormalVariable = 2
begin condtion if myNormalVariable is not equal to myOtherNormalVariable
say Condition:myNormalVariable is not equal to Condition:myOtherNormalVariable

I could be totally wrong and Comparing text values might have been added since i last looked
 
Last edited:
Voice to text would be amazing and would definitely turn me into a convert!

I use Voice Attack purely as a source of text macros to talk to other players. One thing I don't think VA does, is allow you to enable/disable voice command and key press input (with a command or key press) when they are not needed, without alt-tabbing out of the client. I say this because I one sneezed, VA interpreted that as my saying the word "Demand", and told a heavily armed and hitherto friendly Anaconda it had 15 seconds to drop all its cargo or die! That took some explaining... :eek:


You can disable keys and voice commands

I have a toggle keys command that turns recognition of keypresses on or off: Voice activated obviously as once i turn keys off i cant turn them back on

The same could be done with voice but you would need a keypress to turn it back on as its not recognising voice once youve turned it off.

Its under the other stuff button enable/disable - HotKeys
Make voice attack stop listening/make voice attack start listening
one for joystick keys too.
 
I'm really glad to see another very competent entrant into voice controlled gameplay.

Like many other players I use a HOTAS - will your software cater for that (.BINDS, etc.)?
 
You can disable keys and voice commands

I have a toggle keys command that turns recognition of keypresses on or off: Voice activated obviously as once i turn keys off i cant turn them back on

The same could be done with voice but you would need a keypress to turn it back on as its not recognising voice once youve turned it off.

Its under the other stuff button enable/disable - HotKeys
Make voice attack stop listening/make voice attack start listening
one for joystick keys too.

To disable voice recognition, I switch to another profile with the command "deactivate" and in the other profile I say "activate" and it switches back to normal operation without deactivating the voice recognition itself. It just doesn't interpretes, what I say in the "empty" profile.
 
Suggestion

"Voice to text" should be quite easy do implement, I will check that out...

Here is another example using "WaitForPixel" I have just created for my laziness :D

It does Screenshots from the whole Market Table, taking into account various
list sizes and does only as much screenshots as needed in a few seconds, ready for EliteOCR


Nice work, that is a very interesting feature !

I wanted to give it a try and downloaded http://www.voicemacro.net/download/V....9.9.7beta.zip

and Elite_Dangerous.zip

but you do not seem to have added any of the "WaitForPixel" commands in the profile you are sharing.


The ability to do more complex operation with variable would indeed be appreciated.
They now have VA asking you a question and waiting for the right answer to proceed !
https://groups.google.com/forum/#!topic/voiceattack/rWyhE7Qyjco
Just to show how powerful variables can be.

One thing that VA does wrong is asking us to use the default keep or their defined profiles in the game.
Most users will modify these to suit their needs !and most user will have done this in game before even having heard of Voice command.
As the profiles grow bigger and bigger, it becomes harder/more work to ajust a shared profiles to your need.


What would be helpful is a way to easily apply the users key binds to Voice Macro and not the other way around !!!


I'm sure you can come up with something better, my idea is to start the profiles with a list of KeyBindings commands that match those of the game
and then use these in all other commands.
Then a player could more easily enter his own bindings manually or a better programmer then me could make a simple program that would import the games .binds
and export the settings in the Voice Macro configuration file.
 
Last edited:
begin condition lights_status = not set
say "lights on"
set lights_status to value 1
end condition (and stop command if condition is met)
begin condition lights_status = 1
say "lights off"
set lights_status to value null
end condition (and stop command if condition is met)

For this I created the "Toggle ON" "Toggle OFF" and "Rotate" "EndRotate" Actions

Look at this Example how I toggle Ship lights with the App being aware of the Status and telling back:
ToggleAction.png
 
I'm really glad to see another very competent entrant into voice controlled gameplay.

Like many other players I use a HOTAS - will your software cater for that (.BINDS, etc.)?

Thank you =)

How should that support for HOTAS look like? Being able to use the Buttons as activators for Macros?
 
Nice work, that is a very interesting feature !

I wanted to give it a try and downloaded http://www.voicemacro.net/download/V....9.9.7beta.zip

and Elite_Dangerous.zip

but you do not seem to have added any of the "WaitForPixel" commands in the profile you are sharing.
Thanks! Just updated the Profile to my last version ;)

The ability to do more complex operation with variable would indeed be appreciated.
They now have VA asking you a question and waiting for the right answer to proceed !
https://groups.google.com/forum/#!topic/voiceattack/rWyhE7Qyjco
Just to show how powerful variables can be.
that also on my "nice to have list" of more "interactive" features than speak text and play sound, and also have more output possibilities - like OSD , dialog window

One thing that VA does wrong is asking us to use the default keep or their defined profiles in the game.
Most users will modify these to suit their needs !and most user will have done this in game before even having heard of Voice command.
As the profiles grow bigger and bigger, it becomes harder/more work to ajust a shared profiles to your need.


What would be helpful is a way to easily apply the users key binds to Voice Macro and not the other way around !!!


I'm sure you can come up with something better, my idea is to start the profiles with a list of KeyBindings commands that match those of the game
and then use these in all other commands.
Then a player could more easily enter his own bindings manually or a better programmer then me could make a simple program that would import the games .binds
and export the settings in the Voice Macro configuration file.

That is always a problem when sharing profiles

Currently I don't see a real good solution to that problem but it's noted
 
Back
Top Bottom