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

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

В настоящее время голос задействуется при работе со многими инструментами, такими как Google Ассистент или Алиса, но можно ли с помощью него создавать код? Оказывается, что да. Хотя это и непросто (вспомните, сколько лет вы уже пользуетесь клавиатурой), но у нас все-таки есть возможность программировать лишь посредством голоса. 

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

Serenade

Serenade  —  это инструмент, разработанный Мэтом Уитхоффом и Томми МакУильямом, который позволяет писать код с помощью голосовых команд. Стимулом для его создания послужила серьезная травма руки, диагностированная у Мэта, в результате которой он утратил способность использовать клавиатуру. Для решения этой проблемы совместными усилиями Уитхофф и МакУильям придумали и явили миру Serenade.

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

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

Расширение Chrome 

Ассистент в Serenade 1/1

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

Ассистент в Serenade 1/2

Плагин Atom

Для начала необходимо установить плагин Serenade в редакторе Atom: 

Редактор Atom с плагином Serenade 

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

Редактор Atom с поддержкой JavaScript 

По завершении всех установок вы можете отдавать голосовые команды для написания кода: 

Редактор Atom 

Пример созданного кода с помощью Serenade: 

//1.add function hello (добавить функцию hello)
function hello() {

//2.insert console dot log quotes hello world (ввести console точка log кавычки hello world)
console.log("hello wold")

}

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

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

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

Talon

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

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

В вашем распоряжении множество общедоступных скриптов с уже готовыми командами, но вы также можете создавать собственные, определяя свои правила (когда я говорю “A”, делай “Б”). Данный инструмент предоставляет набор API для взаимодействия с операционной системой и вывода символов. 

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

Сравнение Serenade и Talon

Serenade допускает более естественный способ проговаривания кода, тогда как Talon требует более точной формулировки команд. Serenade автоматизирует рабочий процесс. Например, команда “add class” создает класс, избавляя вас от необходимости надиктовывать все связанные с этим шаблонные моменты. 

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

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

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

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

Заключение 

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

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

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

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

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

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

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Kesk -*-: How To Write Code Using Your Voice

Предыдущая статьяСоздаем расширение Chrome на Mint
Следующая статьяДекораторы в Python за три минуты