Как стать автором
Обновить
2674.12
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Программирование голосом. Передовые рубежи разработки ПО

Время на прочтение 5 мин
Количество просмотров 6.7K
Автор оригинала: Rina Diane Caballar

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


Работа в Serenade

Технологическая основа


Мы все больше и больше взаимодействуем с гаджетами через речь. Наши старые виртуальные помощники вроде Alexa и Siri теперь объединяются с автомобильными ассистентами, например Apple CarPlay и Android Auto, а также с приложениями, работающими с голосовой биометрикой и командами. Но что, если саму технологию можно было бы создавать при помощи голоса?

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

Однако программирование голосом оказывается не столь простым и кроет в себе несколько слоев сложной технологии. К примеру, в Serenade используется движок преобразования речи в текст, созданный специально для работы с кодом, в отличие от аналогичного API Speech-to-text, спроектированного Google для разговорной речи. После того, как инженер проговаривает код, движок Serenade передает его в слой обработки естественного языка, в котором специально обученные модели машинного обучения (МО) распознают и переводят стандартные программные конструкции в синтаксически верный код.

Существует две основных платформы, предлагающих различные подходы к задачам рецитирования кода компьютеру. Одна из них, Serenade, выступает в качестве цифрового помощника, позволяя описывать вводимые в коде команды без необходимости проговаривать каждую инструкцию дословно. Другой инструмент, Talon, предоставляет более тонкий контроль над каждой строкой, что также требует более тщательного понимания каждой программируемой в машину задачи. Ниже вы видите простой пример пошагового руководства в Serenade и Talon по генерации кода Python, выводящего на экран слово “hello”.




Технология против «офисного синдрома»


Компания Serenade, собравшая $2.1 миллиона на этапе начального финансирования в 2020 году, родилась в силу необходимости, после того, как одному из ее основателей, Мэтту Уитхоффу, в 2019 году бы поставлен диагноз «хроническая травма от повторяющегося напряжения». «Я бросил работу разработчиком ПО в Quora, потому что просто перестал с ней справляться, — говорит Мэтт. – В качестве альтернативы оставалось либо заняться деятельностью, не требующей такого количества набора текста, либо искать другой выход».

Тем же путем в 2017 году пошел Райан Хайлман, оставив свое постоянное место работы программистом, после того как годом ранее у него возникли сильные боли в руке. Тогда Тайлман занялся разработкой Talon, платформы для написания кода без использования рук. Он говорил: «Задача Talon – полностью заменить клавиатуру и мышь для любого человека».

С этой целью в ней реализовано три программных компонента: распознавание речи, отслеживание глаз и распознавание звука. Движок распознавания речи основан на разработанной Facebook автоматической системе Wav2letter, которую Тайлман расширил командами для программирования. При этом функция отслеживания глаз и распознавания звука симулирует управление с помощью мыши. Курсор перемещается по экрану вслед за перемещением взгляда, а клики совершаются в ответ на издаваемый ртом звук, напоминающий откупоривание шампанского. Как говорит Райан: «Издать такой звук легко. Он не требует особых усилий и распознается очень быстро, что представляет более быстрый невербальный способ реализации щелчков мыши, не вызывающий голосового напряжения».

Написание кода с помощью Talon звучит подобно инопланетному языку, как это продемонстрировала Эмили Ши, инженер и практик данной техники, выступавшая на конференции в 2019 году. Предложенное ей видео наполнено командами типа “slap” (Ввод), “undo”, “spring 3” (перейти к третьей строке файла) и “phrase name op equals snake extract word paren mad” (создает строку: name = extract_word(m)).

С другой стороны, при написании кода с помощью Serenade, команды проговариваются более естественным образом. Можно сказать «delete import”, чтобы удалить инструкцию импорта в начале файла или “build”, чтобы выполнить пользовательскую команду сборки. Также можно сказать “add function factorial” для создания функции, вычисляющей факториал, например, в JavaScript. В этом случае приложение полностью возьмет на себя синтаксис, включая ключевое слово “function”, скобки и фигурные скобки, избавив вас от необходимости явно проговаривать каждый элемент.

Для программирования голосом требуется хороший микрофон, особенно если вы хотите устранить фоновый шум. Тем не менее модели Serenade обучены на аудио, получаемом с микрофонов ноутбуков. Если же вы хотите использовать Talon с функцией отслеживания движения глаз, то также потребуется соответствующее оборудование. Хотя Talon отлично работает и без него. Открытые платформы для написания кода голосом, такие как Aenea и Caster, хоть и бесплатны, но обе опираются на движок распознавания речи Dragon, который пользователь должен приобретать отдельно. При этом Caster предлагает поддержку Kaldi, открытого набора инструментов для распознавания речи, а также Windows Speech Recognition, поставляемого с ОС Windows по умолчанию.

По словам сооснователя Serenade Labs, Томми МакУилльям, результаты говорят сами за себя: «Описать желаемое действие становится намного проще. Ведь куда легче просто сказать “move these three lines down” или “duplicate this method” вместо того, чтобы печатать все эти инстуркции или даже использовать горячие клавиши.»

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

Написание кода с помощью речи, помимо прочего, снижает барьер входа в разработку ПО. МакУилльям по этому поводу говорит так: «Если человек сможет представить код, который он хочет написать, логически и структурированно, то остальное можно будет поручить алгоритму МО, который переведет мысли разработчика в синтаксически правильный код».

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

Теги:
Хабы:
+24
Комментарии 25
Комментарии Комментарии 25

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds