Текущий статус, плюсы и минусы

Несколько дней назад у меня состоялся увлекательный разговор с девушкой со слабым зрением. Вернувшись домой, я некоторое время думал о том, что произойдет, если у меня возникнут те или иные проблемы, из-за которых я не смогу пользоваться клавиатурой. Что произойдет, если я упаду с велосипеда и сломаю руку? Смогу ли я писать код?

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

В настоящее время мы можем использовать голос со многими инструментами, такими как Google Assistant или Alexa, но можем ли мы использовать голос для кодирования? К моему удивлению, да. Это непросто (вспомните, сколько лет вы используете клавиатуру), но можно кодировать, используя только голос.

В этой статье я расскажу о нескольких инструментах, которые я изучал, и своих выводах по ним.

Серенада

Серенада - это инструмент, созданный Мэттом Уитхоффом и Томми МакВильямом, который позволяет писать код с помощью голосовых команд. Все началось с того, что Уитхоффу диагностировали серьезную травму руки, из-за которой он не мог пользоваться клавиатурой. Чтобы преодолеть это, они разработали этот инструмент с помощью MacWilliam.

Serenade имеет механизм преобразования речи в текст, специально разработанный для распознавания кода и преобразования его в действительный синтаксис в соответствии с выбранным нами языком программирования (с использованием различных плагинов).

Чтобы начать пользоваться им, вам необходимо установить Serenade на свой компьютер.

Первое, что вас попросят, это указать интересующие вас языки программирования и какой плагин вы хотите использовать. Чтобы проверить это, я начал использовать плагин для Google Chrome. Это расширение полезно для знакомства с Serenade. Наконец, я написал простую функцию на JavaScript, используя плагин Serenade Atom и языковую утилиту JavaScript.

Расширение Chrome

После установки плагина (в данном случае расширения Google Chrome) вы можете продолжить работу с мастером. Мастер прост и научит нас использовать различные основные команды.

Плагин Atom

Чтобы использовать его с редактором Atom, первое, что вам нужно сделать, это установить плагин Serenade в Atom:

После того, как вы выбрали язык программирования, который хотите использовать для голоса в Serenade, необходимо будет установить плагин JavaScript в Atom:

Когда все установлено, вы сможете использовать голосовые команды для написания кода своим голосом:

Serenade предлагает нам множество голосовых команд, которые нам нужно выучить, чтобы эффективно использовать приложение. Например:

  1. Команда add используется для добавления предопределенных блоков кода, поэтому, если вы используете голосовую команду «add function hello», мы говорим ей добавить функцию в фигурных скобках с именем hello.
  2. Команда insert используется для добавления инструкций кода. В этом случае я использую «вставить кавычки в журнал консоли, привет, мир», чтобы сказать Серенаде вставить оператор console.log(“hello world”).

Это очень простой пример того, что можно делать с Serenade практически сразу.

Talon

Talon преследует ту же цель, что и Serenade, но подходит к ней иначе. Talon состоит из четырех основных элементов: системы распознавания речи, системы контроля шума, системы отслеживания взгляда и скриптов Python. Стоит отметить, что управление шумом и отслеживание взгляда полностью заменяют мышь.

Начать использовать Talon немного сложнее, чем использовать Serenade. Во-первых, вам нужно добавить серию скриптов, которые управляют всеми голосовыми командами Talon. Без них Коготь не распознает никаких команд.

Существует множество общедоступных скриптов с готовыми к использованию командами, но он также позволяет вам создавать свои собственные скрипты для определения ваших собственных правил (когда я говорю «А», делайте «Б»). Он предлагает набор API для взаимодействия с операционной системой и вывода символов.

Talon имеет два режима работы: режим диктовки и командный режим, последний является режимом по умолчанию и обычно используется.

Серенада против Тэлона

Serenade позволяет более естественно произносить код, тогда как Talon имеет более точные команды. Serenade автоматизирует некоторые задачи. Например, команда «добавить класс» создает класс и избавляет вас от необходимости диктовать весь связанный с ним шаблон.

С другой стороны, Talon можно использовать без клавиатуры и мыши, а также с видеоиграми в реальном времени, командной строкой и полноценным настольным компьютером. Talon позволяет вам управлять вашим компьютером множеством способов - не только для программирования.

Документация Serenade и простое руководство, которому вы можете следовать прямо из коробки, упрощают начало работы с этим инструментом. Это, конечно, проще, чем с Talon.

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

У Serenade и Talon есть бесплатные версии. Разница в том, что в то время как Serenade предлагает вам все функции, если вы используете версию, доступную в облаке, Talon предлагает вам все функции только в версии PRO.

Заключение

Витхофф разработал инструмент Serenade по чистой необходимости, но благодаря таким людям, как он, теперь можно создавать код, используя только свой голос.

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

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

Идея хорошая, и даже если у нас нет проблем или инвалидности, она может быть полезна в определенное время. Важным улучшением будет добавление языков, отличных от английского, при распознавании голосовых команд. В будущем хотелось бы увидеть что-то более естественное и умное. Например, «Создайте функцию, которая возвращает сумму первых пяти факториалов, и сохраните ее в файле с именем factorial.js». Но в настоящее время это все еще научная фантастика.

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

Кто знает? В будущем, когда многие из нас будут работать из дома и искусственный интеллект улучшится, это станет возможным. Что вы думаете?