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

Pages: [1]
1
Ok.

If I go via the clipboard I loose what's in the clipboard every time I dictate.

And I often use the clipboard and dictation at the same time like when editing/creating a document;

Dictating - cut or copy - dictating more - paste...



2
Hi!

I'm trying to use google speech to dictate in swedish but Inputkeys textentry doesn't output swedish characters correctly.

How do I get Inputkeys textentry to put out swedish characters correctly?

The swedish characters shows up correctly in command history window after InputKeys.TextEntry:

But get exchanged for questions marks when output in Notepad:

l?sa p? ?ken

When using System.SetClipboardText the swedish characters shows correctly when pasted from clipboard.

Could it be fixed by somehow changing the characterset encoding or how can I get the swedish characters to be typed out correctly?

Grateful for help.

3
Version 2 updates / Re: How do you downgrade?
« on: December 30, 2016, 10:36:38 AM »
Ok, thanks!

The installer says "cannot be undone" so I thought there were more to it for downgrading.
I´m back on v2.226 and the future will tell if the downgrade helped.

4
Version 2 updates / How do you downgrade?
« on: December 29, 2016, 04:02:52 PM »
Hi!

I´ve been getting some problems with explorer.exe hanging and reporting Voxcommando under hanginfo.
I want to try and see if it has something to do with updating VC to v2.229.
How do I downgrade to v2.226?

Grateful for help!

5
Nime5ter's command works very well for spelling without getting a space between each letter (thanks once again Nime5ter) but I think the Payload "payloadDictation:Spelling" should work this way on its own to start with.

I quite often need spelling out words but never needs or wants to get space between each letter.  Maybe I'm missing something but I can't think of any situation I would need this behavior and if the Payload "payloadDictation:Spelling" worked like Nime5ter's command you could just say "space" after each spelled out letter if/when you needed it.

If Payload payloadDictation:Spelling doesn't get updated to work without spaces between letters I think at least Nime5ter's command "Spell more than one word {1}" should be included in the Command group "Vox Commands" in all the XML configuration files you get when installing Voxcommando.

6
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 24, 2016, 05:29:28 PM »
Microsoft, in their wisdom have decided to ignore the duration specified by programmers in Windows 7 and later, in order to make everyone feel safe and happy. 
Thanks again MS!  ::dis

I read somewhere that the minimum timeout for tray notifications in Windows is 5 seconds.
Somehow Growl manage to set it shorter anyway but has chosen to not offer shorter timeout than 3 seconds.
For shorter OSD timeout than 3 seconds I can use OSD.ShowText but OSD.ShowText can interfere with some other overlay windows/dialogues.

7
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 23, 2016, 02:59:43 PM »
Right now you are triggering the same command using multiple different events. Since VC.Reco will be generated with every recognized commands, you have the same VC command being triggered twice when there are alternates--once via the Alternates event and then again via the VC.Reco event.

The simplest solution is to create 2 commands. One that is triggered by the VC.Reco event, and a different command that is triggered by the VC.Alternates events.

Something like the following command could be used to send all alternates to Growl:
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.3.0-->
<command id="340" name="Growl Notifications (Alternates)" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="10" loopMax="{#P}" description="{#P}==number of payloads. If there are 7 alternates, we loop 7 times. Each time, the value for {j} increases by one. I add a brief pause here just in case Growl requires it. You can try without it.">
  <loop>
    <loopParams>
      <from>1</from>
      <to>{#P}</to>
    </loopParams>
    <loopActions>
      <action>
        <cmdType>Growl.Send</cmdType>
        <params>
          <param>alternate {j}</param>
          <param>{{j}}</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
      <action>
        <cmdType>VC.Pause</cmdType>
        <params>
          <param>100</param>
        </params>
        <cmdRepeat>1</cmdRepeat>
      </action>
    </loopActions>
  </loop>
  <event>VC.Alternates.*</event>
</command>

A few additional notes:

1) I see that you have tried to set the VC.Alternates events to "optional", as we do for phrases. Events don't work quite the same way as voice phrases. There is no such thing as an optional event, to my knowledge.

You can't build a "combination trigger" by dragging different events onto a command. Instead, each event will separately trigger the command.

(It would be better if the UI didn't permit you to set events to "optional" because it's technically meaningless. This is probably something we can change in an upcoming release.)

2) As you can see in the above command example, rather than separately attaching each VC.Alternates event to your command, you can use the * wildcard. This means that any event that starts with VC.Alternates to trigger the command.

http://voxcommando.com/mediawiki/index.php?title=Events#Using_event_triggers

