音声認識ソフトウェアによるプログラミング[終了]


10

私は数年前に非常に簡潔にDragon Naturally Speakingを使用し、それがプログラミングの実行可能な解決策になるかどうか考えていましたか?

あなたが腕を骨折したり、プログラミングの大きな障害となるものを壊したりした場合、私はもっと考えていました。

SO についても同じ質問ですが、答えはありませんでした。


5
これは興味深いアイデアですが、言語構文は、その言語での作業に捧げられていないものは
すべて台無しになって

1
句読点の問題のコーディングを超えてコーディングを行うと、音声制御が得意ではない、非常に多くの編集が必要になります。
Loren Pechtel

1
ほとんどのプログラミング言語に共通する句読点の乱用の量でこれを試すと、ビクターボルゲの音声句読点コメディスキットが思い浮かびます。
hotpaw2

VSでオートコンプリートを使用することを想像できますか?
チャドハリソン

1
コンパイル、コンパイル済みアプリの起動、電子メールの作成/返信、実際のコーディングの邪魔または遅延の原因となるいくつかの一般的なことなど、実際のコーディング以外のものにDragon Dictateを使用することは、アイデアかもしれません。
Gortron

回答:


18

これは個人的な経験から答えることができます。数年前、私は事故で腕を骨折しました。私の仕事はフルタイムのプログラミングだったので、これは問題でした。いくつかの助けを借りて、ノートパソコンにDragonをインストールしました。

時間の無駄でした。

コードは自然言語とあまり似ていません。それは主に書かれていて話されていません。どういうy_z = (x < 0 ? -x : x) + 2;意味かは正確にわかっていますが、どのように発音すればよいのかわかりませんし、気にしていません。

書き込み専用言語であるため、コードは文字レベルで非常に正確です。との間には大きな違いが(x+2)*3あり(x+2*3)ます。音声文字変換プログラムは、文字ではなく単語に注意を払うのが得意です。特定の文字を追加するには、「左括弧、x、プラス記号、2、右括弧」のように多くのことを言う必要があります。

私がコーディングしているとき、私は多くの移動と書き換えを行います。Speech-to-textは、単一の言語ストリームに適しています。あちこち行き来するのは良くない。

コーディングの細かい作業の多くは、タイピングと同等ではありません。これは、すべての音声テキスト変換に適しています。タブを変更して他のコードモジュールを確認する頻度や、エディターで関数を折りたたんだり展開したりする頻度について考えてみてください。

したがって、音声テキスト変換プログラムをお持ちの場合は、実際に試してみてください。あまり感動しないと思います。


ちなみに、一度に両腕を折らないでください。一度に1つずつブレークすると、その方法がはるかに簡単になります。

腕の骨折が1つしかない場合は、すべてのコーディングを片手で行っただけです。それでも、音声テキスト変換ソフトウェアを使用するよりも高速です。


私が両方の腕を骨折した場合、私がプログラムするつもりは私の懸念のリストにないだろうと思います...
Ryathal

3
最初は違います。しかし、気分が良くなったとき、ラップトップを家に置いたまま、数か月は車を運転することができないので、いくつかの作業を完了したいと考えています。
ジョー

13

重度の手根管や手による怪我(など)を抱えるプロのプログラマー(時は金なり)の場合、ジュニア/インターンの「ペアプログラマー」を雇って、「音声認識」とタイピング。


これは良い考えです。ペアプログラミングでは、タイプの仕方やコードの書き方を知っているパートナーと一緒に作業している限り、2本の腕を折って生産性を維持できます。
キラレッサ2012年

4

以下は、Python規約のビデオへのリンクです。TavisRuddが、Pythonプラグイン構造を使用してDragon Naturally Speakingをカスタマイズし、Emacs、vim、およびターミナルでのプログラミングと編集に適した語彙を作成する方法を説明しています。プログラミングと開発の領域で音声認識の可能性を垣間見ることができます。

Pythonを使用して音声でコーディングする

2年前、Emacs Pinkie(RSI)のケースを開発しました。手がひどくなり、タイプも作業もできなくなりました。必死で、音声認識を試みました。最初はそれを使ったプログラミングはひどく遅くなりましたが、タイプすることができなかったので、私はがんばりました。PythonとEmacs Lispで数か月間の語彙の調整とダクトテープコーディングを行った後、手作業で行ったよりも速く音声で効率的にコーディングできるシステムができました。

テンポの速いライブデモでは、Pythonを使用して小規模なシステムを作成し、それに加えていくつかの適切な言語を使用して、キーボードに触れることなく導入します。デモの神々が予定された姿で登場します。私は、音声認識がもはや障害者の松葉杖ではなく、単なる散文に限定されていないことをあなたに納得させたいと思います。今では、すべてのプログラマーに利益をもたらす非常に効果的なツールになっています...


1
それが何をするのか、そしてあなたが尋ねられた質問に答えるのになぜそれを勧めるのかについてもっと説明してもらえますか?Stack Exchange では「リンクのみの回答」はあまり歓迎されません
2013年

1
gnat-投稿を更新して、関連性があり有用なリソースだと思う理由を反映しました。リンクがフォーマットに適さない場合は、削除します。
starsinmypockets 2013年

1

確かにDragon NaturallySpeakingを使用して音声ソリューションでプログラミングを構築できますが、Dragon NaturallySpeakingはソリューション全体のほんの一部にすぎません。

音声によるプログラミングを成功させるには、単に音声を単語に変換する以外にも多くの技術が必要です。対処する必要がある問題の例:

ostreambuf_iteratorのように発音できない単語をどのように入力しますか?プログラミング言語での高レベルの句読点をどのように処理しますか?ウィンドウをどのように切り替えますか?

一般に、プログラミングによる音声ソリューションの構築と学習には数か月かかります。ジョーのように、1日か2日で何かが機能することを期待している人々は、ひどく失望するでしょう。

前後に移動することは、適切なコマンドセットを与えられた音声でうまく機能します。たとえば、表示された行番号mod 100を使用してターゲット行を簡単に指定できます。単語または句読文字による移動は、行内を移動するプログラミング言語でうまく機能します。

これらの問題に関する多くの情報は、http://vocola.net/programming-by-voice-FAQ.htmlにあるプログラミングによる音声FAQにあります。


0

問題はあなたが行き来できないというジョーの答えに基づいて:

この問題を解決するには、さらにアイトラッキングを使用できます。

プログラミング言語は読みやすくすることができます。Smalltalkはかなり読みやすいです。

10 timesRepeat: [
    Transcript show:'hello'.
    Transcript cr.
].

話すために最適化されたプログラミング言語を想像してみてください。できます。

私が顧客に何が欲しいのか尋ねたならば、彼らはより速い馬を言っただろう。- ヘンリー・フォード

これらの用語では:音声テキスト入力はそうではないかもしれません。しかし、プログラム可能な特性を持つ音声制御環境は、さらに一歩前進するでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.