Programowanie za pomocą oprogramowania do rozpoznawania głosu [zamknięte]

10

Kilka lat temu użyłem Dragon Naturally Speaking bardzo krótko i zastanawiałem się, czy będzie to realne rozwiązanie dla programowania?

Myślałem bardziej, jeśli złamiesz rękę lub coś, co stanowiłoby poważną przeszkodę w programowaniu.

To samo pytanie dotyczące SO, ale nigdy nie było na nie odpowiedzi.

Jim
źródło
5
to ciekawy pomysł, ale myślę, że składnia języka naprawdę
potknie
1
Poza problemami interpunkcyjnymi kodowanie wymaga ogromnej ilości edycji, czegoś, w czym sterowanie głosowe nie będzie dobre.
Loren Pechtel
1
Próbowanie tego przy użyciu nadużyć interpunkcyjnych wspólnych dla większości języków programowania przywodzi na myśl komedię Victora Borge'a „Fonetyczna interpunkcja interpunkcyjna”.
hotpaw2
Czy możesz sobie wyobrazić pracę z autouzupełnianiem w VS?
Chad Harrison
1
Dobrym pomysłem może być użycie Dragon Dictate do celów innych niż rzeczywiste kodowanie, takich jak kompilowanie, uruchamianie skompilowanej aplikacji, komponowanie / odpowiadanie na wiadomości e-mail, niektóre typowe rzeczy, które mogą odwracać uwagę lub opóźniać faktyczne kodowanie.
Gortron

Odpowiedzi:

18

Mogę odpowiedzieć na to z własnego doświadczenia. Kilka lat temu złamałem obie ręce w wypadku. Ponieważ moją pracą było programowanie na pełny etat, był to problem. Z pewną pomocą zainstalowałem Dragon na moim laptopie.

To była strata czasu.

Kod nie przypomina języka naturalnego; jest przede wszystkim napisane, a nie mówione. Wiem dokładnie, co to y_z = (x < 0 ? -x : x) + 2;znaczy, ale nie mam pojęcia, jak to wymówię, ani mnie to nie obchodzi.

Będąc językiem tylko do pisania, kod jest bardzo precyzyjny na poziomie znaków. Istnieje duża różnica między (x+2)*3i (x+2*3). Programy zamiany mowy na tekst dobrze zwracają uwagę na słowa, a nie na znaki. Dodanie określonych znaków wymaga wielu powiedzeń, takich jak „lewy nawias, x, znak plus, dwa, prawy nawias”.

Kiedy koduję, dużo się zmieniam i przepisuję. Przetwarzanie mowy na tekst jest dobre dla pojedynczego strumienia języka. Nie nadaje się do poruszania się po całym mieście.

Wiele drobiazgowych zadań związanych z kodowaniem nie jest równoznacznych z pisaniem, co oznacza, że ​​cała mowa z tekstem jest odpowiednia. Zastanów się, jak często zmieniasz tabulatory, aby patrzeć na inny moduł kodu lub jak często spasujesz i rozwijasz funkcję w swoim edytorze.

Więc jeśli masz program zamiany tekstu na tekst, wypróbuj go i przekonaj się sam. Nie sądzę, że będziesz pod wrażeniem.


Nawiasem mówiąc, nie łam jednocześnie obu rąk. Złamaj pojedynczo, w ten sposób jest o wiele łatwiej.

Gdybym miał tylko jedno złamane ramię, po prostu wykonałbym całe moje kodowanie jedną ręką. Byłoby to jeszcze szybsze niż używanie oprogramowania syntezatora mowy.

Joe
źródło
Myślę, że jak zamierzam programować, nie byłoby na mojej liście obaw, gdybym złamał obie ręce ...
Ryathal
3
Na pewno nie na początku. Ale kiedy czujesz się lepiej, miej laptopa w domu, ale nie będziesz mógł prowadzić samochodu przez kilka miesięcy, chciałbyś popracować.
Joe
13

Dla pracującego profesjonalnego programisty (gdzie czas to pieniądz) z ciężkim tunelem nadgarstka lub urazami dłoni (itp.), Może być znacznie bardziej efektywne zatrudnienie „programatora par” dla młodszych / stażystów i pozwolić im na „rozpoznawanie głosu” i pisanie na maszynie.

