VoiceAttack takes unreasonably long time to start with large profile (14 MB)

176 views
Skip to first unread message

Vojislav Stojkovic

unread,
Mar 5, 2015, 1:20:05 AM3/5/15
to voice...@googlegroups.com
I play Elite Dangerous and I wanted to configure VoiceAttack to be able to set a course to any star system where I might want to trade. For that purpose, I generated an XML profile out of a list of all inhabited star systems (23,212 in total) and imported it in VoiceAttack. The resulting VoiceAttack.dat file is quite large: 14 MB.

When I start VoiceAttack, it takes more than 15 minutes to load it. My uninformed guess is that there's some inefficiency when you're building the recognizer grammar, but I don't have access to the source code, so I don't know how near the mark that is.

Is there any chance you might address that in the foreseeable future?

Gary

unread,
Mar 5, 2015, 1:36:10 AM3/5/15
to voice...@googlegroups.com
Wow... 15 minutes.  That seems awfully long.  I can try to work on it, but I will need you to upload your profile here so I can look at it.  I don't have a profile that large and have no desire to try to make one.

Gary

Vojislav Stojkovic

unread,
Mar 5, 2015, 1:49:14 AM3/5/15
to voice...@googlegroups.com
Here it is, zipped. Thanks for the quick reply! :)
VoiceAttack.zip

Gary

unread,
Mar 5, 2015, 3:16:48 AM3/5/15
to voice...@googlegroups.com
Yup.  It's choking the speech engine.  With prefix/suffix permutations, there's 46,425 values going in.  I'm going to have to consider this an edge case scenario, and I will look at it further when I'm done with the current feature set.

Gary

Gary

unread,
Mar 9, 2015, 12:44:10 PM3/9/15
to voice...@googlegroups.com
In the latest beta, I added a command line parameter of -altload.  This is a test of an alternate means of loading up the speech recognition engine.  It should cut your time down, but I'm curious of how well it works for accuracy.  Just add that command line option to your VoiceAttack shortcut and let me know how it goes.

Latest beta can be found here :  http://www.voiceattack.com/beta.aspx

Gary

Vojislav Stojkovic

unread,
Mar 9, 2015, 10:36:58 PM3/9/15
to voice...@googlegroups.com
Thanks. I tried it out and it does cut down the loading time to under a minute, but it doesn't recognize any words that aren't in the English dictionary.

FWIW, I also coded a POC that loads the star system names from a text file and uses them to build a grammar ("set course for X" where X is one of the star systems). In total, that's 23,212 phrases to recognize. I wanted to make sure it's not something weird about my computer or Windows installation. It takes 13 seconds to build the grammar using GrammarBuilder and 11 seconds to load it into the engine using LoadGrammar, so we can rule out machine-specific weirdness.

Regards,
Vojislav

Gary L Magenheimer

unread,
Mar 10, 2015, 4:48:43 AM3/10/15
to voice...@googlegroups.com
Have you tried the recognition of the dictionary that you have built?  It sounds like we're on the same page.

Gary


--

---
You received this message because you are subscribed to the Google Groups "VoiceAttack" group.
To unsubscribe from this group and stop receiving emails from it, send an email to voiceattack...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Vojislav Stojkovic

unread,
Mar 10, 2015, 11:19:10 AM3/10/15
to voice...@googlegroups.com
Yeah, the recognition works just fine. I'm attaching the zipped POC. The systems.txt file is in the same folder as the .sln file. Please bear in mind that it's been years since I've worked with .NET and Visual Studio, so if there's a file missing, let me know.

The typical star system names that I use for testing are: Arimpox, Q1 Eridani, 31 Aquilae, LHS 2936 and MZ Ursae Majoris. Also Liaedin, but that one is really tough to pronounce in a way that the recognition engine understands. You can use any test value from systems.txt to try it out.

Regards,
Vojislav

--

---
You received this message because you are subscribed to a topic in the Google Groups "VoiceAttack" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/voiceattack/3S6ENn4Jlh0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to voiceattack...@googlegroups.com.
SpeechRecognitionPOC.zip

deutschblitz

unread,
Mar 29, 2015, 7:43:20 PM3/29/15
to voice...@googlegroups.com

I have the same problem, trying to create a profile that will read bible verses. It takes like 5 minutes or longer to load. :(
All chapters are prefixes and there is only one prefix, being the verse numbers. It's not much because it's pointing to a script that does all the work.
Yet its overloaded.

I did try the -altload switch which helped cut off a few minutes but it still takes about 5 minutes to launch.

Thanks for checking it out!
Windows English Bible-Profile.zip

deutschblitz

unread,
Mar 29, 2015, 7:44:47 PM3/29/15
to voice...@googlegroups.com
only one suffix that is, suffix :)

Gary

unread,
Mar 30, 2015, 1:12:26 AM3/30/15
to voice...@googlegroups.com
Lol... it's one multi-part suffix with somewhere around 180 parts.  This expands into 207,368 commands :)  

I'll look at it and see if there's something I can do  o_O

Gary

deutschblitz

unread,
Mar 30, 2015, 1:53:53 AM3/30/15
to voice...@googlegroups.com
hehe..thank you! otherwise I was considering using wildcards but somehow I don't seem to be able to get them to work.
i tried getting rid of the verses suffix and just using full commands such as "genesis 1 verse *". Now when I say genesis 1 verse 1, it recognizes "genesis one, verse one" instead of triggering the wildcard command.

AAHHHH!!! lol


Gary

unread,
Mar 30, 2015, 2:10:44 AM3/30/15
to voice...@googlegroups.com
I've optimized things further (I think).  Next beta should show some improvement (hoping... lol).

Gary

deutschblitz

unread,
Apr 4, 2015, 11:26:50 PM4/4/15
to voice...@googlegroups.com
Tried the new 1.5.7.63 beta and there is no significant change in the way it handles my overload of prefixes and suffixes.

So I opted to separate the commands. So I say for example, Genesis 1. It then triggers the WAIT FOR VERSE command, I then say Verse 2 and it started reading Genesis 1 Verse 2. So, just wanted to let you know that I found a workaround and I am happy. :)
Reply all
Reply to author
Forward
0 new messages