私は数年前に非常に簡潔にDragon Naturally Speakingを使用し、それがプログラミングの実行可能な解決策になるかどうか考えていましたか?
あなたが腕を骨折したり、プログラミングの大きな障害となるものを壊したりした場合、私はもっと考えていました。
SO についても同じ質問ですが、答えはありませんでした。
私は数年前に非常に簡潔にDragon Naturally Speakingを使用し、それがプログラミングの実行可能な解決策になるかどうか考えていましたか?
あなたが腕を骨折したり、プログラミングの大きな障害となるものを壊したりした場合、私はもっと考えていました。
SO についても同じ質問ですが、答えはありませんでした。
回答:
これは個人的な経験から答えることができます。数年前、私は事故で両腕を骨折しました。私の仕事はフルタイムのプログラミングだったので、これは問題でした。いくつかの助けを借りて、ノートパソコンにDragonをインストールしました。
時間の無駄でした。
コードは自然言語とあまり似ていません。それは主に書かれていて話されていません。どういうy_z = (x < 0 ? -x : x) + 2;
意味かは正確にわかっていますが、どのように発音すればよいのかわかりませんし、気にしていません。
書き込み専用言語であるため、コードは文字レベルで非常に正確です。との間には大きな違いが(x+2)*3
あり(x+2*3)
ます。音声文字変換プログラムは、文字ではなく単語に注意を払うのが得意です。特定の文字を追加するには、「左括弧、x、プラス記号、2、右括弧」のように多くのことを言う必要があります。
私がコーディングしているとき、私は多くの移動と書き換えを行います。Speech-to-textは、単一の言語ストリームに適しています。あちこち行き来するのは良くない。
コーディングの細かい作業の多くは、タイピングと同等ではありません。これは、すべての音声テキスト変換に適しています。タブを変更して他のコードモジュールを確認する頻度や、エディターで関数を折りたたんだり展開したりする頻度について考えてみてください。
したがって、音声テキスト変換プログラムをお持ちの場合は、実際に試してみてください。あまり感動しないと思います。
ちなみに、一度に両腕を折らないでください。一度に1つずつブレークすると、その方法がはるかに簡単になります。
腕の骨折が1つしかない場合は、すべてのコーディングを片手で行っただけです。それでも、音声テキスト変換ソフトウェアを使用するよりも高速です。
重度の手根管や手による怪我(など)を抱えるプロのプログラマー(時は金なり)の場合、ジュニア/インターンの「ペアプログラマー」を雇って、「音声認識」とタイピング。
以下は、Python規約のビデオへのリンクです。TavisRuddが、Pythonプラグイン構造を使用してDragon Naturally Speakingをカスタマイズし、Emacs、vim、およびターミナルでのプログラミングと編集に適した語彙を作成する方法を説明しています。プログラミングと開発の領域で音声認識の可能性を垣間見ることができます。
2年前、Emacs Pinkie(RSI)のケースを開発しました。手がひどくなり、タイプも作業もできなくなりました。必死で、音声認識を試みました。最初はそれを使ったプログラミングはひどく遅くなりましたが、タイプすることができなかったので、私はがんばりました。PythonとEmacs Lispで数か月間の語彙の調整とダクトテープコーディングを行った後、手作業で行ったよりも速く音声で効率的にコーディングできるシステムができました。
テンポの速いライブデモでは、Pythonを使用して小規模なシステムを作成し、それに加えていくつかの適切な言語を使用して、キーボードに触れることなく導入します。デモの神々が予定された姿で登場します。私は、音声認識がもはや障害者の松葉杖ではなく、単なる散文に限定されていないことをあなたに納得させたいと思います。今では、すべてのプログラマーに利益をもたらす非常に効果的なツールになっています...
確かにDragon NaturallySpeakingを使用して音声ソリューションでプログラミングを構築できますが、Dragon NaturallySpeakingはソリューション全体のほんの一部にすぎません。
音声によるプログラミングを成功させるには、単に音声を単語に変換する以外にも多くの技術が必要です。対処する必要がある問題の例:
ostreambuf_iteratorのように発音できない単語をどのように入力しますか?プログラミング言語での高レベルの句読点をどのように処理しますか?ウィンドウをどのように切り替えますか?
一般に、プログラミングによる音声ソリューションの構築と学習には数か月かかります。ジョーのように、1日か2日で何かが機能することを期待している人々は、ひどく失望するでしょう。
前後に移動することは、適切なコマンドセットを与えられた音声でうまく機能します。たとえば、表示された行番号mod 100を使用してターゲット行を簡単に指定できます。単語または句読文字による移動は、行内を移動するプログラミング言語でうまく機能します。
これらの問題に関する多くの情報は、http://vocola.net/programming-by-voice-FAQ.htmlにあるプログラミングによる音声FAQにあります。
問題はあなたが行き来できないというジョーの答えに基づいて:
この問題を解決するには、さらにアイトラッキングを使用できます。
プログラミング言語は読みやすくすることができます。Smalltalkはかなり読みやすいです。
10 timesRepeat: [
Transcript show:'hello'.
Transcript cr.
].
話すために最適化されたプログラミング言語を想像してみてください。できます。
私が顧客に何が欲しいのか尋ねたならば、彼らはより速い馬を言っただろう。- ヘンリー・フォード
これらの用語では:音声テキスト入力はそうではないかもしれません。しかし、プログラム可能な特性を持つ音声制御環境は、さらに一歩前進するでしょう。