В последние годы широко распространились разнообразные голосовые помощники и ассистенты, которые облегчили нашу жизнь и ускорили рутинные операции. Но до сих пор программирование — одна из самых рутинных областей человеческой деятельности — в основной массе остаётся не охваченной подобными технологиями. Тем не менее уже начинают появляться разработки, вносящие интересные изменения и в эту сферу.
▍ Serenade
Одним из подобных проектов является Serenade. Он появился в тот момент, когда из-за перенапряжения его будущий сооснователь был вынужден оставить свою должность программиста в компании Quora. В 2020 году платформа получила финансирование в 2,1 млн долларов и с тех пор активно развивалась.
В процессе создания проекта его основателям пришлось столкнуться с трудностями, так как существующие на тот момент механизмы, преобразующие голос в текст, не были специализированы для задачи перевода голоса в программный код.
BonziKill.exe | Что говорит Bonzi?
Распознавание речи в Serenade ведётся в локальном или облачном варианте (выбирается пользователем в настройках).
Проект на данный момент доступен в виде приложения для macOS, Windows и Linux. Его можно скачать и протестировать вот здесь. После того, как приложение будет скачано и установлено на компьютер, можно установить плагины для интеграции с VS Code, Chrome, Hyper.
Во время работы Serenade располагается над всеми активными окнами.
Стандартный вид команд, подаваемых голосом в Serenade, представлен в виде действия (action) с какой-либо сущностью (selector). Например, «изменить параметр на число», «добавить функцию» и т. д. Более подробно об этом вы можете прочитать вот здесь.
Из интересных фишек проекта можно назвать возможность управления голосом другими программами, что обеспечивается за счёт комбинации плагинов и API на уровне операционной системы, без привязки к какому-либо конкретному приложению.
Используя Serenade API, можно создать собственные средства автоматизации, которые позволяют с помощью голоса управлять, например, поиском в Stack Overflow, терминалом и не только:
Достаточно подробно работа с API описана здесь.
Кроме того, используя протокол Serenade, можно создавать собственные плагины и интегрировать их с другими приложениями. В общем виде протокол работает на основе связки технологии WebSocket (с помощью которой передаются данные) и формата передачи данных JSON. Другими словами, любой язык программирования, который поддерживает оба этих компонента, позволяет создать пользовательский плагин с использованием Serenade.
На сайте проекта указано, что он может работать с 15 языками, однако в раскрывающемся списке имеется только 14, так что, похоже, где-то здесь закралась ошибка 🙂 В любом случае вот они: C, C++, CSS, Go, Java, Kotlin, Ruby, TypeScript, C#, Dart, HTML, JavaScript, Python, Rust.
▍ Talon
Аналогичным рассмотренному выше проекту является платформа Talon, которая также появилась по необходимости, из-за болей сооснователя в руке, причём появилась даже раньше, чем Serenade.
СТРАННЫЙ ВИРУС — BONZI KILL.EXE
Система имеет в своём составе компоненты по отслеживанию речи, взгляда, шума (можно подавать шумовые команды ртом).
Распознавание речи построено на базе технологии Wav2letter, которая была доработана для целей программирования голосом.
Для отслеживания взгляда может быть использована панель Tobii Eye Tracker — специальное устройство для отслеживания положения головы и глаз, которое используется геймерами. При использовании этого устройства клик представляет собой действие, разделённое на два промежуточных этапа: сначала вы смотрите туда, куда хотите кликнуть, потом издаёте своеобразный «чпок» ртом, и система делает клик. Есть хорошее демо-видео на эту тему, которое, к сожалению, невозможно расшарить, поэтому вы можете посмотреть его на страничке по этой ссылке.
Кстати говоря, это то самое, о чём было сказано выше, — управление с помощью шума 🙂
Человек, который протестировал связку из Talon и трекера, показанного выше, отмечает, что смог с помощью этой системы работать со скоростью, составляющей приблизительно 50% от обычной (видимо, подразумевается, что до болезни, но он этого подробно не поясняет).
При работе с этой системой человек заметил, что одной из наиболее своеобразных проблем, которую сложно предугадать заранее, является необходимость напрягать голос, когда приходится говорить по 8 и более часов в день. Кроме того, ему пришлось создать набор своих команд, так как дефолтные команды не совсем хорошо срабатывали для него (как и рассмотренный выше Serenade, Talon позволяет это сделать).
Кстати, говоря о возможности создания своих конфигураций, для этого можно изучить имеющийся мануал по API и поизучать информацию на github-странице одного из разработчиков, где имеется большое количество конфигураций для Talon.
Кроме того, есть неофициальная Вики, где можно прочитать более подробно о программе.
- macOS High Sierra (10.13+),
- Linux / X11 (Ubuntu 18.04 и другие современные дистрибутивы),
- Windows 8+.
Хорошую презентацию по работе с системой можно увидеть здесь:
А есть ли какие-то альтернативы рассмотренным выше платформам?
▍ Aenea
Одной из подобных систем является проект Aenea, базирующийся на голосовых макросах Dragonfly на Python. Платформа предназначена для системных администраторов и программистов, и позволяет отправлять голосовые команды на другой компьютер. Например, чтобы управлять голосом мышкой и клавиатурой на одном компьютере, физически находясь за другим.
Программное решение представляет собой сочетание клиента Dragon NaturallySpeaking, работающего на виртуальной машине Windows, и удалённого сервера, работающего на главной машине. Клиент захватывает речь пользователя, после чего происходит отсылка команды на сервер с использованием JSON-RPC.
Система также поддерживает создание собственных модулей, как и описанные выше.
▍ Caster
Ещё одной платформой, предназначенной для голосового ввода, является Caster, также базирующаяся на Dragonfly.
Разработчики выложили видео работы системы, которое хоть и старенькое (2018 года), но даёт понимание процесса голосового программирования с использованием языка Go:
Система поддерживает по умолчанию достаточно большой список приложений:
- IDE/редакторы: Microsoft Visual C++, Visual Studio, Eclipse, IDE Jetbrains, Emacs, Sublime Text, Atom, Visual Studio Code, Notepad++, FlashDevelop, SQL Developer, SQL Server Management Studio.
- Средства разработки: командная строка, GitBash, KDiff3.
- Статистическая обработка данных: RStudio.
- Текстовые процессоры: lyx, Microsoft Word, Typora.
- Браузеры: Firefox, Chrome, Internet Explorer.
- Git-клиент: рабочий стол Github.
- Чаты: Microsoft Teams, Gitter.
- Приложения: Foxit Reader, fman, Total Commander, Outlook, Excel, Unity3D.
- Python, Java, Bash, C++, C#, Rust, Go, HTML, CSS, JavaScript, SQL, Dart, Latex, Matlab, R, Prolog, VHDL и Haxe.
▍ Speech to Code
Этот проект также позволяет программировать, используя только свой голос, и конструктивно состоит из трёх модулей:
- Модуль, сочетающий веб-приложение, сервер и клиент — его основной задачей является захват аудио и перевод его в текст, а также предоставление пользовательского интерфейса.
- Модуль проверки Spoken, который служит для проверки, является ли произнесёная фраза голосовой командой.
- Расширение Spoken VSCode, которое позволяет голосовым командам управлять кодом внутри Visual Studio.
Как вы могли понять по упомянутой выше IDE, система поддерживает Visual Studio Code и CodeMirror. К сожалению, проект пока предназначен только для ввода команд языка JavaScript.
▍ PythonVoiceCoding
Если же вы программируете на языке Python, то для среды текстового редактора Sublime Text 3 существует плагин, который позволяет как программировать, так и осуществлять более удобную навигацию по коду, в отличие от той, которую предлагает рассмотренный выше Caster.
Как заявляет разработчик плагина, основной мотивацией для разработки явилась, с его точки зрения, некоторая механистичность Caster, которая заключается в том, что необходимо подробно описать, куда перейти и что выбрать, и уже в дальнейшем произвести какие-то манипуляции. Вместо этого его плагин позволяет сразу начать редактировать то, что нужно, без пошагового перехода к целевому месту.
Несмотря на то, что код улучшает функциональность Caster, он базируется в том числе на его инструментах. Кроме того, разработчик плагина достаточно самокритичен и говорит, что «это не самый лучший код, который он когда-либо писал» 🙂 С другой стороны, если код делает то, что он и должен, что ещё нужно?
▍ Voco
И в завершение можно сказать несколько слов о достаточно интересной системе, в основе которой лежит набор инструментов, распространяемых с открытым исходным кодом, написанным на С++ и предназначенным для распознавания речи — Kaldi.
Разработчик этой надстройки позиционирует её как отличное средство для создания собственной системы голосового программирования.
Платформа предоставляет обучающий набор, с помощью которого можно создать свой словарь, находясь в рамках концепции Voco, что позволит системе работать с минимальным количеством ошибок благодаря словарю, не превышающему 90 команд. Обучаясь, система подстраивается под профиль конкретного микрофона и фонового шума, который окружает оператора во время работы.
Благодаря небольшой модели платформа работает с минимальной задержкой и задействует очень мало ресурсов, а так как она написана на Python, то быть легко изменена и дополнена, чтобы лучше соответствовать потребностям пользователя.
Завершая этот рассказ, хочется порадоваться, что в наше время люди с приобретёнными или врождёнными недугами могут успешно работать в своих областях благодаря появившимся в последние годы программным решениям, которые не просто предоставляют готовые сценарии, но и позволяют любому разработчику улучшить их под себя.
- ruvds_статьи
- голосовое программирование
- голосовые интерфейсы
- python
- распознавание речи
- речевые технологии
Источник: habr.com
Лучшие программы для набора текста голосом
Программы для преобразования голоса в текстовый документ могут пригодиться для записи длительных лекций или для быстрого набора книг, статей. В их основе используются специальные API-движки, которые распознают тон и фонетику воспроизводимых звуков и на их основе выстраивают слова, предложения. Естественно, каждая такая программа для голосового набора и сохранения текста работает не идеально, но для создания заметки под последующее редактирование отлично сойдёт.
Перечень лучших программ для голосового набора текста
Если ориентироваться на отзывы, оставленные пользователями на тематических форумах, для перевода голоса в текст самыми лучшими являются следующие программы:
- MSpeech;
- Dictate;
- Speechpad;
- VoiceNote II;
- Speak a Message;
- Voco
Каждая указанная программа для набора и редактирования текста голосом может использоваться на ПК в сочетании с любым микрофоном. Но для повышения качества распознавания звука рекомендуется использовать конденсаторные, при этом полностью отключая шумоподавление (если имеется) и прочие надстройки для обработки голоса (через настройки драйвера звуковой карты).
MSpeech
Программа для ввода текста голосом, в качестве движка используется Google API (считается самым эффективным в плане преобразования речи в текст). Главное преимущество: распознавание на более чем 50 языках, регулярно добавляется поддержка новых. Дополнительные функции:
- поддержка голосовых команд (например, команды «старт», «стоп», «удалить»);
- коррекция текста («логика» выстраивается на основе того же Google API), который позволяет быстро заменять повторяющиеся слова синонимами;
- можно выбирать другие движки преобразования голоса (например, Microsoft Bing);
- предусмотрена синхронизация вводимых заметок с сервисами облачного хранения данных (Google Disk).
Приложение бесплатное, позволяет набирать неограниченное количество символов, но для своей работы требует наличия постоянного подключения к интернету. При этом потребляет достаточно большое количество трафика (от 1 до 5 мегабайт в минуту), а при включении синхронизации с Google Disk – и того больше.
Dictate
Преобразователь голоса в текст от компании Microsoft. Выпускается в форме дополнения для текстового редактора Word. Программа бесплатная, но требует наличие активированной лицензии для Microsoft Office. Сам плагин скачивается с официального сайта Майкрософт, устанавливается как обычное приложение. Набор заметок голосом выполняется в Word, Outlook или PowerPoint. Дополнительные функции:
- преобразование текста на компьютере на более чем 60 языков;
- автоматическое редактирование начитанных предложений (удаление ошибок, расстановка пунктуационных знаков);
- распознавание надиктованных формул (пока что тестируется, часто срабатывает некорректно).
Разработчики утверждают, что Dictate, помимо распознавания текста, умеет самообучаться. Программа учитывает специфику фонетики конкретного пользователя, поэтому при частом её использовании точность ввода увеличивается. Но для её работы тоже требуется наличие постоянного доступа в интернет (без него тоже работает, но распознаёт некорректно). После установки приложения в Microsoft Word появляется дополнительная вкладка «Dictate» – там как раз и производится работа с транскрипцией звукового ввода. Работает только в Виндовс, в облачной версии Microsoft Office функция недоступна (но в скором времени обещают добавить).