3) My solution above does not address your desire to have all of the information combined into one message. But I think it's a good idea for you to start with this in order to see how it works.

---
All of the above does not change James's point that if you want to send information to Growl for every single command, it would be more efficient to use a Python-only solution.

In a Python-only solution, you would not generate a VC.Reco event in your script using VC.TriggerEvent and then execute VC commands with that event.

You would instead string all the different pieces of information together in your script, and then send the relevant notifications directly to Growl within the script.

However, if you're still learning how to use VC, experimenting with my suggestion above is a good starting point. Later you can look into adapting the Python script once you've decided how you want Growl to behave.

nime5ter: thanks for looking at and commenting my Command. It was just a kind of laboratory trying to guess and figure out how different things works by trial and error without having enough knowledge nor information.
After jitterjames put the Alternates as a variable in the python script I don't need to use the VC.alternates events any longer.
I've attached the command I made after jitterjames updated the python script. At the momentI have both OSD.ShowText and Growl.Send doing the same thing to compare them and see which one I prefer.
I'll examine and try out your Command later, I always learn something new looking at and trying the Commands you make.

8
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 23, 2016, 02:52:52 PM »
Yes those are called payloads.

Here is the Python which will add a 7th payload that is the alternates, and I've separated the alternates using \r\n (new line) but you could change the Python to just use a comma if you wanted to.

Sorry the structure of the OSD object is undocumented at this point.  It was originally intended to be used directly by plugins written in C# and in that context it is somewhat documented for the developer.  One of the elements of OSD event object is a list of strings, named alternateSpeech.

so I added the line:    strAlts = '\r\n'.join(osdInfo.alternateSpeech)
and then included the variable strAlts in the list of payloads when calling  vc.triggerEvent.

Code: [Select]
from System.Collections.Generic import *

def osdEvent(osdInfo):   
    strText = unicode(osdInfo.speechText)   
    strCommandName = unicode(osdInfo.commandName)
    strGroup = str(osdInfo.groupName)
    strConfidence= str(osdInfo.confidence)
    strPass = str(osdInfo.confidencePassed)
    strDoingCommand=str(osdInfo.doingCommand)
    strAlts = unicode('\r\n'.join(osdInfo.alternateSpeech))

vc.OnOSD -= osdEvent
vc.OnOSD += osdEvent

I haven't looked at your commands yet, but ultimately if you are going to send this to Growl, it would be better to send it directly from the Python plugin in order to reduce the amount of work VC has to do every time it hears a voice command.  This is actually the reason I don't create events for recognized speech, because I think it would just be too much overhead on top of whatever else VC is supposed to do with your voice command when it's recognized.

Oh yeah, now the solution is complete! Thank you very much nime5ter and jitterjames!

This solution to my feature request is much better and much more flexible and useful to me than what I asked for.
I guess this solution also could be satisfying to SteveB69 who started this thread.

I'm not surprised that there existed a solution because Voxcommando is a very cleverly designed application with lots of possibilities, flexibility and customizability and even though Voxcommando is a very powerful application it is at the same time not very difficult to learn and understand. Many applications are either powerful or easy to understand, Voxcommando is both.

After a computer reboot the timeout/duration parameter for the OSD.ShowText started to work correctly on my computer which gives me even more freedom to choose which Action I want to use for my automatic OSD setup.
I can choose to use OSD.ShowText Action if I want shorter timeout length than 3 seconds or I can choose to use Growl Action if I want it's extra features.

I love Voxcommando's high level of possibilities and customizability.
If there's a downside with a solution or when using a feature for me it's better to be given the information about the downside and then myself decide if the downside is worth paying to get the feature rather than all possible solutions is not presented/given to me.
In this case, about creating events for recognized speech perhaps adding to much overhead, for me I would have preferred a setting in Options to be able to turn on creating events for recognized speech if I needed it and then see how it affected my computer. If I would find it had to great negative impact on my computer I could just turn off these events again.
These kind of advanced settings could be put in a special section in options called Advanced.

About me confusing Payloads with variables I will try to get to understand the difference but it's really, really difficult and confusing for me to understand why Payloads aren't variables.
When the wiki about Payloads says;
"These placeholders are then replaced in the command's macro by the values we provide when we issue our voice commands (or through event payloads)."
it makes it even harder for me to understand that payloads are not variables. But I'm no programmer so perhaps I have misunderstood what variables are.
Regardless if I will manage to understand it or not I'll try to use the terms correctly in the future. Thanks for the links nime5ters.

