Programmation avec logiciel de reconnaissance vocale [fermé]

10

J'ai utilisé Dragon Naturally Speaking très brièvement il y a quelques années et je me demandais si ce serait une solution viable pour la programmation?

Je pensais plus si vous vous cassiez le bras ou quelque chose qui serait un obstacle majeur à la programmation.

Cette même question sur SO mais n'a jamais reçu de réponse.

Jim
la source
5
c'est une idée intéressante, mais je pense que la syntaxe du langage déclencherait vraiment tout ce qui n'est pas dédié au travail pour cette langue
Ryathal
1
Au-delà du problème de ponctuation, le codage implique énormément d'édition, quelque chose que le contrôle vocal ne va pas être bon.
Loren Pechtel
1
Essayer cela avec la quantité d'abus de ponctuation communs à la plupart des langages de programmation rappelle le sketch de comédie Phonetic Punctuation de Victor Borge.
hotpaw2
Pouvez-vous imaginer travailler avec la saisie semi-automatique avec VS?
Chad Harrison
1
Cela pourrait être une idée d'utiliser Dragon Dictate pour des choses autres que le codage réel, comme la compilation, le lancement de l'application compilée, la composition / réponse aux e-mails, certaines choses courantes qui pourraient distraire ou retarder le codage réel.
Gortron

Réponses:

18

Je peux répondre à celle-ci par expérience personnelle. Il y a quelques années, je me suis cassé les deux bras dans un accident. Étant donné que mon travail consistait en programmation à temps plein, c'était un problème. Avec de l'aide, j'ai installé Dragon sur mon ordinateur portable.

C'était une perte de temps.

Le code ne ressemble pas beaucoup au langage naturel; il est principalement écrit et non parlé. Je sais exactement ce que y_z = (x < 0 ? -x : x) + 2;signifie, mais je ne sais pas comment je le prononcerais, et je m'en fiche.

Étant un langage écrit uniquement, le code est très précis au niveau des caractères. Il y a une grande différence entre (x+2)*3et (x+2*3). Les programmes de synthèse vocale sont bons pour prêter attention aux mots, pas aux caractères. L'ajout de caractères spécifiques nécessite beaucoup de choses comme "parenthèse gauche, x, signe plus, deux, parenthèse droite".

Quand je code, je fais beaucoup de déplacement et de réécriture. La synthèse vocale est bonne pour un seul flux de langue. Ce n'est pas bon pour aller et venir partout.

De nombreuses tâches minutieuses de codage ne sont pas équivalentes à la frappe, ce qui est tout ce que la synthèse vocale est bon pour. Pensez à la fréquence à laquelle vous changez d'onglet pour consulter un autre module de code, ou à quelle fréquence vous pliez et dépliez une fonction dans votre éditeur.

Donc, si vous avez un programme de synthèse vocale, essayez-le et voyez par vous-même. Je ne pense pas que vous serez trop impressionné.


Soit dit en passant, ne cassez pas les deux bras à la fois. Cassez un à la fois, c'est beaucoup plus facile de cette façon.

Si je n'avais eu qu'un seul bras cassé, j'aurais juste fait tout mon codage d'une seule main. Ce serait toujours plus rapide que d'utiliser un logiciel de synthèse vocale.

Joe
la source
Je pense que la façon dont je vais programmer ne serait pas sur ma liste de préoccupations si je me
cassais les
3
Pas au début, bien sûr. Mais lorsque vous vous sentez mieux, que vous avez votre ordinateur portable à la maison, mais que vous ne pourrez pas conduire de voiture pendant quelques mois, vous aimeriez faire du travail.
Joe
13

Pour un programmeur professionnel qui travaille (où le temps c'est de l'argent) avec de graves lésions du canal carpien ou des mains (etc.), il peut être beaucoup plus efficace d'embaucher un "programmeur de paires" junior / stagiaire, et de les laisser faire la "reconnaissance vocale" et dactylographie.

