Author Topic: A few questions.  (Read 3108 times)

jamesO2

  • Newbie
  • *
  • Posts: 8
A few questions.
« on: October 08, 2022, 09:40:52 PM »
Hi everyone, I found Voice Attack only a few days ago and have been using the free trial version. So far it's absolutely amazing. Like... leagues above other voice command software I've tried. I've been struggling with carpal tunnel for the last few months. And as someone who used to be an Animator and hobbyist programmer... Carpal tunnel has been devastating and life altering. It's incredibly painful to use with the computer now, They've had to put most of my digital projects on indefinite hold.

It's mainly my left "keyboard hand" which suffers the most pain. I can still use a drawing pen somewhat easily. So I tried voice attack to see if I can replace many of the common shortcut keys with voice commands: Copy, paste, pan the canvas, zoom the canvas, switch brushes, etc.

Even with the 20 command limit in the free version, using these commands felt incredibly natural and boosted my ability and my mood quite a bit. Not just that but being able to shout "DUPLICATE" and "BRUSH SIZE UP" at my computer makes me feel like a wizard, lol. I really wanna see if I can get this working with Blender, and maybe reclaim my 3D workflow.

As amazing as this demo is, I wanna know a few things before I commit to a purchase. Because I've tried some other command software, and There's usually some huge sticking point that really hampers my workflow. I haven't found such a issue with voice attack yet, but I have some questions about possible issues I might have or advanced features:

- Does voice attack have any sort of dictation mode built in? Currently I'm using Microsoft dictation mode (even to write this), which works pretty well for the most part, except it crashes sometimes. If voice attack can do a dictation mode itself, that would be nice.
- Can I set voice attack to only be listening when I'm holding down a certain key or GamePad  button? Because nothing's more annoying then a voice assistant triggering commands when you're just talking casually (have a Google Home device, and you can't say "google" within 10 feet of it or it will start searching stuff -- annoying!)
- Can I set certain commands to only trigger if a specific program is open? For example, there are certain commands that I would only want to run while using Firefox, not in other software.

That's all the questions I can think of right now.

Some of my questions may be obvious, but I've only been playing with this software for a few days. Also it's incredibly difficult to use a computer so I can't really fully explore this stuff right now. I limit my daily computer usage due to injury.

Thank you.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4781
  • RTFM
Re: A few questions.
« Reply #1 on: October 09, 2022, 02:02:27 AM »
- Does voice attack have any sort of dictation mode built in? Currently I'm using Microsoft dictation mode (even to write this), which works pretty well for the most part, except it crashes sometimes. If voice attack can do a dictation mode itself, that would be nice.
There is a dictation mode, which uses the dictation capability of the speech recognition engine, but it's really more intended for dictating information into VoiceAttack for use by commands.

E.G. it will not show a window in other applications for inserting text, nor does it have correction commands like the Windows Speech Recognition application uses.

What is recognized by the speech recognition system will be placed in a buffer, and the contents of that buffer can be retrieved using the "{DICTATION}" tokens, for use with other actions.
The "Quick Input" action can be used to type out what was recognized, if desired, or the "Set a Text Value to the Windows Clipboard" action can be combined with a keypress action that presses and releases Ctrl-V to paste the text into applications that support pasting.
More advanced actions can be combined to perform single-shot dictation, or to try and wait until you stop speaking before proceeding, as shown in this topic.

- Can I set voice attack to only be listening when I'm holding down a certain key or GamePad  button? Because nothing's more annoying then a voice assistant triggering commands when you're just talking casually (have a Google Home device, and you can't say "google" within 10 feet of it or it will start searching stuff -- annoying!)
Yes. This can be configured on the "Hotkeys" tab of the VoiceAttack options window, and/or overridden per profile using the "Hotkeys" tab of the profile options window.

- Can I set certain commands to only trigger if a specific program is open? For example, there are certain commands that I would only want to run while using Firefox, not in other software.
VoiceAttack can switch profiles automatically based on the application window that has focus, if you enable the "Enable Auto Profile Switching" option on the "General" tab of the VoiceAttack options window.
That would be configured per-profile using the "Enable profile switching for the following windows or processes" option on the profile options window.

If you'd rather not switch profiles (which does, by necessity, stop any VoiceAttack commands that may be running in the background), you could use a condition action at the top of your commands, that uses something like the "{ACTIVEWINDOWTITLE}" or "{ACTIVEWINDOWPROCESSNAME}" token to check whether the window they're intended for has focus, and exits if not.
This would mean the command is technically recognized, but would not perform any tasks beyond the check, and thus wouldn't affect any external applications.



Press F1 while VoiceAttack has focus (or click the VoiceAttack icon on the top left-hand corner of the main window and choose "Help Document") to open VoiceAttackHelp.pdf in your default PDF viewer, which contains information on VoiceAttack's features.