hotpaw2
źródło
To dobra myśl. Dzięki programowaniu parowemu nadal możesz być produktywny z dwoma złamanymi rękami, pod warunkiem, że pracujesz z partnerem, który umie pisać i pisać.
Kyralessa
4

Oto link do filmu z Konwencji Pythona, w którym Tavis Rudd wyjaśnia, w jaki sposób dostosował Dragon Naturally Speaking za pomocą swojej struktury wtyczek Python do stworzenia słownictwa odpowiedniego do programowania i edycji w Emacs, vim i terminalu. Inspirujące spojrzenie na możliwości rozpoznawania głosu w dziedzinie programowania i rozwoju.

Używanie Pythona do kodowania za pomocą głosu

Dwa lata temu rozwinąłem przypadek Emacsa Pinkie (RSI), tak poważny, że moje ręce się zdrętwiały i nie mogłem dłużej pisać ani pracować. Zdesperowany, próbowałem rozpoznać głos. Na początku programowanie w nim było boleśnie wolne, ale ponieważ nie mogłem pisać, wytrwałem. Po kilku miesiącach ulepszania słownictwa i kodowania taśm w Pythonie i Emacsie Lispie miałem system, który umożliwił mi szybsze i bardziej wydajne kodowanie głosowe niż kiedykolwiek wcześniej.

W szybkim pokazie na żywo stworzę mały system za pomocą Pythona oraz kilka innych języków dla lepszej oceny i wdrożę go bez dotykania klawiatury. Bogowie demo pojawią się na planie. Mam nadzieję, że przekonam cię, że rozpoznawanie głosu nie jest już kulą dla osób niepełnosprawnych lub ogranicza się do zwykłej prozy. To teraz bardzo skuteczne narzędzie, które może przynieść korzyści wszystkim programistom ...

starsinmypockets
źródło
1
czy mógłbyś wyjaśnić więcej na temat tego, co robi i dlaczego polecasz to jako odpowiedź na zadane pytanie? „Tylko odpowiedzi” nie są mile widziane na Stack Exchange
gnat
1
komar - zaktualizowałem post, aby odzwierciedlić, dlaczego uważam, że jest to odpowiedni i użyteczny zasób. Jeśli linki nie są odpowiednie dla tego formatu, usunę go.
starsinmypockets
1

Rzeczywiście możesz zbudować programowanie głosowe za pomocą Dragon NaturallySpeaking, ale Dragon NaturallySpeaking będzie tylko niewielkim fragmentem ogólnego rozwiązania.

Potrzebujesz wielu technologii poza zwykłym przekształcaniem głosu w słowa, aby programować głosem z powodzeniem. Niektóre przykłady problemów, które należy rozwiązać:

Jak wpisać nieprzekazywalne słowa, takie jak ostreambuf_iterator? Jak radzisz sobie z dużymi poziomami interpunkcji w językach programowania? Jak będziesz przełączać się między oknami?

Zasadniczo budowa i nauka programowania za pomocą głosu zajmuje kilka miesięcy. Ludzie tacy jak Joe, którzy oczekują, że coś zadziała w ciągu jednego lub dwóch dni, będą bardzo rozczarowani.

Poruszanie się do przodu i do tyłu działa dobrze z głosem, biorąc pod uwagę rozsądny zestaw poleceń. Na przykład można łatwo określić linię docelową za pomocą wyświetlanego numeru linii mod 100. Poruszanie się po słowach lub znakach interpunkcyjnych działa dobrze w językach programowania do poruszania się po linii.

O wiele więcej informacji na temat tych problemów można znaleźć w często zadawanych pytaniach dotyczących głosowania na stronie http://vocola.net/programming-by-voice-FAQ.html

użytkownik2278379
źródło
0

Na podstawie odpowiedzi Joe, w której problemem jest to, że nie można iść w tę iz powrotem:

Aby rozwiązać ten problem, możesz dodatkowo użyć śledzenia wzroku.

Języki programowania mogą być czytelne. Smalltalk jest dość czytelny.

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

Wyobraź sobie język programowania zoptymalizowany do mówienia. To może być zrobione.

Gdybym zapytał moich klientów, czego chcą, powiedziałby szybszego konia. - Henry Ford

W tych słowach: wprowadzanie tekstu mówionego może nie być tym. Ale środowisko kontrolowane mową z programowalnymi cechami byłoby krokiem dalej.

Użytkownik
źródło