hotpaw2
la source
C'est une bonne idée. Avec la programmation par paire, vous pouvez toujours être productif avec deux bras cassés tant que vous travaillez avec un partenaire qui savait comment taper et écrire du code.
Kyralessa
4

Voici un lien vers une vidéo d'une convention Python où Tavis Rudd explique comment il a personnalisé Dragon Naturally Speaking en utilisant leur structure de plugin Python pour créer un vocabulaire adapté à la programmation et à l'édition dans Emacs, vim et le terminal. Un aperçu inspirant des possibilités de reconnaissance vocale dans le domaine de la programmation et du développement.

Utiliser Python pour coder par la voix

Il y a deux ans, j'ai développé un cas d'Emacs Pinkie (RSI) si sévère que mes mains se sont engourdies et que je ne pouvais plus taper ni travailler. Désespéré, j'ai essayé la reconnaissance vocale. Au début, la programmation avec elle était douloureusement lente mais, comme je ne pouvais pas taper, j'ai persévéré. Après plusieurs mois de peaufinage du vocabulaire et de codage en ruban adhésif en Python et Emacs Lisp, j'avais un système qui me permettait de coder plus rapidement et plus efficacement par la voix que je n'avais jamais eu à la main.

Dans une démonstration en direct rapide, je vais créer un petit système en utilisant Python, plus quelques autres langues pour faire bonne mesure, et le déployer sans toucher au clavier. Les dieux de démonstration feront une apparition programmée. J'espère vous convaincre que la reconnaissance vocale n'est plus une béquille pour les personnes handicapées ou limitée à la prose simple. C'est maintenant un outil très efficace qui pourrait bénéficier à tous les programmeurs ...

starsinmypockets
la source
1
Pourriez-vous expliquer davantage ce qu'il fait et pourquoi le recommandez-vous comme répondant à la question posée? Les "réponses de lien uniquement" ne sont pas tout à fait les bienvenues à Stack Exchange
moucher
1
gnat - J'ai mis à jour le message pour refléter pourquoi je pense que c'est une ressource pertinente et utile. Si les liens ne conviennent pas au format, je le supprimerai.
starsinmypockets
1

Vous pouvez en effet créer une solution de programmation par la voix en utilisant Dragon NaturallySpeaking, mais Dragon NaturallySpeaking ne sera qu'un petit morceau de la solution globale.

Vous avez besoin de beaucoup de technologie au-delà de la simple transformation de la voix en mots pour pouvoir programmer avec succès. Quelques exemples des problèmes à résoudre:

Comment saisissez-vous des mots imprononçables comme ostreambuf_iterator? Comment gérez-vous les niveaux élevés de ponctuation dans les langages de programmation? Comment allez-vous basculer entre les fenêtres?

Généralement, il faut plusieurs mois pour construire et apprendre une solution de programmation par la voix. Des gens comme Joe qui s'attendent à ce que quelque chose fonctionne en un jour ou deux vont être très déçus.

Les allers-retours fonctionnent bien avec la voix, étant donné un ensemble raisonnable de commandes. Par exemple, vous pouvez facilement spécifier la ligne cible en utilisant son numéro de ligne affiché mod 100. Le déplacement par des mots ou des caractères de ponctuation fonctionne bien avec les langages de programmation pour se déplacer à l'intérieur d'une ligne.

Vous pouvez trouver beaucoup plus d'informations sur ces problèmes dans la FAQ de programmation vocale située sur http://vocola.net/programming-by-voice-FAQ.html

user2278379
la source
0

Basé sur la réponse de Joe où le problème est que vous ne pouvez pas aller et venir:

Vous pouvez également utiliser l'eye tracking pour résoudre ce problème.

Les langages de programmation peuvent être lisibles. Smalltalk est assez lisible.

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

Imaginez un langage de programmation optimisé pour parler. Ça peut être fait.

Si j'avais demandé à mes clients ce qu'ils voulaient, ils auraient dit un cheval plus rapide. - Henry Ford

En ces termes: Une entrée de texte parlé peut ne pas l'être. Mais un environnement contrôlé par la parole avec des traits programmables serait un pas de plus.

Utilisateur
la source