These topics may also be of use, in addition to the official documentation:
Control flow (If, Else, ElseIf, Loop, Jump) basics
Variables and tokens summed up

jamesO2

  • Newbie
  • *
  • Posts: 8
Re: A few questions.
« Reply #2 on: October 11, 2022, 09:14:18 AM »
Amazing! Was able to figure this out using your help. The conditional blocks seem like a really powerful tool.

Only one other issue I've noticed, it affects the usability of the software but not the function.



I'm using a custom dark theme on Windows 10. I've seen this issue in a few other programs too. In my Windows 10 theme tooltips are white text on black background. I expect glitches like this to happen since my custom dark theme is technically a "hack". But most programs get the colors right, because the colors are set using the Windows registry itself, just like normal Windows does.

This is what the Tooltip normally looks like for me (using the VoiceAttack system tray icon as an example):


Inside of VoiceAttack, it seems to render the tooltips with a white text on a white background (slightly different shades of white).

This issue is caused by the following:
  • VoiceAttack is using the "ToolTip Text Color" value from the Windows Registry (normally black, in my case its white)
  • VoiceAttack is NOT using the "ToolTip Background Color" value from the Windows Registry (normally white, in my case its black), and is manually rendering the background as white.

In normal Windows usage, VoiceAttack looks correct because the program always expects the text to be BLACK, and the background WHITE. But for accessibility reasons, this assumption should not be made -- (I'm sure this issue also shows up when using "High Contrast" themes for visually impaired people)

This problem can be fixed by either:
  • Manually setting both tooltip colors in VoiceAttack to fixed color values (#000 and #FFF or something)
  • Properly reading both tooltip colors from the Registry for both background and text.

Basically, the issue is caused by a mixture of using "System" color schemes and colors set manually by the specific program. Should be an easy fix.

This isn't a huge issue to me personally, because I can tilt my my head and sorta read the text at an angle. But for someone with poorer vision than me, who relies on a high-contrast theme to use a computer, the tooltips would probably be unusable.

jamesO2

  • Newbie
  • *
  • Posts: 8
Re: A few questions.
« Reply #3 on: October 12, 2022, 09:44:09 AM »
- Can I set voice attack to only be listening when I'm holding down a certain key or GamePad  button? Because nothing's more annoying then a voice assistant triggering commands when you're just talking casually (have a Google Home device, and you can't say "google" within 10 feet of it or it will start searching stuff -- annoying!)
Yes. This can be configured on the "Hotkeys" tab of the VoiceAttack options window, and/or overridden per profile using the "Hotkeys" tab of the profile options window.

So I set up a hotkey like you mentioned, but I noticed another issue. I have a wireless pointing device that also has a microphone built in. When VoiceAttack is running, I noticed that the blinking red LED indicator on my wireless microphone is always flashing -- this means that at a hardware level the microphone is in "listening mode". The problem is, this is a wireless pointing device with a microphone, and always being in listening/recording mode drains the battery really really fast. It essentially prevents my wireless pointer from ever going into its own "sleep mode".

When I click the "stop listening button" in VoiceAttack, it still keeps the audio stream open (the wireless microphone is still "on" all the time).

Microsoft dictation, for example: when I press the hotkey "Win + H" it enables the microphone for listening (red light on) and when I hit the hot key again it disables the microphone (stops listening). Most other recording apps seem to work this way too.

I'm not sure why VoiceAttack keeps listening even when "stop listening" is selected. Note, when VoiceAttack is in stop listening mode it doesn't interpret any commands at a software level (as expected), but at a hardware level it keeps the microphone on. And this is what is draining the battery.

It just seems like bad practice. I'm not exactly sure why the microphone needs to continuously be on when it's not listening. On my wireless device there's a manual "shut off mic" button, but VoiceAttack seems to override this button -- while VoiceAttack is running I cannot shut the microphone off manually. But if I open VoiceAttack settings menu, the microphone does shut off. So it's definitely possible.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4781
  • RTFM
Re: A few questions.
« Reply #4 on: October 12, 2022, 10:55:48 AM »
The microphone remains active to enable speaking a "start listening" command.
I.E. the speech recognition engine keeps running, as you've noticed, but VoiceAttack ignores any commands that don't have a "Make VoiceAttack Start Listening" action at the top of their action list, or are spoken using an "Override listening if my spoken command begins with" phrase.

Opening the options window does suspend the speech recognition engine. That is intended behavior.


There is currently no method other than opening the options window to temporarily suspend the speech recognition engine in a manner so it can be re-enabled within the same session, as far as I'm aware.

If you have another recording device on your machine, a workaround may be to use the "Change Default Audio Devices" action to switch the Windows default recording device to a device other than the microphone you mention.
If the "Windows Speech Recording Device" option on the "Recognition" tab of the VoiceAttack options window is configured to use the "Default - "-prefixed device, VoiceAttack will then automatically reset the speech recognition engine to listen to the new default device.

EricM

  • Newbie
  • *
  • Posts: 15
  • VA user since 2017
Re: A few questions.
« Reply #5 on: October 16, 2022, 07:53:16 PM »
Hi jamesO2,

I also have bad hands. I am an avid Blender user, a programmer (C# and python mostly) and I've been using VoiceAttack for years.

I have developed a Blender addon that enables VoiceAttack to send python commands to Blender (way more powerful than making a zillion new shortcuts).

I also have many commands I use for programming and dictation that I could share.

For your microphone battery issue, perhaps you could get a podium microphone up over your keyboard.

I use a Tobii 4C eye tracker for mousing, I do wonder how head trackers compare, perhaps I could use a combination of both.  I'd be interested in comparing accuracy of pointer manipulation systems over a Skype screen share session if anybody is interested.

I highly advise that you never fully replace your mouse with your Wacom/pen.  I permanently injured my pointer finger doing that!

jamesO2

  • Newbie
  • *
  • Posts: 8
Re: A few questions.
« Reply #6 on: October 18, 2022, 09:59:26 AM »
If you have another recording device on your machine, a workaround may be to use the "Change Default Audio Devices" action to switch the Windows default recording device to a device other than the microphone you mention.

Ok thanks. The reason for making VoiceAttack this way makes sense, its just a bit unfortunate I can't use my wireless mic then. I was able to change the default device like you mentioned. I think this is an acceptable compromise.

Again, thank you for the help!

Hi jamesO2,

I also have bad hands. I am an avid Blender user, a programmer (C# and python mostly) and I've been using VoiceAttack for years.

I have developed a Blender addon that enables VoiceAttack to send python commands to Blender (way more powerful than making a zillion new shortcuts).

I also have many commands I use for programming and dictation that I could share.

I would be super interested in that. Please do share!

For your microphone battery issue, perhaps you could get a podium microphone up over your keyboard.
Yeah this is what I ended up doing. I found a very cheap $2 desk mic, and it works good enough mounted on top of my monitor.

I was just hoping that I would be able to use my wireless mic so I wouldn't have to be standing/sitting right at my desk to use VoiceAttack. But I suppose its an acceptable compromise.

I use a Tobii 4C eye tracker for mousing, I do wonder how head trackers compare, perhaps I could use a combination of both.  I'd be interested in comparing accuracy of pointer manipulation systems over a Skype screen share session if anybody is interested.
I'd be interested in that too. I want to get a Tobii 4C, but its currently out of my price range. What I'm currently using is a G10 Air Mouse: https://www.amazon.com/dp/B091T5THSV?psc=1&ref=ppx_yo2ov_dt_b_product_details

Its very affordable, and it basically works like a Wii remote. I can velcro it onto my forearm, and use elbow movements to control the cursor. The cursor drifts a bit over time, but its not hard to recenter it by flicking it to the edge of the screen and re-centering.
I highly advise that you never fully replace your mouse with your Wacom/pen.  I permanently injured my pointer finger doing that!

I'm curious how this happened, because I've never had an injury using a pen, and I've been drawing for 30 years. One of the reasons I switched to a graphic pen was due to mouse-related RSI. (also to draw on a computer of course)

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4781
  • RTFM
Re: A few questions.
« Reply #7 on: October 18, 2022, 10:18:02 AM »
To clarify: I was referring to switching to a different recording device while you were not intending to use your wireless microphone, as an alternative to shutting down the speech recognition engine.

That way, the speech recognition engine wouldn't be using your wireless microphone, and presumably it could then go into standby mode and use less battery power.


If you wanted to use that in a push-to-talk configuration, you could use a command containing something like these actions:
Code: [Select]
Change multimedia recording device to: 'Wireless Microphone'
Start Loop While :  Keyboard Key 'Right Ctrl' Is Pressed
End Loop
Change multimedia recording device to: 'Unused Device'
where you'd substitute the Right Ctrl key for the key you're using to trigger the command (I.E. for push-to-talk)

Or, if you want to toggle it instead, something like:
Code: [Select]
Begin Text Compare : [{STATE_DEFAULTRECORDING}] Equals 'Wireless Microphone'
    Change multimedia recording device to: 'Unused Device'
Else
    Change multimedia recording device to: 'Wireless Microphone'
End Condition

The device names are just examples, of course.


If the "unused device" may receive input (E.G. if it's another microphone, or a "What U Hear"-style device) you'd ideally want to mute it, so the speech recognition system isn't attempting to interpret that input.

jamesO2

  • Newbie
  • *
  • Posts: 8
Re: A few questions.
« Reply #8 on: October 19, 2022, 11:53:03 AM »
To clarify: I was referring to switching to a different recording device while you were not intending to use your wireless microphone, as an alternative to shutting down the speech recognition engine.

That way, the speech recognition engine wouldn't be using your wireless microphone, and presumably it could then go into standby mode and use less battery power.

Oh, that's really interesting. I didn't even think something like that was possible. I'll look into the code you posted later. Thanks!

Gary

  • Administrator
  • Hero Member
  • *****
  • Posts: 2832
Re: A few questions.
« Reply #9 on: October 26, 2022, 02:17:49 PM »
Working on a fix for the tooltips - hoping to have something soon (just an fyi).

Gary

  • Administrator
  • Hero Member
  • *****
  • Posts: 2832
Re: A few questions.
« Reply #10 on: October 29, 2022, 01:19:25 PM »
The latest beta should correct the tooltip issue on the main screen.  Thanks for the heads up @jamesO2!

EricM

  • Newbie
  • *
  • Posts: 15
  • VA user since 2017
Re: A few questions.
« Reply #11 on: October 31, 2022, 06:51:57 PM »
I didn't get any email notification except for the new beta version.  I've now since hit the notify button, maybe that'll work.

Quote
I would be super interested in that. Please do share!

I'll share an edited partial copy of my default profile, via a PM (just in case I miss some personal information in there).  I'll also PM you my Skype name so we can talk and screen-share if you want (as talking is easier than typing).

Though it's not polished I've attached my personal Blender VA bridge addon along with my VA Blender profile and I've left some documentation in the Blender addon's zip.  Let me know if it works for you or not.

Quote
I'm curious how this happened, because I've never had an injury using a pen, and I've been drawing for 30 years. One of the reasons I switched to a graphic pen was due to mouse-related RSI. (also to draw on a computer of course)

The long story:
After years of using a poorly designed mouse and not taking proper breaks from the computer, I developed stiff hurting elbows and fingers (later diagnosed with RA).  After trying an upright mouse I then bought a graphics pen tablet in an attempt to relieve my worsening hand pain.  It hurt less than a plain old mouse.  But I was still overdoing it, pulling on tight finger tendons.

Then one day I was totally absorbed by a personal project (using the pen as a mouse) and didn't take a single break, even though I knew I was stiff.  I finished the project, I was sore and stiff but I was happy with how the project turned out.  Minutes later I'm sitting down and somebody passes me a puzzle game with pieces that were hard to move.  I put some muscle into it and ..... My pointer finger tendon has been tender ever since and I can't use a graphics tablet anymore.

I was still a teenager then.  You probably know better when to take proper brakes than I did.  But in reading your post I couldn't help but give you a warning.

jamesO2

  • Newbie
  • *
  • Posts: 8
Re: A few questions.
« Reply #12 on: November 06, 2022, 07:59:41 AM »
@Gary thanks for fixing it. I appreciate it.

@EricM I see. Does RA stand for rheumatoid arthritis? I'm guessing that might be a factor.

When I was younger I used to grip pens too hard, and used a lot of wrist flicking motion. those two things in combination can definitely cause RSI. I eventually started to learn to use a lighter grip, in combination with larger elbow movements.

I think one of the things that causes a lot of injury with mice is that the sensitivity is super high on them by default, which encourages tiny wrist flick motions. Honestly, it's upsetting to me that the mouse hasn't made any major design changes since they were first prototyped in the 60s. I feel like their flat shape is built more to accommodate the circuit board inside of them than the human that's using it.

Anyway, I downloaded your blender files. The voiceAttack script works, but I can't get the add-on to be recognized in blender. I'm using blender 3.1, so i don't know if that matters or not. I can see that the add on hooks into the Python console and sends Python commands directly. That's pretty clever. But yeah, I can't get it to work on my setup.

So I started my own blender voice attack profile. I think I'm just gonna set up a bunch of hot keys for common actions, like adding a cube, etcetera. That way I can just bypass the add-on. It's working out so far. I think I might be able to replicate something similar to the add-on by combining voice attack and "auto hot key".

EricM

  • Newbie
  • *
  • Posts: 15
  • VA user since 2017
Re: A few questions.
« Reply #13 on: November 06, 2022, 08:42:16 PM »
RA, yes.  My elbows get stiff and a little swollen which pulls on my finger tendons.  That plus pushing it = tendinitis (swollen tendons) = ouch.

My apologies; I tried installing my Blender addon and it didn't work for me either.  I learned from the console and the internet that it was missing a parent folder in the zip.  I have fixed that and have attached it again here.

You can't access blender's context and variables with plain old keystrokes.
« Last Edit: November 07, 2022, 11:51:07 AM by EricM »