Программирование с помощью программы распознавания голоса [закрыто]

10

Несколько лет назад я использовал Dragon Naturally Speaking очень коротко и думал, будет ли это жизнеспособным решением для программирования?

Я думал больше, если вы сломаете руку или что-то, что станет серьезным препятствием для программирования.

Этот же вопрос на SO, но так и не получил ответа.

Джим
источник
5
это интересная идея, но я думаю, что синтаксис языка действительно
запутает
1
Помимо проблемы пунктуации, кодирование включает в себя очень много редактирования, что плохо подойдет для голосового управления.
Лорен Печтел
1
Попытка сделать это с таким количеством злоупотреблений пунктуацией, которые характерны для большинства языков программирования, напоминает комедийный скетч фонетической пунктуации Виктора Борге.
hotpaw2
Можете ли вы представить себе работу с автозаполнением с VS?
Чад Харрисон
1
Это может быть идея использовать Dragon Dictate для чего-то другого, кроме фактического кодирования, такого как компиляция, запуск скомпилированного приложения, создание / ответ на электронные письма, некоторые общие вещи, которые могут отвлекать или задерживать фактическое кодирование.
Гортрон

Ответы:

18

Я могу ответить на этот вопрос из личного опыта. Несколько лет назад я сломал обе руки в результате несчастного случая. Поскольку моя работа была программированием на полную ставку, это было проблемой. С некоторой помощью я установил Dragon на свой ноутбук.

Это была пустая трата времени.

Код не очень похож на естественный язык; это в первую очередь написано, а не говорится Я точно знаю, что y_z = (x < 0 ? -x : x) + 2;значит, но я не знаю, как я это произношу, и мне все равно.

Будучи только письменным языком, код очень точен на уровне символов. Есть большая разница между (x+2)*3и (x+2*3). Программы преобразования речи в текст хорошо умеют обращать внимание на слова, а не на символы. Добавление определенных символов требует много таких вещей, как «левая скобка, х, знак плюс, два, правая скобка».

Когда я пишу код, я много двигаюсь и переписываю. Речь к тексту хороша для единственного потока языка. Это не хорошо для того, чтобы идти туда-сюда повсюду.

Многие мелкие задачи в кодировании не эквивалентны вводу, что хорошо для речи. Подумайте, как часто вы меняете вкладки, чтобы посмотреть на какой-то другой модуль кода, или как часто вы складываете и разворачиваете функцию в своем редакторе.

Так что если у вас есть программа преобразования текста в текст, попробуйте и убедитесь сами. Я не думаю, что вы будете слишком впечатлены.


Кстати, не ломайте обе руки одновременно. Разбивайте по одному, так намного проще.

Если бы у меня была только одна сломанная рука, я бы сделал все свое кодирование одной рукой. Это все равно будет быстрее, чем использование программного обеспечения для преобразования текста в текст.

Джо
источник
Я думаю, что то, как я собираюсь программировать, не было бы в моем списке проблем, если бы я сломал обе руки ...
Ryathal
3
Не сначала, конечно. Но когда вы чувствуете себя лучше, держите свой ноутбук дома, но уже несколько месяцев не сможете водить машину, вам бы хотелось поработать.
Джо,
13

Для работающего профессионального программиста (где время - деньги) с серьезными травмами запястного канала или травмами рук (и т. Д.) Может быть гораздо эффективнее нанять младшего / интернового «парного программиста», и позволить им выполнять «распознавание голоса» типирование.

hotpaw2
источник
Это хорошая мысль. С парным программированием вы все еще можете работать с двумя сломанными руками, пока вы работаете с партнером, который знал, как печатать и писать код.
Kyralessa
4

Вот ссылка на видео из конвенции Python, где Тавис Радд объясняет, как он настроил Dragon Naturally Speaking, используя их структуру плагинов Python для создания словаря, подходящего для программирования и редактирования в Emacs, vim и терминале. Вдохновляющий взгляд на возможности распознавания голоса в области программирования и развития.

Использование Python для кодирования голосом

Два года назад я разработал случай Emacs Pinkie (RSI), настолько сильный, что мои руки онемели, и я больше не мог печатать или работать. В отчаянии я попробовал распознавание голоса. Сначала программирование с ним было мучительно медленным, но, поскольку я не мог печатать, я продолжал. После нескольких месяцев подстройки вокаба и кодирования магнитных лент в Python и Emacs Lisp у меня появилась система, которая позволяла мне кодировать быстрее и эффективнее с помощью голоса, чем когда-либо вручную.

В динамичном живом демо я создам небольшую систему, использующую Python, а также несколько других языков, и разверну ее, не касаясь клавиатуры. Демо-боги появятся по расписанию. Я надеюсь убедить вас, что распознавание голоса больше не является опорой для инвалидов или ограничено простой прозой. Теперь это очень эффективный инструмент, который может принести пользу всем программистам ...

starsinmypockets
источник
1
Вы не могли бы объяснить больше о том, что он делает, и почему вы рекомендуете ответить на заданный вопрос? «Ответы только на ссылки» не очень приветствуются на Stack Exchange
gnat
1
Гнат - я обновил пост, чтобы отразить, почему я считаю его актуальным и полезным ресурсом. Если ссылки не соответствуют формату, я его удалю.
starsinmypockets
1

Вы действительно можете создать программирование с помощью голосового решения, используя Dragon NaturallySpeaking, но Dragon NaturallySpeaking станет лишь небольшим фрагментом общего решения.

Вам нужно много технологий помимо простого превращения голоса в слова, чтобы успешно программировать голосом. Некоторые примеры проблем, которые необходимо решить:

Как вы вводите непроизносимые слова, такие как ostreambuf_iterator? Как вы справляетесь с высокими уровнями пунктуации в языках программирования? Как вы будете переключаться между окнами?

Как правило, создание и обучение программированию с помощью голосового решения занимает несколько месяцев. Такие люди, как Джо, которые рассчитывают получить что-то за один-два дня, будут сильно разочарованы.

Перемещение вперед и назад прекрасно работает с голосом при наличии разумного набора команд. Например, вы можете легко указать целевую строку, используя ее отображаемый номер строки mod 100. Перемещение по словам или знакам препинания хорошо работает с языками программирования для перемещения внутри строки.

Вы можете найти гораздо больше информации об этих проблемах в программировании с помощью голосового FAQ, расположенного по адресу http://vocola.net/programming-by-voice-FAQ.html.

user2278379
источник
0

Основываясь на ответе Джо, где проблема в том, что вы не можете идти вперед и назад:

Вы можете использовать отслеживание глаз дополнительно, чтобы решить эту проблему.

Языки программирования могут быть читаемыми. Smalltalk вполне читабелен.

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

Представьте себе язык программирования, который оптимизирован для говорения. Это может быть сделано.

Если бы я спросил своих клиентов, чего они хотят, они бы сказали, что лошадь быстрее. - Генри Форд

В этих терминах: устный ввод текста может быть не так. Но контролируемая речью среда с программируемыми чертами была бы шагом вперед.

пользователь
источник