Author Topic: Dictating Large Numbers Accurately  (Read 3551 times)

SteveXM

  • Newbie
  • *
  • Posts: 17
Dictating Large Numbers Accurately
« on: January 10, 2019, 09:47:20 AM »
Hello,

I am using voice attack for data entry and need to dictate numbers that range from 00000 to 99999. I have read most of the VA manual and didn’t find anything that solved my issue. This is an example of what I have tried.
Wait for voice input [0..99999] (store variable to “num”)

With the 250 option limitation this is not possible.
Is there a work around for this?
Ideally, I would like to be able to say “Ten thousand five hundred and fifty two”. And have it store the number 3552.
As I’m writing this I thought of a solution, but maybe there is something easier that I’m missing.
Here is my solution-
 #1: (more natural) Use 5 different commands that listen for “thousand”,”hundred”, “fiftey,sixtey,seventy,ect”, [1..10]

#2: Functional –

5 commands to listen for each digit. If I want to store 10552.
I would use different voice entries for each digit.
1.   [0..9]
2.   [1..9]
3.   [1..9]
4.   [1..9]
5.   [1..9]
 Still loving learning the complexities of this program.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Re: Dictating Large Numbers Accurately
« Reply #1 on: January 10, 2019, 06:49:22 PM »
The 250 phrase limit was implemented because using large amounts of phrases(like your example would generate) in that action, would crash VoiceAttack.

If you require more you can either create a regular command using that number range as the command phrase, or use dictation(A forum search for "{DICTATION}" should come up with a number of examples).
Whether the latter would be accurate enough is for you to decide(having a well-trained speech recognition profile and a good microphone certainly helps though).

iceblast

  • Sr. Member
  • ****
  • Posts: 372
Re: Dictating Large Numbers Accurately
« Reply #2 on: January 11, 2019, 07:31:15 AM »
This is a updated post. Apparently I was to fast last time, and made some mistakes in the command, and how it was expected to be used.

Make 5 commands named like this.

[0..10]
[0..10] [0..10]
[0..10] [0..10] [0..10]
[0..10] [0..10] [0..10] [0..10]
[0..10] [0..10] [0..10] [0..10] [0..10]

Then add this code below.

Code: [Select]
Set Text [count] to '{CMD}'
Set integer [count] value to the converted value of {TXTNUM:count}
Quick Input, '{TXTNUM:count}'

Let's say you want to type 10010. You don't just say Ten Thousand and Ten. You would say, One, Zero, Zero, One, Zero, and you can say it quickly, and usually accurately. I tried [0..99999], and VA just crashed over and over again. Maybe it works for you, but I didn't have any luck.

If you need a variable with the number. Use Get User Input, Get Integer. When it asks for the number, just say the number into the box, and it will create it as your variable.

The only problem with a command like this is, that VA will take a bit longer to load the profile, but not by to much though.

I don't think you can do more than 5 digits, I think anymore then that, you'd probably run out of memory.

I don't know if this will do you any good or not.



« Last Edit: January 11, 2019, 11:51:25 AM by iceblast »

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Re: Dictating Large Numbers Accurately
« Reply #3 on: January 11, 2019, 08:16:48 AM »
Make 5 commands named like this.

[0..10]
[0..10];[0..10]
[0..10];[0..10];[0..10]
[0..10];[0..10];[0..10];[0..10]
[0..10];[0..10];[0..10];[0..10];[0..10]
That's the same command phrase, 15 times.
Semicolons separate different command phrases, so all but the first example would create the same ten phrases(numbers 1 to 10) multiple times.
Although you can create one of the commands with multiple duplicate ranges(as duplicate checking within the same command doesn't appear to work with numerical ranges), attempting to create a second will result in VoiceAttack telling you the phrase already exists.

Creating a single number using multiple numerical ranges is not possible either, as VoiceAttack will automatically insert spaces; E.G. "[0..10][0..10]" would not be recognized when speaking "one thousand and ten", but only when speaking "ten ten".


If you want to use a normal command instead of a "Wait for Spoken Response" action, you could use "[0..99999]", as originally intended.

To convert the spoken number to an integer variable, you can use embedded tokens:
Code: [Select]
Set integer [count] value to the converted value of {TXTNUM:"{CMD}"}


If you need a variable with the number. Use Get User Input, Get Integer. When it ask for the number, just say the number into the box, and it will create it as your variable.
That action requires you to type the number, or to use the up/down arrow controls to increment or decrement it; Speaking the number will not work.

iceblast

  • Sr. Member
  • ****
  • Posts: 372
Re: Dictating Large Numbers Accurately
« Reply #4 on: January 11, 2019, 11:21:54 AM »
Oops, I don't know why I put the ; in. That wasn't how I had the command done. it's been a while since I worked with it.

No, you can't say one thousand and ten. but you can say One, Zero, Zero, One, Zero, and you can say it quickly, and usually accurately.

I don't seem to have any trouble saying the numbers into the input box....

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Re: Dictating Large Numbers Accurately
« Reply #5 on: January 11, 2019, 06:34:53 PM »
I don't seem to have any trouble saying the numbers into the input box....
Are you running the Windows Speech Recognition app alongside VoiceAttack?

iceblast

  • Sr. Member
  • ****
  • Posts: 372
Re: Dictating Large Numbers Accurately
« Reply #6 on: January 11, 2019, 11:14:34 PM »
No, just using VA. The Windows Speech Recognition app never worked very well for me, so I never use it.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Re: Dictating Large Numbers Accurately
« Reply #7 on: January 12, 2019, 01:18:31 AM »
Ah, you mean you're using the VoiceAttack command to type into that dialog.

If you need the value as a variable I feel it makes more sense to extract it from the spoken phrase. If you want to use a single command as a method of data entry for another command, you could output to a global variable.

iceblast

  • Sr. Member
  • ****
  • Posts: 372
Re: Dictating Large Numbers Accurately
« Reply #8 on: January 12, 2019, 03:00:47 AM »
I was thinking along the lines of, if you spoke the numbers into the input box, you would know that what you're saying was being correctly heard. If not, erase and try again. Voice Recognition isn't exactly perfect.

If you wanted to skip that step, you could just have VA read the Variable after you say it, so you know it's correct.

Code: [Select]
Set integer [count] value to the converted value of {TXTNUM:"{CMD}"}
Say, '{INT:count}'  (and wait until it completes)