Programmazione con software di riconoscimento vocale [chiuso]


10

Ho usato Dragon Naturally Speaking molto brevemente qualche anno fa e pensavo che sarebbe stata una soluzione praticabile per la programmazione?

Stavo pensando di più se ti rompessi il braccio o qualcosa che sarebbe un grande ostacolo alla programmazione.

Questa stessa domanda su SO ma non ha mai avuto risposta.


5
questa è un'idea interessante, ma penso che la sintassi del linguaggio farebbe davvero scattare tutto ciò che non è dedicato al lavoro per quella lingua
Ryathal

1
Al di là del problema di punteggiatura, la codifica comporta un sacco di modifiche, qualcosa in cui il controllo vocale non sarà efficace.
Loren Pechtel,

1
Provare questo con la quantità di abuso di punteggiatura comune alla maggior parte dei linguaggi di programmazione fa venire in mente la scenetta comica della punteggiatura fonetica di Victor Borge.
hotpaw2,

Potresti immaginare di lavorare con il completamento automatico con VS?
Chad Harrison,

1
Potrebbe essere un'idea usare Dragon Dictate per cose diverse dalla codifica effettiva, come la compilazione, l'avvio dell'app compilata, la composizione / risposta alle e-mail, alcune cose comuni che potrebbero distrarre o ritardare la codifica effettiva.
Gortron,

Risposte:


18

Posso rispondere a questo per esperienza personale. Alcuni anni fa, ho rotto entrambe le braccia in un incidente. Dato che il mio lavoro consisteva nella programmazione a tempo pieno, questo era un problema. Con un po 'di aiuto, ho installato Dragon sul mio laptop.

È stata una perdita di tempo.

Il codice non è molto simile al linguaggio naturale; è principalmente scritto, non parlato. So esattamente cosa y_z = (x < 0 ? -x : x) + 2;significa, eppure non ho idea di come lo pronuncio, né mi interessa.

Essendo una lingua di sola scrittura, il codice è molto preciso a livello di carattere. C'è una grande differenza tra (x+2)*3e (x+2*3). I programmi di sintesi vocale sono efficaci nel prestare attenzione alle parole, non ai caratteri. L'aggiunta di caratteri specifici richiede molte cose come "parentesi sinistra, x, segno più, due, parentesi destra".

Quando sto programmando, mi muovo e riscrivo molto. La sintesi vocale è utile per un singolo flusso di lingua. Non va bene per andare avanti e indietro dappertutto.

Molte delle minuscole attività di codifica non equivalgono alla digitazione, il che è tutto a favore della sintesi vocale. Pensa a quanto spesso cambi scheda per guardare qualche altro modulo di codice, o quanto spesso pieghi e apri una funzione nel tuo editor.

Quindi, se hai un programma di sintesi vocale, provalo e prova tu stesso. Non credo che sarai troppo colpito.


Per inciso, non rompere entrambe le braccia contemporaneamente. Rompere uno alla volta, è molto più facile in questo modo.

Se avessi avuto solo un braccio rotto, avrei fatto tutto il mio codice con una mano. Sarebbe ancora più veloce dell'uso del software di sintesi vocale.


Penso che il modo in cui programmerò non sarebbe sulla mia lista di preoccupazioni se avessi rotto entrambe le braccia ...
Ryathal,

3
Non all'inizio, certo. Ma quando ti senti meglio, porta il tuo laptop a casa, ma non sarai in grado di guidare un'auto per alcuni mesi, ti piacerebbe fare un po 'di lavoro.
Joe,

13

Per un programmatore professionista che lavora (dove il tempo è denaro) con un grave tunnel carpale o lesioni alle mani (ecc.), Può essere molto più efficiente assumere un "programmatore di coppia" junior / stagista, e lasciare che facciano il "riconoscimento vocale" e digitando.


