Tuesday, August 15, 2006

I wrote a program to speech control the FS9 default ATC from a remote machine

One of my biggest wishes for the MSFS is..realistic, truely voice controlled Air Traffic Control (ATC) .

However, it still seems like a distant dream specially now the MicroSoft team has confirmed that there are no major enhancements to the ATC system in the FSX release. That leaves me still waiting eagerly for the technology to catch up and allow the simmers to realistically 'converse' with the ATC programs.

I know, serious simmers use VATSIM for realistic ATC and not depend on the software simulated ATC. If you are flying 'all the time' with VATSIM then good for you. But being a novice, I still want to use either the default ATC or programs like RC. And the major problem with these programs is - they all use keyboard as their user interface.

I am tired of using the keyboard to select the ATC menu choices. Specially in a homebuilt hardware based cockpit environment, having to use keyboard to interact with the ATC is so unreal and annoyingly distracting.

So, I went back looking at options to use speech to control the FS9 ATC. I am aware some people use speech programs like 'voice buddy', 'Flight Assistant' or 'shout' to map their voice commands to ATC menu keyboard keys. While this works ok, I have an additional important requirement that made me not use any of these known techniques. As far as I know, all the above programs require you to run them on the FS9 computer hence potentially impacting it's framerate.

So, my key requirement is - I want my speech recognition process to run on a remote computer and not on the FS9 computer.

As we all are well aware of to what extents a simmer would go for the ever elusive framerate nirvana :-), I ended up writing a program that uses the WideFS/FSUIPC to communicate and control the FS9 default ATC. I now can make ATC menu selections completely hands-free through voice. The freedom I gained is awesome and the command recognition is 100%. I can't be more happy.

Currently, I would say "Traffic Control" to either 'bring up' or 'Close' (useful to quickly get the atc transparent menu out of your way) the ATC window. Once the ATC window shows up, I would say "select one" (or two,threee,four..) to select the appropriate menu item.

Ofcourse, I know it doesn't sound realistic ATC communication. I thought of creating somekind of smart menu where instead of saying "select one", you would be able to say generic command like "contact ground control". But unfortunately I couldnt implement it due the fact that currently FS9 doesn't expose any of their ATC menu text details via offsets (confirmed by peter dowson) and there is no ATC api available either to hookup. Also, I wish I could display the ATC menu window on the remote machine rather than on the FS9 main display as it does now by default. But here also unfortunately I couldn't do much due to the same FS9 constraints.

But in the end, I am fully satisfied with having some kind of speech interface that I could run on a remote machine. My ATC experience is way better now than earlier when I had to deal with the keyboard. And I am thrilled with the reliability of the command recognition, which is 100%.

My next wish is..to add similar capability to the Radar Contact (a third part ATC add-on) if I end up owning a copy of it. I know RC currently suffers from the same draw back of keyboard as it's only user interface.

If you are interested in my program, drop me a line at: "projsri777 AT yahoo dot com".