Programación con software de reconocimiento de voz [cerrado]

10

Hace unos años, utilicé Dragon Naturally Speaking muy brevemente y estaba pensando si sería una solución viable para la programación.

Estaba pensando más si te rompes el brazo o algo que sería un gran obstáculo para la programación.

Esta misma pregunta sobre SO pero nunca fue respondida.

Jim
fuente
55
Esta es una idea interesante, pero creo que la sintaxis del lenguaje realmente tropezaría con cualquier cosa que no esté dedicada a trabajar para ese idioma
Ryathal
1
Más allá del problema de puntuación, la codificación implica una gran cantidad de edición, algo en lo que el control por voz no será bueno.
Loren Pechtel
1
Intentar esto con la cantidad de abuso de puntuación común en la mayoría de los lenguajes de programación recuerda la comedia fonética de puntuación de Victor Borge.
hotpaw2
¿Te imaginas trabajar con autocompletar con VS?
Chad Harrison
1
Puede ser una idea usar Dragon Dictate para otras cosas que no sean la codificación real, como compilar, iniciar la aplicación compilada, redactar / responder correos electrónicos, algunas cosas comunes que pueden distraer o retrasar la codificación real.
Gortron

Respuestas:

18

Puedo responder a esto por experiencia personal. Hace unos años, me rompí los brazos en un accidente. Como mi trabajo era programación a tiempo completo, esto era un problema. Con algo de ayuda, instalé Dragon en mi computadora portátil.

Fue una pérdida de tiempo.

El código no se parece mucho al lenguaje natural; se escribe principalmente, no se habla. Sé exactamente lo que y_z = (x < 0 ? -x : x) + 2;significa, pero no tengo idea de cómo lo pronunciaría, ni me importa.

Al ser un lenguaje de solo escritura, el código es muy preciso a nivel de caracteres. Hay una gran diferencia entre (x+2)*3y (x+2*3). Los programas de voz a texto son buenos para prestar atención a las palabras, no a los caracteres. Agregar caracteres específicos requiere muchas palabras como "paréntesis izquierdo, x, signo más, dos, paréntesis derecho".

Cuando estoy codificando, me muevo y reescribo mucho. La conversión de voz a texto es buena para una sola secuencia de lenguaje. No es bueno para ir y venir por todos lados.

Muchas de las tareas mínimas en la codificación no son equivalentes a la mecanografía, lo cual es bueno para todo el discurso a texto. Piense en la frecuencia con la que cambia las pestañas para ver algún otro módulo de código, o con qué frecuencia pliega y despliega una función en su editor.

Entonces, si tienes un programa de voz a texto, pruébalo y compruébalo por ti mismo. No creo que estés demasiado impresionado.


Por cierto, no rompas ambos brazos a la vez. Romper uno a la vez, es mucho más fácil de esa manera.

Si hubiera tenido un solo brazo roto, habría hecho toda mi codificación con una sola mano. Todavía sería más rápido que usar software de voz a texto.

Joe
fuente
Creo que la forma en que voy a programar no estaría en mi lista de preocupaciones si me rompiera los dos brazos ...
Ryathal
3
No al principio, claro. Pero cuando se sienta mejor, tenga su computadora portátil en casa, pero no podrá conducir un automóvil durante unos meses, le gustaría trabajar un poco.
Joe
13

Para un programador profesional que trabaja (donde el tiempo es dinero) con un túnel carpiano severo o lesiones en las manos (etc.), puede ser mucho más eficiente contratar a un "programador de parejas" junior / interno, y dejar que hagan el "reconocimiento de voz" y mecanografía.

hotpaw2
fuente
Este es un buen pensamiento. Con la programación de pares, aún podría ser productivo con dos brazos rotos mientras trabajara con un compañero que supiera cómo escribir y cómo escribir código.
Kyralessa
4

Aquí hay un enlace a un video de una Convención de Python donde Tavis Rudd explica cómo personalizó Dragon Naturally Speaking utilizando su estructura de complemento de Python para crear un vocabulario adecuado para la programación y edición en Emacs, vim y el terminal. Un vistazo inspirador a las posibilidades de reconocimiento de voz en el dominio de la programación y el desarrollo.

Usando Python para codificar por voz

Hace dos años desarrollé un caso de Emacs Pinkie (RSI) tan severo que mis manos se entumecieron y ya no podía escribir ni trabajar. Desesperado, intenté el reconocimiento de voz. Al principio, la programación fue dolorosamente lenta pero, como no podía escribir, perseveré. Después de varios meses de ajustes de vocabulario y codificación de cinta adhesiva en Python y Emacs Lisp, tenía un sistema que me permitía codificar por voz de manera más rápida y eficiente que nunca.

En una demostración en vivo de ritmo rápido, crearé un pequeño sistema usando Python, además de algunos otros idiomas para una buena medida, y lo desplegaré sin tocar el teclado. Los dioses de demostración harán una aparición programada. Espero convencerlo de que el reconocimiento de voz ya no es una muleta para los discapacitados o se limita a la prosa simple. Ahora es una herramienta altamente efectiva que podría beneficiar a todos los programadores ...

estrellas en mis bolsillos
fuente
1
¿Le importaría explicar más sobre lo que hace y por qué lo recomienda como respuesta a la pregunta que se hace? Las "respuestas de solo enlace" no son del todo bienvenidas en Stack Exchange
mosquito
1
mosquito: actualicé la publicación para reflejar por qué creo que es un recurso relevante y útil. Si los enlaces no son apropiados para el formato, lo eliminaré.
starsinmypockets
1

De hecho, puede crear una programación por solución de voz usando Dragon NaturallySpeaking, pero Dragon NaturallySpeaking será solo una pequeña parte de la solución general.

Necesita mucha tecnología más allá de simplemente convertir la voz en palabras para programar con éxito la voz. Algunos ejemplos de los problemas que deben abordarse:

¿Cómo se ingresan palabras impronunciables como ostreambuf_iterator? ¿Cómo manejas los altos niveles de puntuación en los lenguajes de programación? ¿Cómo cambiarás entre ventanas?

En general, lleva varios meses construir y aprender una solución de programación por voz. Las personas como Joe que esperan que algo funcione en uno o dos días se sentirán muy decepcionadas.

Moverse hacia adelante y hacia atrás funciona bien con la voz dada un conjunto razonable de comandos. Por ejemplo, puede especificar fácilmente la línea de destino utilizando su número de línea visualizado mod 100. Moverse por palabras o caracteres de puntuación funciona bien con los lenguajes de programación para moverse dentro de una línea.

Puede encontrar mucha más información sobre estos problemas en la programación por preguntas frecuentes de voz ubicadas en http://vocola.net/programming-by-voice-FAQ.html

usuario2278379
fuente
0

Según la respuesta de Joe, donde el problema es que no puedes ir y venir:

Puede usar el seguimiento ocular adicionalmente para resolver este problema.

Los lenguajes de programación pueden ser legibles. Smalltalk es bastante legible.

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

Imagine un lenguaje de programación optimizado para hablar. Se puede hacer.

Si hubiera preguntado a mis clientes qué querían, habrían dicho un caballo más rápido. - Henry Ford

En estos términos: una entrada de texto hablado puede no serlo. Pero un entorno controlado por el habla con rasgos programables sería un paso más allá.

Usuario
fuente