Plover: Freeing Stenography

Mirabai Knight is a Certified CART Provider (realtime stenographer for the deaf and hard of hearing) in New York City. When she was 11, her older brother introduced her to the concept of free software. At the time she mocked him for being a soppy idealist, but the idea quietly took root, and now 18 years later she’s thrilled to be responsible for launching the world’s first free stenographic keyboard emulator.

Leigh: I’m very excited to be able to pick the brains of open source pioneer Mirabai Knight, whose project Plover just had their initial public release. Can you tell us about Plover and stenography?

Mirabai: I’ve been geek-identified and hacker-adjacent all my life, but never actually wound up learning how to code until, after years of frustration with the DRM-riddled $4,000 proprietary steno program I use in my CART business, I decided that the world needed free steno software, and that if I didn’t get it going, it probably wouldn’t happen. That might sound conceited, but the overlap between the stenographic and computer geek worlds is bafflingly small, considering how vital efficient text entry is to virtually every tech field.

Before Plover, the price of even a bare bones computerized steno system was around $1,500, so only people who intended to go into a stenographic career (court reporting, captioning, or CART) could justify the expense. There were no opportunities for amateurs, tinkerers, or dabblers, and it frustrated me, because I could see so many non-commercial applications for stenographic technology. That’s when I decided to start up The Plover Project. I knew I needed someone who could wrangle both hardware and software, and I was hoping I could get some elementary instruction in Python along the way. By a great stroke of luck, Joshua Harlan Lifton, a freelance programmer with extensive hardware hacking experience, was renting space two floors above my Brooklyn coworking co-op, and after noticing the call for a Python tutor/developer that I posted on the building’s elevator corkboard, he enthusiastically agreed to help out with the project. A little less than a year later, we have an actual functional realtime steno program that lets you type at 200 words per minute directly into any X window using a $45 off-the-shelf keyboard.

Leigh: What inspired you to make this a Free Software project? What made you go with Python?

Mirabai: Steno is incredibly powerful and versatile, but there is a fairly significant learning curve. That’s not insuperable, but combined with the ridiculous expense of hardware and software, I could foresee my profession withering at the root as the current generation of stenographers retired and fewer people were moved to make the initial investment. I thought that if only I could get that baseline price down to less than $100, people’s natural curiosity would take over and they’d try steno out for a few weeks to see what it could do for them. By that time, I figured, they’d be hooked, just the way I was the first time I wrote “The ape sat at the top step” in six strokes during my first semester of steno school.

My brother and many of my friends encouraged me to start with Python as a first language because of its readability and large library of functions. I wrote a very small steno dictionary-building program called Bozzy (it’s still extant but not very useful) mostly on my own, but I knew I’d need a lot more guidance to build something on the scale of Plover. Sadly, I haven’t progressed as far as I’d like when it comes to programming, and most of my input on the project, besides being able to explain how steno works and what I wanted the software to do, has been as a source of funding. But I’m hoping that the continuing development of Plover by Joshua and other community members will let me continue to hone my coding skills and increase my knowledge of how open source software actually gets made, expanded, and refined.

Leigh: I’ve seen from the Plover site that you’re interested in the adaptive / accessibility applications of steno. What are some of the possibilities you envision there?

Mirabai: You can read a long explanation of what I’d eventually like Plover to do for accessibility in my article “How To Speak With Your Fingers”, but the brief version is this: Steno is the only text input system that’s functionally equivalent to conversational human speech. People who use accessibility devices to speak are currently restricted to much slower methods of communicating, such as Minspeak, text expansion, or just straight-up slow-as-molasses qwerty. This means they either have to oblige interlocutors to wait a long time between sentences or to speak in a terse, abbreviated manner just to keep up with the pace of conversation. Eventually I want to plug Plover into one of the open source text-to-speech synthesizers (I haven’t decided which one yet) so that people who use AAC devices can converse as quickly and as fluently as people who use their voices. This would also allow for cross-community conversations. Hearing, Deaf, late-deafened, blind, and Deaf-blind people using steno could all participate in the same conversation with an ease that’s never been seen before. With wireless output not just to speech synthesizers but also to portable screens, refreshable Braille displays, and remote servers for people who can’t be there physically, realtime text conversation between different communities can be as easy as speaking or signing within communities is now.

Leigh: I’ve been geeking out lately on wearable computing stuff, and am really excited about using steno in this context. How can steno help make me a cyborg?

Mirabai: I’ve got an article about this one too! Part Four of my “What is Steno Good For?” Series, Mobile and Wearable Computing. The bad news is that wearable computing is unlikely to really take off until we get the head-mounted display issue worked out, and I don’t currently have any idea of how to make that happen on a practical level. The good news is that, once we get a good HMD solution, steno is uniquely placed to make our long-cherished gargoyle dreams spring to life. As I mention in the article, there are simply too many keys in the qwerty layout to make it both wearable and usable with average-sized fingers. The steno layout, on the other hand, is perfectly matched to the human hand: 20 keys in two rows and 10 columns (plus two keys under each thumb), meaning that a full-sized steno keyboard could be attached to thighs, belly, biceps, or wherever, with a much smaller footprint than qwerty systems and much greater speed and efficiency than the one-chord-per-letter portable input systems that are currently the only portable input systems out there.

