Programação com software de reconhecimento de voz [fechado]

10

Eu usei o Dragon Naturally Speaking muito brevemente alguns anos atrás e estava pensando se seria uma solução viável para programação?

Eu estava pensando mais se você quebrar o braço ou algo que seria um grande obstáculo à programação.

Esta mesma pergunta no SO, mas nunca foi respondida.

Jim
fonte
5
esta é uma idéia interessante, mas acho que a sintaxe da linguagem seria realmente tropeçar qualquer coisa não dedicado a trabalhar para esse idioma
Ryathal
11
Além do problema de pontuação, a codificação envolve uma enorme quantidade de edições, algo em que o controle por voz não será bom.
Loren Pechtel
11
Tentar isso com a quantidade de abuso de pontuação comum à maioria das linguagens de programação lembra a comédia de pontuação fonética de Victor Borge.
hotpaw2
Você poderia imaginar trabalhando com o preenchimento automático com o VS?
Chad Harrison
11
Pode ser uma idéia usar o Dragon Dictate para outras coisas além da codificação real, como compilar, iniciar o aplicativo compilado, redigir / responder a emails, algumas coisas comuns que podem distrair ou atrasar a codificação real.
Gortron

Respostas:

18

Eu posso responder a este por experiência pessoal. Alguns anos atrás, quebrei os dois braços em um acidente. Como meu trabalho era programação em tempo integral, isso era um problema. Com alguma ajuda, instalei o Dragon no meu laptop.

Isto foi uma perda de tempo.

Código não é muito parecido com linguagem natural; é principalmente escrito, não falado. Eu sei exatamente o que y_z = (x < 0 ? -x : x) + 2;significa, mas não tenho idéia de como o pronunciaria, nem me importo.

Sendo uma linguagem somente escrita, o código é muito preciso no nível do caractere. Há uma grande diferença entre (x+2)*3e (x+2*3). Os programas de fala em texto são bons em prestar atenção às palavras, não aos caracteres. A adição de caracteres específicos requer muitas palavras como "parênteses esquerdo, x, sinal de adição, dois, parênteses direito".

Quando estou codificando, mudo muito e reescrito. A fala para texto é boa para um único fluxo de idioma. Não é bom para ir e voltar em todo o lugar.

Muitas das tarefas minuciosas da codificação não são equivalentes à digitação, o que é bom para a fala em texto. Pense na frequência com que você muda de guia para examinar outro módulo de código ou com que frequência desdobra e desdobra uma função no seu editor.

Portanto, se você tiver um programa de fala para texto, tente e veja por si mesmo. Eu não acho que você ficará muito impressionado.


Aliás, não quebre os dois braços ao mesmo tempo. Quebrar um de cada vez, é muito mais fácil assim.

Se eu tivesse apenas um braço quebrado, teria feito todo o meu código com uma mão. Ainda seria mais rápido do que usar software de fala para texto.

Joe
fonte
Eu acho que como eu vou programa não seria na minha lista de preocupações, se eu quebrei meus dois braços ...
Ryathal
3
Não a princípio, com certeza. Mas quando estiver se sentindo melhor, tenha seu laptop em casa e ainda não consiga dirigir um carro por alguns meses, você gostaria de fazer algum trabalho.
1616 Joe
13

Para um programador profissional que trabalha (onde tempo é dinheiro) com graves lesões no túnel do carpo ou nas mãos (etc.), pode ser muito mais eficiente contratar um "programador par" júnior / estagiário e deixá-lo fazer o "reconhecimento de voz" e digitando.

hotpaw2
fonte
Este é um bom pensamento. Com a programação em pares, você ainda pode ser produtivo com dois braços quebrados, desde que esteja trabalhando com um parceiro que saiba digitar e escrever código.
Kyralessa 17/05
4

Aqui está um link para um vídeo de uma Convenção Python, onde Tavis Rudd explica como ele personalizou o Dragon Naturally Speaking usando sua estrutura de plugins Python para criar um vocabulário adequado para a programação e edição no Emacs, vim e no terminal. Um vislumbre inspirador das possibilidades de reconhecimento de voz no domínio da programação e desenvolvimento.

Usando Python para codificar por voz

Há dois anos, desenvolvi um caso de Emacs Pinkie (RSI) tão severo que minhas mãos ficaram dormentes e eu não conseguia mais digitar ou trabalhar. Desesperado, tentei o reconhecimento de voz. No começo, a programação era dolorosamente lenta, mas, como eu não sabia digitar, perseverava. Após vários meses de aprimoramento de vocabulário e codificação em fita adesiva no Python e no Emacs Lisp, eu tinha um sistema que me permitia codificar de forma mais rápida e eficiente por voz do que nunca.

Em uma demonstração ao vivo em ritmo acelerado, criarei um pequeno sistema usando o Python, além de algumas outras linguagens para uma boa medida, e implantarei sem tocar no teclado. Os deuses da demo farão uma aparição programada. Espero convencê-lo de que o reconhecimento de voz não é mais uma muleta para os deficientes ou se limita à prosa simples. Agora é uma ferramenta altamente eficaz que pode beneficiar todos os programadores ...

starsinmypockets
fonte
11
você se importaria de explicar mais sobre o que faz e por que o recomenda como resposta à pergunta? "Respostas apenas para links" não são bem-vindas no Stack Exchange
gnat
11
gnat - atualizei o post para refletir por que acho que é um recurso relevante e útil. Se os links não forem apropriados para o formato, eu o removerei.
starsinmypockets
1

Você pode realmente criar uma solução de programação por voz usando o Dragon NaturallySpeaking, mas o Dragon NaturallySpeaking será apenas uma pequena parte da solução geral.

Você precisa de muita tecnologia além de simplesmente transformar voz em palavras para programar com sucesso. Alguns exemplos dos problemas que devem ser abordados:

Como você digita palavras impronunciáveis ​​como ostreambuf_iterator? Como você lida com os altos níveis de pontuação nas linguagens de programação? Como você vai alternar entre janelas?

Geralmente, são necessários vários meses para criar e aprender uma solução de programação por voz. Pessoas como Joe, que esperam conseguir algo em um dia ou dois, ficarão muito desapontadas.

Mover para frente e para trás funciona bem com a voz, considerando um conjunto razoável de comandos. Por exemplo, você pode especificar facilmente a linha de destino usando o número de linha exibido mod 100. Mover por palavras ou caracteres de pontuação funciona bem com linguagens de programação para mover dentro de uma linha.

Você pode encontrar muito mais informações sobre esses problemas na programação por voz, localizada em http://vocola.net/programming-by-voice-FAQ.html

user2278379
fonte
0

Com base na resposta de Joe, onde o problema é que você não pode ir e voltar:

Você pode usar o rastreamento ocular adicionalmente para resolver esse problema.

Linguagens de programação podem ser legíveis. Smalltalk é bastante legível.

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

Imagine uma linguagem de programação otimizada para falar. Pode ser feito.

Se eu tivesse perguntado aos meus clientes o que eles queriam, teriam dito um cavalo mais rápido. - Henry Ford

Nestes termos: Uma entrada de texto falado pode não ser a mesma. Mas um ambiente controlado por fala com características programáveis ​​seria um passo adiante.

Do utilizador
fonte