9
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 22, 2016, 06:19:31 PM »
I'm talking about the data 1-6 in nime5ters image attached to this post.
Which is the correct term for them?

I have also attached a Group with the Command I am experimenting with. Perhaps my questions gets clearer when you look at it.
While experimenting and trying it out I have put all parts in separate messages but I plan to combine them in fewer or one message when/if I get everything to work with Alternates.

Now that I have found Growl and if there is a way to get hold of the Alternates and put them in messages I think that alternative would be more interesting for me then to start to use the built-in automatic OSD with timeout setting.
Even though Growl's minimum 3 seconds timeout is a little bit long for me it has got many nice features that make me tolerate this and I can close Messageboxes before the timeout just by clicking on them. I can also keep them open by holding the mouse pointer over them.
Also, with the Growl solution users can choose which information they want in the popup message boxes.

If, however, there isn't any way to get hold of the Alternates and put them in Growl messages the automatic OSD with timeout setting  would be very useful for me for showing the Alternates, and perhaps also even though there would be be a solution for showing the Alternates in Growl messages.

10
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 22, 2016, 04:41:27 PM »
Thank you very much nime5ter. This solution fills almost all my OSD needs, the only thing missing is the Alternates.
Thanks to your tip I also learned and understood much more about Events and them saving information to variables.

Both the event VC.Reco and the event VC.Alternates save data to variables. When I then recall variable {1} I get the variable data {1} from both events.
Do you know any way to distinguish  between them. Is it perhaps possible by recalling the variables in a more precise way like {(VC.Reco)1} and {(VC.Alternates.6)1} ?

11
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 22, 2016, 11:21:17 AM »
Sorry for my harsh and rude phrasing in my previous post (now edited).

Yes, my OSD time out setting feature request is regarding the automatic OSD for recognized commands confidence and alternates.

Since my post I've been working on finding a way to use actions to achieve what I want.
Perhaps that possibility is already there although I don't quite manage to achieve what I want, an automatic OSD with customizable timeout setting.

Firstly I can't get the command to get triggered by every voice command.
I tried dragging the megaphone icon from the history but it doesn't get accepted as an event.
Activating VC.Alternates in Options - OSD I can use these events but they only occur for voice commands when there are Alternates  but I also would like to get voice commands without alternates in an OSD to verify it was interpreted as intended.

Secondly I can't find a variable-parameter for Alternates to be put as/in the text message.


To display the OSD message I've tried three different actions:

* The Growl plugin doesn´t have any timeout setting as an Action Parameter in VC but in the Growl Application settings for Application - Voxcommando you have quite a few settings including Sticky which means stay visible until clicked and even without Sticky set to on you can keep the balloon window visible by putting the mouse pointer over it.
Unfortunately the shortest TimeOut in Growl is setting is 3 seconds which is ok and less than half of the timeout length for VC Automatic OSD but I would prefer 1-2 seconds.

* OSD.ShowText worked ok but I miss settings to control or turn off fade out.

* VcAdvanced.Notify work well but it's timeout setting didn't have any effect on my Windows 7 computer, it was 4 seconds no matter what number for milliseconds I set.
For me, I prefer the VC Growl plugin over VcAdvanced.Notify.

(On a side note/a tip: the Growl application has it's own Windows plugin that shows all Windows balloon notifications through Growl giving you a lot of settings like layou, position, timeout, for balloon notifications from any application, even from those without any built-in Growl plugin/feature.)


The basic and important parts that I can´t get to work is how to get the command to get triggered by every voice command and
how to get Alternates to be put as/in the text message.

Does anyone have any ideas or suggestions for how to fix/where to find the missing parts to make automatic OSD work by using actions and events?

@jitterjames regarding having to many settings in options;
Perhaps a Basic + Advanced layout could solve this problems, only the basic more fundamental settings in Basic View and the more optional, advanced fine tuning settings in an Advanced View?

12
VoxCommando Basics and Core Features / Re: OSD Display Time
« on: October 20, 2016, 01:57:32 PM »
I find the OSD very useful to get information about pronunciation, similar/conflicts between commands and so on but with the current implementation I can't use it because it's often in the way staying on for to long (6 seconds plus fade out time).
To make the OSD option usable for me I think it would need a setting for time out.

Is there any chance getting this needed and useful setting in Options or at least have OSD disappear after 2 seconds plus a quicker fade out?

Please, please,  please!

13
@nime5ter:

Thanks for in detail, step by step explaining the different parts and actions of the command group. I've seen you doing it in other posts too, it's really helpful.

Pages: [1]