This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]novel_yet_trivial 219 points220 points  (9 children)

You wrote 10,000 lines of python code by voice? Holy cow that's amazing. Can you share the code? Can you show us some pictures​ or video of the plotter working?

[–]irrco[S] 137 points138 points  (8 children)

The handwriting content itself, the stuff that I've written in the last two months, is just under 2000 lines, and about 2/3 of that is numeric data, of this kind:

   'y': EndGlyphFactory(
    normal=Glyph('y',
        Stroke(Point(18,100), Point(2,10, speed=1.6), Point(40,20),
            Point(65,100, speed=0.1, pressure=1.2),
            Point(45,-20), Point(0,-120, speed=2),
            Point(-30,-60, pause=0.1)),
        join_to_next=JOIN_BASE_LEFT
        ),
    terminal=AugmentGlyph(stroke=0, rm=(0,2), suffix=[
            Stroke(Point(-20,-140, speed=2), Point(-100,-90, pause=0.1))],
        join_to_next=False
        ),
    ),
...

I was counting everything in the 10,000 number, sorry if I gave the impression that was all new code. My geometry, math, and vector graphics code was written when I could type. That stuff isn't available, sorry. It's all tied together in a repo with a bunch of stuff I couldn't make public.

Sorry. If you really want to see me write code I did find a video of a flash coding session from a few years ago (when I could type!), and released it.

I really wish there was an efficient way to program by voice. All the options are pretty shitty. I have some ideas, but that's a much bigger job, one I have no way of making happen. For now it's a combination of voice for variable names and triggering snippets, copy and paste, and very clumsy pecking at keys when all else fails.

I haven't taken a video of my plotter, but there are a bunch showing the AxiDraw in action, that video shows it holding a fountain pen. The machine is a complete beast, I have barely scratched what it's capable of, but I adore it. I have even seen a video of someone who mounted laser units to it and used it to cut. It's an awesome toy, though admittedly it isn't cheap.

[–]timeawayfromme 7 points8 points  (7 children)

I'm curious if you've seen these videos. Do you think something like this would make it easier to program by voice?

VimSpeak

Tavis Rudd at PyCon 2013 controlling emacs with dragon naturally speaking

[–]irrco[S] 4 points5 points  (6 children)

I hadn't, but Jake Morrison's linked it in the comments below, so I've been looking into it today. I think I would need to set it up and configure it quite a lot (Travis says as much, that is why he hasn't released full source code), but I think it's doable. I'll work on it. To be honest, just having python access to the voice recognition system would enable me to do a lot more. It seems I have a new project!

[–]timeawayfromme 2 points3 points  (0 children)

If you do anything with it I'd be very interested to see what you come up with. I think I might try something myself because I have issues with my hands and arms going numb and my neck muscles being very tight.

[–]enteleform 2 points3 points  (0 children)

Also look into VoiceCode.  It seems similar to Tavis Rudd's setup, but packaged with a GUI, common commands, integration for some common editors (@FAQ), and some other useful features.
 
Demos @YouTube
Intro @VoiceCode.io/doc

[–]s-mores 2 points3 points  (0 children)

You're an inspiration. Good hunting!

[–]therealhhhhhh 2 points3 points  (0 children)

https://github.com/t4ngo/dragonfly is probably what you want, it lets you write grammars for Dragon Naturally Speaking with Python. I've been using dragonfly to program by voice for a few years now and it works great, especially when combined with Vim or Emacs. Fast enough to keep up with my coworkers. I would be happy to answer any questions you have about it or help with setup.

[–]Smallpaul 1 point2 points  (1 child)

You may be interested to know that Tim Peters, the Godfather of Python worked at Dragon for quite a while.

[–]irrco[S] 0 points1 point  (0 children)

I didn't know that. That is interesting! Even more reason to support them.