Leigh: One of the big hurdles with steno seems to be the learning curve. Is there any work happening there? How quickly can someone like me, who’s a crummy typist, get up to a reasonable (60wpm or so) speed?

Mirabai: When I was in steno school, I noticed something interesting. Even though the school had an overall 85% dropout rate — meaning that only 15% of matriculated students passed the three 225 WPM speed tests needed to graduate — nearly everyone got up to 100 WPM within the first semester or so, and it was in that 100 to 200 WPM window that people started getting frustrated and quitting. Steno is so ridiculously more efficient than typing every word out letter by letter that it’s possible to exceed the average qwerty speed in a matter of months, once you’ve got the phonetic system in your muscle memory. Then, as people start to use steno for all their daily computing tasks, the speed comes gradually and inexorably. It might take years of consistent use to get up to court reporting speeds, or some people might permanently plateau around 160 or 180 WPM, but even so it’s a huge improvement over qwerty, and there are significant ergonomic benefits as well. (See Part Three of What Is Steno Good For: The Ergonomic Argument.). I’m firmly convinced that the best way to jump start the steno learning process is by making an addictive video game out of it, but so far no one’s risen to the challenge. It’s definitely on the long-term Plover to-do list, though. I’m writing an intermittent web series called Steno 101 that tries to gently introduce people to the machine. I’ve gotten up through the chording system (you can see a cheat sheet here) and a few basic principles, and subsequent installments will look at more advanced aspects of steno, such as the best way to construct a system tailored to your own individual mnemonic peculiarities.

Leigh: What do you see the next steps for Plover being? What’s on the roadmap?

Mirabai: We’ve got some blueprints on launchpad here. The biggest new feature we want to add is the capability for Plover to emulate command strokes such as ENTER and ESCAPE as well as just text, so that it can do everything the qwerty keyboard can do, only faster and in far fewer keypresses. Then we want to add support for additional commercial steno machines and clean up the GUI a bit. I’m also eager to complete the Steno 101 series and then turn it into a video game tutorial for easy and addictive learning. A few Plover supporters have put together a hackathon scheduled for this Saturday, both onsite at Toronto’s HackLabTo and online via the Plover IRC channel (#plover on freenode, or via webchat). Down the road, we also want to think up new hardware options for Plover, with a special emphasis on mobile or wearable solutions. It’s gonna be pretty exciting.

Leigh:How do people get involved with Plover?

Mirabai:Join the discussion group, subscribe to the blog or launchpad bug email, or show up on the IRC channel for Saturday’s hackathon! We’re also really grateful for any amount of publicity, beta testing, and of course, donations. Questions and comments are always welcome:

Leigh: Thanks Mirabai!

8 thoughts on “Plover: Freeing Stenography

  1. Mary

    I am super-excited about this project. Not sure when I can begin playing around with it: I need a keyboard first, and a roundtuit for that matter. But still.

    Was also talking with my partner about chording for programming. Could be great in the typing injury space (I’m prone to it and he’s super-prone).

    1. Mary

      Plus, a great potential application occurs: a keystroke logger, in order to suggest sequences to you periodically that could be optimised.

    2. Mirabai Knight

      Thanks, Mary! It’s great to hear that other people are as excited about this as I am. I actually addressed using Plover for programming in Part Two of What Is Steno Good For:

      Programming with Plover probably won’t be practical until we implement command stroke syntax, but that’ll be coming up in the next release, so you won’t have too long to wait. Using nothing but steno in vim has been my dream since I started this project, so I’m going to make sure it works.

      I also used steno (with my obnoxious commercial software, not Plover, but still) to write a novel for National Novel Writing Month, and it amazed me how quickly and fluently the words came when I was able to write them syllable by syllable rather than letter by letter.

    3. John

      Was also talking with my partner about chording for programming. Could be great in the typing injury space (I’m prone to it and he’s super-prone).

      I’ve written a chording-for-programming system using emacs and a gamepad, and found that’s quite a nice way of working (I’ve got it set up well for Lisp, less so for other languages so far).

      Summary of my experience of using it: it works well, and very fast, but the learning curve is steep compared with emacs’, and you have to think at a higher level of abstraction than with other ways of editing.

      [I thought this was drifting off topic a bit, but if three people have thought about it so far, a lot more probably have too, so I eventually decided to post it!]

    1. Rick

      I’m wondering this as well. Things like GKOS are neat, but letter-at-a-time chorded keyboards like that are even slower than QWERTY.

      1. John

        Braille keyboards are chorded, and (originally for reasons of compactness rather than speed) braille uses a lot of “contractions” which are symbols that stand for letter sequences (but it’s by spelling, not phonetic). So that’s not insuperable.

Comments are closed.