キーボードの代わりに「声」でプログラムを組む「ボイスコーディング」がもたらすものとは?
By Lord James [Web Developer]
コンピュータープログラムのソースコードを記述するコーディングの作業には多くの場合、キーボードが用いられます。しかし、コーディングのしすぎで手に障害を負った人や、生まれつき体が不自由な人にとって、キーボードでの入力は困難が伴います。そんな人たちでも声を使ってコーディングができる「ボイスコーディング」を支援するシステムの進化が進んでいます。
Speaking in code: how to program by voice
https://www.nature.com/articles/d41586-018-05588-x
スタンフォード大学でコンピューターを使ったゲノム研究を行うポスドクのハロルド・ピメンテルさんは生まれつき片方の腕を持たず、もう片方の自由に使える手だけを使ってコンピューターを操作してきました。しかし、ピメンテルさんの手には、「反復性疲労障害(RSI)」によって引き起こされた肘部管症候群と呼ばれる症状が現れました。これは、腕の外縁にある尺骨神経が肘の部分でひっかかることで手や指のしびれ、痛みを生じさせると同時に、微細な指の動きの制御を阻害するという症状です。
片腕だけでコーディングを行ってきたピメンテルさんにとって、残された指が使えなくなることは致命的な状況を作り出すことにすらなりかねません。しかし現在、そのような状況を回避するテクノロジーが生み出されています。それが、声を使ってコーディング作業を行うことを可能にする「ボイスコーディング」のシステムです。
ボイスコーディングが実用的であることを示したのが、トラビス・ラッド氏が2013年のPython関連カンファレンス「PyCon」で発表したデモ実演でした。2018年現在ではウェブ開発企業「Unbounce」のディレクターを務めるラッド氏は、ヘッドセットのマイクに向かって「Slap(改行)」「Quote(引用符)」などのコマンドと、「just-testing(テスト用)」といった文字列の入力を器用に使い分けてコードを書き進める様子を披露しています。
Using Python to Code by Voice - YouTube
デモを行ったラッド氏自身もRSIによる症状に悩まされている一人とのこと。長年にわたるコーディング作業の結果、手に障害を負ってしまったラッド氏は、「three-headed beast(三頭獣)」と名付けられた、1台のノートPCの中に3つのOSがインストールされたPCを使ってこのシステムを作り上げたとのことです。
手の障害に悩まされてきたプログラマーにとって、ボイスコーディングシステムは救世主と呼べるほどの存在であり、前述のピメンテルさんにとっても「とても感動させられた」ものだったとのこと。しかし、このシステムにはまだまだバグも多く、さらにはその問題を解消するユーザーコミュニティの不在などの問題が存在していたそうです。
ボイスコーディングを実現するためには、「音声認識エンジン」と「音声でコーディングするためのプラットフォーム」の両方が必要です。前者では、Windows/Macの両方に提供されているNuance製のエンジン「Dragon」やWindows純正の音声認識エンジンが、そして後者には。共にMac向けに提供されている「VoiceCode」や「Talon」といったプラットフォームが広く使用されています。また、類似のプラットフォームとしては、「Caster」や「Aenea」なども存在しているとのこと。
しかし、これらの開発環境の問題点は「とにかく使い方の難度が高い」というところにある模様。複雑なプログラムコードを記述するためには膨大な量の専門用語を記憶する必要があることや、AppleのSiriやAmazonのAlexaなどのように自然言語を理解するAIとは異なるボイスコーディング環境の場合は、それぞれが持つ特有の作法に従って順番に用語を読み上げていく必要があります。
Talon voice programming scribe demo - YouTube
そのため、ボイスコーディングの習得には長い時間がかかり、ピメンテルさんの場合はそれなりのコーディング速度に達するまでに約1か月半の時間を要したとのこと。しかもその期間中、ピメンテルさんは何度も投げだそうと心に決めるほど苦労を重ねたそうで、その習得には相当の努力が必要とされます。
しかし、最初の苦労を乗り越えて「学習曲線」の上昇フェーズに入ったユーザーは、徐々にシステムを自分のものとし始め、やがて使いやすい設定などを独自に編み出せるレベルに達します。ネット上のフォーラムにはそのようなユーザーがコンフィギュレーションファイルを公開しており、従来よりも初心者にとってハードルの低い状況が生まれているといいます。
コミュニティはGitHubやSlack上に存在し、VoiceCodeのコミュニティは250人、Talonのコミュニティは100人程度のメンバーがサインアップしており、一人で両方のコミュニティに加わっているユーザーもいるとのこと。しかしそれでもなお難しさは残っているようで、ピメンテルさんと同じように障害を抱え、ボイスコーディングを利用しているナオミ・サフラさんは「そのようなコミュニティにどっぷりと入り込まずに使いこなせるようなものではありません」と語っています。
ボイスコーディングを行う上で直面する事になる難しさには、「話し方」という要素も存在すること。音声認識エンジンの多くは標準的なアメリカ英語を認識するように作られているため、地域ごとの「訛り」があると認識の精度が低下してしまいます。また、なぜか女性の声は音声認識の精度が落ちるという状況もあるとのこと。そのため、「主流のアメリカ英語を話さない女性」にとって、ボイスコーディングは比較的苦痛を伴うものになってしまうといいます。さらに、体が不自由な人の中には声を出すことも不自由な人がいるケースがあり、そのような場合にはボイスコーディングを行うハードルは高まってしまいます。
しかし、このようにいくつかの問題がある状況であっても、多くの人はボイスコーディングがもたらす利益にも感謝しているとのこと。前出のサフラさんは、「私はよく『朝に目が覚めたら自分の手が治っていたら、そしてコーディングを続けることができたら』と考えていました」と振り返ります。また、ボイスコーディングは身体的な負担を軽減することにもつながるとのこと。足を使ってコーディングを行っていたサフラさんにとって、声で入力できることは身体的にも大きなメリットがあるといいます。
さらに、ボイスコーディングがもたらす最大のメリットは、もっと目に見えないところにあるとのこと。ピメンテルさんは「今の私は、何かを言ったり実行する時により注意深く考えるようになりました」「そして、私のコードは他の人に比べてバグが少ないそうです」と述べています。また、サフラさんも「私は自分のツールを使いこなしている感覚があります。今まで、ここまでのモチベーションを感じたことはありませんでした」と、ボイスコーディングによってもたらされた自分の変化について語っています。
・関連記事
音声認識ソフトを使ってキーボードより速くプログラムをコーディングする実例 - GIGAZINE
Appleは盲目や弱視など視覚障害を持つ人々がイノベーションを加速させる重要な要素だと考えている - GIGAZINE
机・ベッド・頭・自転車のハンドルなど、どんな場所でもタッチ可能なキーボードに変えてしまう「TAP」 - GIGAZINE
Appleがデベロッパーたちの生態を自然ドキュメンタリー風に解説したムービー「The Developer Migration」を公開 - GIGAZINE
「給料が多いほど仕事が好き」「よく使うプログラミング言語」「開発環境」「開発者歴」「OS」など世界中の開発者の統計をまとめた「Stack Overflow Developer Survey 2016」 - GIGAZINE
・関連コンテンツ