« 海外から日本限定のアンドロイドアプリをゲットしてみた(逆も応用可)。 | トップページ | デイビッド・ビーズリーのPythonでパブリックデータのハック »

2013年4月 6日 (土)

タビス・ラッド氏による「Pythonで音声プログラミング」

Codebyvoice

今年もPythonコミュニティの最大のカンファレンスであるPyCon USがカルフォルニアのサンタクララで3月13日から21日まで行われました。PyConのビデオは本当に面白いので時間があれば他にも紹介したいですが、第一弾として、今日はタビス・ラッド氏(Tavis Rudd)によるプレゼンテーションの紹介です。

英語ですが、Youtubeなので自動字幕で日本語訳をつけながらみれることもできます。

タビス氏は二年前にロッククライミングの事故で肩を痛め、さらにプログラミングの仕事によるタイピングのし過ぎから少しずつ腕の感覚が無くなって行き、Repetitive Strain Injuries (RSIs)を発症してしまい、それでも無理して仕事を続けるうちにタイピングが出来ないほどに悪化してしまったそうです。そこで、音声認識ソフトDoragonを5ヶ月ほど改造することで、音声認識で十分効果的にプログラミングができるまでにシステムを調教してしまったそうです(場合によってはタイピングより速いかもしれないくらい)。その後、事故から1年立つ頃までには肩や腕も回復しましたが、いまでも40-60%の時間は音声でプログラミングを続けているそうです。

音声認識ソフトDoragonのウィンドウズ版は、Pythonがプログラム中に組み込まれていて、ハックできるそうで、音声コマンドでPythonのコールバック関数を呼び出すことでVimやターミナルでできることはだいたいなんでも出来るそうです。音声コマンドは2000以上あり、カーソルのナビゲーションには面白いから動物の鳴き声をふんだんに取り入れたそうです。

例えば、タビス氏がAlexと呼びかけるこのシステムをスリープ状態から復帰するにはwake upといいます。snoreでスリープに入ります。sleepでなく、snore(いびき)を選ぶ辺りも面白いからでしょう。ビデオを見るとlock dragonで音声認識ソフトをロックするのもよく使っています。

その他のVimコマンドの表が14:32くらいにでてきます。面白いので、拾ってみました。

- slap              ->   enter
- laip, raip        ->   ()
- lace, race        ->   {}
- lack, rack        ->   []
- mark, tark        ->   set-selection-mark, toggle
- jark              ->   jump-to-prev-mark
- mara              ->   mark-paragraph
- mexp              ->   mark-sexp
- boof, baif        ->   beg-of-(prev/next)-string
- moof, maif        ->   select-(prev/next)-string
- snup, sna-down    ->   beg-of-(prev/next)-line
- sup               ->   <incremental search up>

slapは改行らしいですが、きっとキーボード使う時もビンタ(slap)を食らわすようにエンターキーを叩いているのでしょう。括弧は英語ではパレンタスとか短くパーレンとかブラケットとかいろいろ言い方がありますが、効率、スピードが重要なので左の丸括弧はleft parenじゃなくlaipで右左をlaかraでいい分けています。日本人泣かせですね!!{}は普通curly bracketといいますが、braceともいいます。laceでleft braceの短縮形ですね。[]はsquare bracketが普通なので、ckはbracketのckでしょう。などなど、これらを使いこなしでコーディングするわけです。

デモ1 emacs-lisp 9分~

実際にプログラミングしている場面は9分から見られます。最初のデモはLispのようです。括弧がたくさんありますねっ。後のほうでLispはコードの構造が対照的で音声コマンドでのナビゲーションが一番やりやすいと言っています。クオートのなかの平文は音声認識の方が速いですね。 コードが終わって実行するとthis is a very simple demoという声が聞こえてくるはずが、Alexが「human rules the world. robots hate it!」と言ってきて、タビス氏がRobots will never rule the worldと言い返すとこれが多分コマンドになっていて、Hey! Bite my shanny metal ass!というビデオクリップでまたAlexがやり返すという手の込んだ漫才の余興を披露。

デモ2 変数の命名 11:15~

thisIsATestという変数名が欲しい場合、camelと言ってから続けてThis is a test。StudyといってからだとThisIsATest。ジャイグとかいってるのはなんだかわからないけどthis-is-a-testとなり、dot wordだとthis.is.a.testになる。score(アンダースコアの略と思われ)だとthis_is_a_test。

で、最後に上の表のmaraで今あるカーソルのパラグラフを選択してchukで削除。う~む、かっこいい・・・。

デモ3 ターミナル 12:27~

ターミでターミナルが起動。タームクイットで終了。

デモ4 Pythonでのコーディング・コードナビゲーション 15:45~

クラスをクラス名で検索したり、便利そうです。コードナビゲーションはほとんど動物の鳴き声。

デモ5 meta(Alexの調教) 17:25~

Pythonのクラスを作っていって、Alexにモンティ・パイソンのフレーズ「Hey, mately, I know a dead parrot when I see one. And, I am looking at one right now.」「This is an ex-parrot!!」を教えています。ex-をつけてex-boyfriend(元カレ)とかex-wife(別れた妻)とか言いますが、死んだオウムのことをex-parrotと表現しているのが面白い。

で、コードは?

24分あたりで、コードは公開していないのかと聞かれていますが、4ヶ月以内にコードを読みやすいように手を入れてTavis Rud氏のGitHubのレポジトリで公開すると約束していますので、期待して待ちましょう。

結構、マウスの使い過ぎで腱鞘炎とかあるので、みなさんも気をつけましょう。いまにAndroidやiPhoneでしゃべるとパソコンにコマンドを送るようなソフトで、まともに使えるようなのが来る日も近そうですね。未来を感じる、「スタートレックかよっ」て感じのプレゼンテーションでした。

« 海外から日本限定のアンドロイドアプリをゲットしてみた(逆も応用可)。 | トップページ | デイビッド・ビーズリーのPythonでパブリックデータのハック »

Python」カテゴリの記事

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1169291/51115181

この記事へのトラックバック一覧です: タビス・ラッド氏による「Pythonで音声プログラミング」:

« 海外から日本限定のアンドロイドアプリをゲットしてみた(逆も応用可)。 | トップページ | デイビッド・ビーズリーのPythonでパブリックデータのハック »

広告欄


やっつけタイムライン

広告欄

はてブ

人目の訪問です。

  • follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。現在Feedlyに122人登録頂いています。多謝!RSSを表示

    ブログランキング用 にほんブログ村 IT技術ブログ Pythonへ ブログランキングならblogram






    Jenny Mayhem
2017年2月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

Amazon

IT技術注目記事

無料ブログはココログ