Using Voice to Code Faster than Keyboard 📺
A very cool video. Using voice to code, and code faster than average programer with keyboard. It's a presentation at Python Conference 2013.
The first demo, voice coding emacs lisp, starts at 09:00.
Two years ago I developed a case of Emacs Pinkie (RSI) so severe my hands went numb and I could no longer type or work. Desperate, I tried voice recognition. At first programming with it was painfully slow but, as I couldn't type, I persevered. After several months of vocab tweaking and duct-tape coding in Python and Emacs Lisp, I had a system that enabled me to code faster and more efficiently by voice than I ever had by hand.
In a fast-paced live demo, I will create a small system using Python, plus a few other languages for good measure, and deploy it without touching the keyboard. The demo gods will make a scheduled appearance. I hope to convince you that voice recognition is no longer a crutch for the disabled or limited to plain prose. It's now a highly effective tool that could benefit all programmers.
if you are impatient, here's a summary of the video:
- He uses Dragon NaturallySpeaking voice recognition software on Microsoft Windows. (he said he couldn't make the Linux CMU Sphinx work.) (though, he's using Mac, apparently running Microsoft Windows in a virtual box.) Dragon NaturallySpeaking
- Dragon uses Python. He hacked it, together with a Python Speech recognition extension lib DragonFly by Christo Butcher, at https://pypi.python.org/pypi/dragonfly/0.6.5. So now he can define his own voice commands. (type things, or move cursor to particular place in code, or keyboard shortcuts, switch apps, …, etc.)
- He created many short idiosyncratic/unique vocal utterances to do many things, such as insert line return, switch emacs buffer, start terminal, etc. So, when he's voice coding, you hear “twip, chirp, slap, derp, …”. Very funny.
- He has about 2k personal commands.
- He said everything he do with his system is inside vim or emacs. (in his demo, it seems it's all emacs, as interface to everything else. There's heavy use emacs features, including templates/completion, shell in emacs.).
- He demonstrated using it to code Emacs Lisp, Python, work in emacs, terminal. So efficient that it's faster than average programer can with hands on keyboard.
- Took him 3 to 6 months to come up with his system.
- His Repetitive Strain Injury (RSI) is completely healed by now, but he says he still use his voice system for coding, for about 40% to 60% of time.
- He said he'll release his code in about 4 months, follow him on twitter or github. https://github.com/tavisrudd, @tavisrudd
the expensive microphone he recommended is “Audix OM-7 Microphone”
I've used Microsoft speech recognition system, for a few months in 2010. It comes with Microsoft Windows 7. It's pretty good for normal speech but impossible for coding (out of the box). It works well in normal Windows apps, especially ones from Microsoft such as Office, but doesn't work well in emacs.
For another fun speech tech, see Microsoft Research: Real Time Speech Translation with Same Voice, from English to Chinese by Machine 📺