Questa è una buona idea Con la programmazione in coppia, potresti essere ancora produttivo con due braccia rotte fintanto che stavi lavorando con un partner che sapeva come scrivere e come scrivere il codice.
Kyralessa,

4

Ecco un link a un video di una Convenzione di Python in cui Tavis Rudd spiega come ha personalizzato Dragon Naturally Speaking usando la loro struttura di plugin Python per creare un vocabolario adatto alla programmazione e al montaggio in Emacs, Vim e il terminale. Uno sguardo stimolante alle possibilità di riconoscimento vocale nel campo della programmazione e dello sviluppo.

Utilizzo di Python per codificare con la voce

Due anni fa ho sviluppato un caso di Emacs Pinkie (RSI) così grave che le mie mani sono diventate insensibili e non potevo più scrivere o lavorare. Disperato, ho provato il riconoscimento vocale. Inizialmente la programmazione era dolorosamente lenta ma, poiché non potevo scrivere, perseveravo. Dopo diversi mesi di ottimizzazione del vocabolario e codifica del nastro adesivo in Python ed Emacs Lisp, avevo un sistema che mi consentiva di scrivere con la voce in modo più rapido ed efficiente di quanto avessi mai avuto a mano.

In una demo dal vivo frenetica, creerò un piccolo sistema usando Python, oltre ad alcune altre lingue per buona misura, e lo distribuirò senza toccare la tastiera. Gli dei demo appariranno in programma. Spero di convincerti che il riconoscimento vocale non è più una stampella per i disabili o limitato alla semplice prosa. Ora è uno strumento altamente efficace che potrebbe giovare a tutti i programmatori ...


1
ti dispiacerebbe spiegare di più su ciò che fa e perché lo consigli come rispondere alla domanda posta? Le "risposte solo link" non sono del tutto benvenute allo Stack Exchange
moscerino del

1
moscerino - ho aggiornato il post per riflettere perché penso che sia una risorsa pertinente e utile. Se i collegamenti non sono appropriati per il formato, lo rimuoverò.
starsinmypockets

1

Puoi davvero costruire una soluzione di programmazione vocale usando Dragon NaturallySpeaking, ma Dragon NaturallySpeaking sarà solo una piccola parte della soluzione complessiva.

Hai bisogno di molta tecnologia oltre a trasformare semplicemente la voce in parole per programmare con successo la voce. Alcuni esempi dei problemi che devono essere affrontati:

Come si inseriscono parole imprecisabili come ostreambuf_iterator? Come gestite i pesanti livelli di punteggiatura nei linguaggi di programmazione? Come passerai da una finestra all'altra?

Generalmente ci vogliono diversi mesi per costruire e imparare una soluzione di programmazione vocale. Persone come Joe che si aspettano di far funzionare qualcosa in un giorno o due saranno molto deluse.

Muoversi avanti e indietro funziona bene con la voce fornita di una serie ragionevole di comandi. Ad esempio, è possibile specificare facilmente la linea di destinazione utilizzando il numero di riga visualizzato mod 100. Lo spostamento di parole o caratteri di punteggiatura funziona bene con i linguaggi di programmazione per spostarsi all'interno di una linea.

Puoi trovare molte più informazioni su questi problemi nella programmazione tramite le FAQ vocali che si trovano su http://vocola.net/programming-by-voice-FAQ.html


0

Basato sulla risposta di Joe in cui il problema è che non puoi andare avanti e indietro:

È inoltre possibile utilizzare il rilevamento degli occhi per risolvere questo problema.

I linguaggi di programmazione possono essere leggibili. Smalltalk è abbastanza leggibile.

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

Immagina un linguaggio di programmazione ottimizzato per parlare. Si può fare.

Se avessi chiesto ai miei clienti cosa volevano avrebbero detto un cavallo più veloce. - Henry Ford

In questi termini: un input di testo parlato potrebbe non essere. Ma un ambiente controllato dal parlato con tratti programmabili sarebbe un ulteriore passo avanti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.