Programmierung mit Spracherkennungssoftware [geschlossen]

10

Ich habe Dragon Naturally Speaking vor einigen Jahren sehr kurz verwendet und dachte, ob es eine praktikable Lösung für die Programmierung wäre?

Ich habe mehr darüber nachgedacht, ob Sie sich den Arm brechen oder etwas, das die Programmierung erheblich behindert.

Dieselbe Frage zu SO wurde aber nie beantwortet.

Jim
quelle
5
Dies ist eine interessante Idee, aber ich denke, die Sprachsyntax würde wirklich alles
auslösen
1
Über das Interpunktionsproblem hinaus erfordert das Codieren eine Menge Bearbeitung, etwas, in dem die Sprachsteuerung nicht gut sein wird.
Loren Pechtel
1
Der Versuch, dies mit der Menge an Interpunktionsmissbrauch zu versuchen, die in den meisten Programmiersprachen üblich ist, erinnert an Victor Borges Comedy-Sketch "Phonetic Punctuation".
hotpaw2
Können Sie sich vorstellen, mit VS mit Autocomplete zu arbeiten?
Chad Harrison
1
Es könnte eine Idee sein, Dragon Dictate für andere Dinge als die eigentliche Codierung zu verwenden, z. B. Kompilieren, Starten der kompilierten App, Verfassen / Beantworten von E-Mails, einige häufige Dinge, die die eigentliche Codierung ablenken oder verzögern könnten.
Gortron

Antworten:

18

Ich kann diese Frage aus persönlicher Erfahrung beantworten. Vor einigen Jahren habe ich mir bei einem Unfall beide Arme gebrochen . Da mein Job Vollzeitprogrammierung war, war dies ein Problem. Mit etwas Hilfe habe ich Dragon auf meinem Laptop installiert.

Es war Zeitverschwendung.

Code ist nicht viel wie natürliche Sprache; es wird hauptsächlich geschrieben, nicht gesprochen. Ich weiß genau, was es y_z = (x < 0 ? -x : x) + 2;bedeutet, aber ich habe keine Ahnung, wie ich es aussprechen würde, und es interessiert mich auch nicht.

Als reine Schreibsprache ist Code auf Zeichenebene sehr präzise. Es gibt einen großen Unterschied zwischen (x+2)*3und (x+2*3). Sprach-zu-Text-Programme können gut auf Wörter und nicht auf Zeichen achten. Das Hinzufügen bestimmter Zeichen erfordert viele Aussagen wie "linke Klammer, x, Pluszeichen, zwei, rechte Klammer".

Wenn ich programmiere, bewege ich mich viel und schreibe neu. Speech-to-Text ist gut für einen einzelnen Sprachstrom. Es ist nicht gut, überall hin und her zu gehen.

Viele der winzigen Aufgaben beim Codieren sind nicht gleichbedeutend mit dem Tippen, wofür nur Sprache-zu-Text gut ist. Überlegen Sie, wie oft Sie die Registerkarten ändern, um ein anderes Codemodul anzuzeigen, oder wie oft Sie eine Funktion in Ihrem Editor falten und entfalten.

Wenn Sie also ein Sprachprogramm haben, probieren Sie es aus und überzeugen Sie sich selbst. Ich glaube nicht, dass Sie zu beeindruckt sein werden.


Brechen Sie übrigens nicht beide Arme gleichzeitig. Brechen Sie einen nach dem anderen, es ist viel einfacher auf diese Weise.

Wenn ich nur einen gebrochenen Arm gehabt hätte, hätte ich meine gesamte Codierung nur mit einer Hand durchgeführt. Es wäre immer noch schneller als die Verwendung von Sprach-Text-Software.

Joe
quelle
Ich denke, wie ich programmieren werde, wäre nicht auf meiner Liste der Bedenken, wenn ich mir beide Arme
brechen würde
3
Zuerst nicht sicher. Aber wenn Sie sich besser fühlen, Ihren Laptop zu Hause haben und einige Monate lang kein Auto fahren können, möchten Sie etwas Arbeit erledigen.
Joe
13

Für einen arbeitenden professionellen Programmierer (wo Zeit Geld ist) mit schweren Karpaltunneln oder Handverletzungen (usw.) kann es weitaus effizienter sein, einen Junior / Praktikanten "Paar Programmierer" einzustellen und ihn die "Spracherkennung" und durchführen zu lassen Tippen.

hotpaw2
quelle
Das ist ein guter Gedanke. Mit der Paarprogrammierung können Sie mit zwei gebrochenen Armen immer noch produktiv sein, solange Sie mit einem Partner zusammenarbeiten, der weiß, wie man tippt und wie man Code schreibt.
Kyralessa
4

