Posted on March 8, 2006 by Doolwind

SAPI CRAPI

Microsoft’s Speech API allows me to add voice recognition to CIC so players can give different commands quickly and while using the mouse to do something completely different. I was interested in speech regonition a few years ago when I was making my RTS and so I reused some of my code to get it up and running in CIC. I’ve implemented a simple event system and decided it was time to see how easy it was to distribute SAPI 5.0 to other computers. Unfortunately, this is where SAPI has it’s failing. The redistributable (required for players to be able to use speech recognition on their computer) comes in at a massive 131 megabytes, approximately 10 times larger than CIC current size. With a little further reading I’ve found that I can leave out the text-to-speech part of the API, however that only brings it down to 40 megabytes, which is still ridiculously large. I’ve decided to put the speech recognition on hold for now until I get some feedback about whether people will be willing to download the extra amount simply for a single feature. It’s all very dissapointing.

This is of course added on top of my initial concerns regarding the ‘training’ period of speech recognition. To get fairly accurate results you really need to train the system by simply reading some book extracts for a good 15 minutes or so. This is going to be hurdle enough for people I think, added to the fact that the player needs a microphone of quite high quality for the system to get good results. I’m not giving up yet though as I’m a big fan of the possibilities with speech recognition however I’m going to have to have some careful planning about how I’m going to remove these obstacles so as many people can experience the true power of speech recognition within a game. I know that a few other games have used speech recognition so I might look into how they tackled the problem.

That’s about all for now, I’m pretty much feature complete now and after some polish and a lot of testing I’ll be ready to release the first alpha of CIC.