Hier ist ein Link zu einem Video von einer Python-Konvention, in dem Tavis Rudd erklärt, wie er Dragon Naturally Speaking mithilfe seiner Python-Plugin-Struktur angepasst hat, um ein Vokabular zu erstellen, das für die Programmierung und Bearbeitung in Emacs, vim und dem Terminal geeignet ist. Ein inspirierender Einblick in die Möglichkeiten der Spracherkennung im Bereich Programmierung und Entwicklung.

Verwenden von Python zum Codieren per Sprache

Vor zwei Jahren entwickelte ich einen Fall von Emacs Pinkie (RSI), bei dem meine Hände taub wurden und ich nicht mehr tippen oder arbeiten konnte. Verzweifelt versuchte ich es mit Spracherkennung. Anfangs war das Programmieren damit schmerzhaft langsam, aber da ich nicht tippen konnte, hielt ich durch. Nach mehreren Monaten des Optimierens von Vokabeln und des Codierens von Klebebändern in Python und Emacs Lisp verfügte ich über ein System, mit dem ich schneller und effizienter per Sprache codieren konnte als jemals zuvor per Hand.

In einer rasanten Live-Demo werde ich ein kleines System mit Python und einigen anderen Sprachen erstellen und es bereitstellen, ohne die Tastatur zu berühren. Die Demo-Götter werden einen geplanten Auftritt haben. Ich hoffe, Sie davon zu überzeugen, dass die Spracherkennung keine Krücke für Behinderte mehr ist oder sich auf einfache Prosa beschränkt. Es ist jetzt ein hocheffektives Tool, von dem alle Programmierer profitieren könnten ...

Sterne in Taschen
quelle
1
Würde es Ihnen etwas ausmachen, mehr darüber zu erklären, was es tut und warum Sie es als Antwort auf die gestellte Frage empfehlen? "Nur-Link-Antworten" sind bei Stack Exchange
Mücke
1
Mücke - Ich habe den Beitrag aktualisiert, um zu reflektieren, warum ich denke, dass es eine relevante und nützliche Ressource ist. Wenn Links für das Format nicht geeignet sind, werde ich es entfernen.
Starsinmypockets
1

Sie können zwar mit Dragon NaturallySpeaking eine Programmierung per Sprachlösung erstellen, aber Dragon NaturallySpeaking wird nur ein kleiner Teil der Gesamtlösung sein.

Sie benötigen eine Menge Technologie, die über das einfache Umwandeln von Sprache in Wörter hinausgeht, um erfolgreich per Sprache zu programmieren. Einige Beispiele für die Probleme, die angegangen werden müssen:

Wie gibt man unaussprechliche Wörter wie ostreambuf_iterator ein? Wie gehen Sie mit der starken Interpunktion in Programmiersprachen um? Wie werden Sie zwischen Fenstern wechseln?

Im Allgemeinen dauert es mehrere Monate, um eine Programmierung per Sprachlösung zu erstellen und zu erlernen. Leute wie Joe, die erwarten, dass in ein oder zwei Tagen etwas funktioniert, werden zutiefst enttäuscht sein.

Das Hin- und Herbewegen funktioniert gut mit der Stimme, wenn ein angemessener Befehlssatz gegeben ist. Zum Beispiel können Sie die Zielzeile einfach mit der angezeigten Zeilennummer mod 100 angeben. Das Verschieben nach Wörtern oder Satzzeichen funktioniert gut mit Programmiersprachen zum Verschieben innerhalb einer Zeile.

Weitere Informationen zu diesen Problemen finden Sie in den häufig gestellten Fragen zur Programmierung per Sprache unter http://vocola.net/programming-by-voice-FAQ.html

user2278379
quelle
0

Basierend auf Joes Antwort, wo das Problem ist, dass man nicht hin und her gehen kann:

Sie können Eye Tracking zusätzlich verwenden, um dieses Problem zu lösen.

Programmiersprachen können lesbar sein. Smalltalk ist gut lesbar.

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

Stellen Sie sich eine Programmiersprache vor, die für das Sprechen optimiert ist. Es kann getan werden.

Wenn ich meine Kunden gefragt hätte, was sie wollten, hätten sie ein schnelleres Pferd gesagt. - Henry Ford

In diesen Begriffen: Eine gesprochene Texteingabe kann es nicht sein. Eine sprachgesteuerte Umgebung mit programmierbaren Merkmalen wäre jedoch noch einen Schritt weiter.

Nutzer
quelle