Сайт о телевидении

Сайт о телевидении

» » Голосовые программы для компьютера. Программа для управления компьютером голосом

Голосовые программы для компьютера. Программа для управления компьютером голосом

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

Голосовое управление Андроид

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

Ok, Google на Андроид, даёт возможность более эффективно использовать устройство. Голосом можно выполнять много функций и получать качественный результат. К примеру, искать необходимую информацию, включать/выключать приложения и даже набирать текст. На сегодняшний день данная разработка не идеальна и включает в себя различные недоработки.

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

А именно:

  1. управление функциями самого устройства - если вы хотите послушать музыку, то просто скажите - «Проиграть плейлист», если хотите включить будильник, то произнесите фразу – «Разбуди меня в такое-то время» и так далее
  2. поиск информации - голосовым запросом можно узнать, например, погоду, посмотреть счёт игры любимой команды, найти слова песни и так далее

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

Как включить голосовое управление

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

  1. установить приложение Google, если оно у вас уже установлено, то убедитесь, что стоит именно последняя версия
  2. зайти в приложение Google
  3. в верхнем левом углу нажать значок, который выглядит как три горизонтальные линии
  4. далее зайти в «Настройки »
  5. выбрать «Голосовой поиск »
  6. после - «Распознавание Ok, Google » или «На любом экране »

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

  1. «Настройки »
  2. далее - «Приложения ». Там у вас отобразится перечень программ, в которых вы можете использовать Ok, Google

Как настроить голосовое управление

Функция Ok, Google всегда активна при условии, если у вас запущено приложение Google или Google Chrome. После активации система зафиксирует ваш голос и в дальнейшем с распознаванием проблем не должно быть. Чтобы осуществить запрос достаточно произнести фразу Ok, Google и сформулировать вопрос или команду.

Как отключить голосовое управление

Отключить Ok, Google не сложнее, чем включить. Для этого нужно сделать следующее:

  1. зайти в приложение Google
  2. в верхнем левом углу значок, который выглядит как три горизонтальные линии
  3. выбрать «Голосовой поиск »
  4. далее «Распознавание Ok, Google »
  5. убрать флажок - «На любом экране » или «Всегда включено »

Команды голосового управления

Ok, Google распознаёт множество разных команд. Нет конкретного перечня выполняемых запросов, так как у каждого пользователя они разные.

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

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

Не работает голосовое управление. Какие могут быть причины и как исправить?

Убедитесь, что голосовое управление активно: «Настройки » - «Голосовой поиск » - «Распознавание О’кей, Google ». Установите флажок - «Из приложения Google ». Также для правильной работы голосового управления необходимо подключение к интернету. Убедитесь, что устройство подключено к Wi-Fi или мобильному интернету. Попробуйте перезагрузить устройство.

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

Если в Windows 10 имеется уже встроенная в систему утилита под названием Cortana, позволяющая управлять компьютером голосом, то в более ранних операционных системах, включая Виндовс 7, такого внутреннего инструмента нет. Поэтому в нашем случае единственным вариантом организовать голосовое управление является установка сторонних программ. О различных представителях такого программного обеспечения мы и поговорим в данной статье.

Способ 1: Typle

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

  1. После загрузки активируйте исполняемый файл данного приложения для начала процедуры его инсталляции на компьютер. В приветственной оболочке установщика жмите «Next» .
  2. Далее отображается лицензионное соглашение на английском языке. Чтобы принять его условия, жмите «I Agree» .
  3. Затем появляется оболочка, где пользователь имеет возможность указать директорию установки приложения. Но без существенных причин изменять текущие настройки не следует. Для активации процесса инсталляции просто нажмите «Install» .
  4. После этого в течение буквально нескольких секунд будет выполнена процедура установки.
  5. Откроется окошко, где будет сообщаться, что операция по инсталляции выполнена успешно. Для того чтобы запустить программу немедленно после установки и разместить её иконку в стартовом меню, поставьте пометки соответственно около позиций «Run Typle» и «Launch Typle on Startup» . Если вы не желаете этого делать, то, наоборот, снимите флажок около соответствующей позиции. Для выхода из окна установки жмите «Finish» .
  6. Если вы при завершении работы в установщике оставили пометку около соответствующей позиции, то сразу же после его закрытия будет открыто окно интерфейса Typle. Для начала в программе потребуется добавить нового пользователя. Для этого нажмите на панели инструментов на иконку «Добавить пользователя» . Эта пиктограмма содержит в себе изображение человеческого лица и знак «+» .
  7. Затем нужно вписать название профиля в поле «Введите имя» . Сюда можете внести данные абсолютно произвольно. В поле «Введите ключевое слово» нужно указать конкретное слово обозначающее действие, например, «Открой» . Вслед за этим щелкните по красной кнопке и после звукового сигнала произнесите данное слово в микрофон. После того как вы скажете фразу, повторно нажмите на эту же кнопку, а затем щелкайте по «Добавить» .
  8. Затем откроется диалоговое окно с вопросом «Хотели бы вы добавить этого пользователя?» . Жмите «Да» .
  9. Как видим, имя пользователя и прикрепленное к нему ключевое слово отобразится в основном окне Typle. Теперь жмите на иконку «Добавить команду» , которая представляет собой изображение руки с зеленым значком «+» .
  10. Открывается окошко, в котором нужно будет выбрать, что конкретно вы будете запускать посредством голосовой команды:
    • Программы;
    • Закладки интернета;
    • Файлы Windows.

    Путем установки галочки около соответствующего пункта отображаются элементы выбранной категории. Если же вы желаете просмотреть полный набор, то установите пометку около позиции «Выделить все» . Затем выберите элемент в списке, который собираетесь запускать голосом. В поле «Команда» отобразится его наименование. Затем щелкните по кнопке «Запись» с красным кружочком справа от этого поля и после звукового сигнала произнесите ту фразу, которая в нем отображена. После этого жмите кнопку «Добавить» .

  11. Откроется диалоговое окошко, где будет спрашиваться «Хотели бы вы добавить эту команду?» . Жмите «Да» .
  12. После этого выходите из окна добавления командной фразы, нажав кнопку «Закрыть» .
  13. На этом добавление голосовой команды завершено. Для того чтобы запустить нужную программу голосом, нажмите «Начать говорить» .
  14. Откроется диалоговое окно, где будет сообщаться: «Текущий файл был изменен. Хотите ли вы записать изменения?» . Жмите «Да» .
  15. Появляется окно сохранения файла. Перейдите в директорию, где намерены сохранить объект с расширением tc. В поле «Имя файла» введите его произвольное название. Жмите «Сохранить» .
  16. Теперь, если вы произнесете в микрофон выражение, которое отображается в поле «Команда» , то запустится приложение или другой объект, указанный напротив него в области «Действия» .
  17. Полностью аналогичным образом можно записывать и другие командные фразы, с помощью которых будут запускаться приложения или выполняться определенные действия.

Главный недостаток данного способа заключается в том, что разработчики в настоящее время не поддерживают программу Typle и её нельзя скачать на официальном сайте. К тому же наблюдается не всегда корректное распознавание русской речи.

Способ 2: Speaker

Следующее приложение, которое поможет управлять компьютером голосом, называется Speaker.

  1. После скачивания запустите инсталляционный файл. Появится приветственное окошко «Мастера установки» приложения Speaker. Тут просто жмите «Далее» .
  2. Появляется оболочка принятия лицензионного соглашения. Если есть желание, то прочитайте его, а затем ставьте радиокнопку в положение «Я принимаю…» и нажмите «Далее» .
  3. В следующем окне можно указать директорию инсталляции. По умолчанию это стандартный каталог приложений и без надобности данный параметр менять не нужно. Жмите «Далее» .
  4. Далее откроется окно, где можно установить название иконки приложения в меню «Пуск» . По умолчанию это «Speaker» . Вы можете оставить это наименование или заменить на любое другое. Затем нажмите «Далее» .
  5. Теперь откроется окошко, где методом установки пометки около соответствующей позиции можно разместить значок программы на «Рабочем столе» . Если вам это не нужно, снимите галочку и жмите «Далее» .
  6. После этого откроется окно, где будут даны краткие характеристики параметров установки на основе той информации, которую мы ввели на предыдущих этапах. Для активирования инсталляции нажмите «Установить» .
  7. Будет выполнена процедура установки Speaker.
  8. После её окончания в «Мастере установки» отобразится сообщение об успешной инсталляции. Если необходимо, чтобы программа была активирована немедленно после закрытия установщика, то оставьте пометку около соответствующей позиции. Жмите «Завершить» .
  9. После этого запустится небольшое окно приложения Speaker. В нем будет сказано, что для распознавания голоса нужно нажать на среднюю кнопку мышки (скролл) или на клавишу Ctrl . Для добавления новых команд следует кликнуть по знаку «+» в этом окошке.
  10. Открывается окошко добавления новой командной фразы. Принципы действий в нем аналогичны тем, которые мы рассматривали в предыдущей программе, но с более широким функционалом. Прежде всего, выберите тип действия, который вы собираетесь выполнить. Это можно сделать, щелкнув по полю с выпадающим списком.
  11. В раскрывшемся перечне будут следующие варианты:
    • Выключить компьютер;
    • Перезагрузить компьютер;
    • Поменять раскладку (язык) клавиатуры;
    • Сделать (скриншот) снимок экрана;
    • Я добавляю ссылку или файл.
  12. Если первые четыре действия не требуют дополнительного уточнения, то при выборе последнего варианта нужно указать, какую именно ссылку или файл вы желаете открыть. В этом случае нужно в расположенное выше поле перетащить объект, который собираетесь открывать голосовой командой (исполняемый файл, документ и т.д.) или ввести ссылку на сайт. В этом случае адрес будет открыт в браузере по умолчанию.
  13. Далее в расположенное в окошке справа поле введите командную фразу, после произнесения которой будет выполняться назначенное вами действие. Жмите на кнопку «Добавить» .
  14. После этого команда будет добавлена. Таким образом можно добавлять практически неограниченное количество различных командных фраз. Просмотреть их список можно, нажав по надписи «Мои команды» .
  15. Откроется окно с перечнем внесенных командных выражений. При необходимости можете очистить список от любого из них, щелкнув по надписи «Удалить» .
  16. Программа будет работать в трее и для того, чтобы выполнить действие, которое предварительно было внесено в список команд, требуется щелкнуть Ctrl или колесиком мышки и произнести соответствующее кодовое выражение. Необходимое действие будет выполнено.

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

Способ 3: Laitis

Следующая программа, предназначение которой состоит в управлении голосом компьютерами на Виндовс 7, называется Laitis.

  1. Laitis хорош тем, что достаточно только активировать инсталляционный файл и вся процедура по установке будет выполнена в фоновом режиме без вашего непосредственного участия. Кроме того, этот инструмент, в отличие от предыдущих приложений, предоставляет довольно большой перечень уже готовых командных выражений, которые значительно разнообразней, чем у вышеописанных конкурентов. Например, можно осуществлять навигацию по странице. Для того чтобы просмотреть список заготовленных фраз, перейдите во вкладку «Команды» .
  2. В открывшемся окне все команды разделены на коллекции, соответствующие определенной программе или сфере действий:
    • Google Chrome (41 команда);
    • Вконтакте (82);
    • Windows программы (62);
    • Windows хоткеи (30);
    • Skype (5);
    • YouTube HTML5 (55);
    • Работа с текстом (20);
    • Вебсайты (23);
    • Настройки Laitis (16);
    • Адаптивные команды (4);
    • Сервисы (9);
    • Мышь и клавиатура (44);
    • Общение (0);
    • Автозамена (0);
    • Word 2017 рус (107).

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

  3. При щелчке по команде во всплывающем окошке отображается полный перечень голосовых выражений, которые ей соответствуют, и действий, вызываемые ею. А при щелчке по иконке карандаша можно её отредактировать.
  4. Все командные фразы, которые отображаются в окне, доступны для выполнения сразу же после запуска Laitis. Для этого достаточно просто сказать соответствующее выражение в микрофон. Но при необходимости пользователь может добавлять новые коллекции, категории и команды, нажав на знак «+» в соответствующих местах.
  5. Для добавления новой командной фразы в открывшемся окне под надписью «Голосовые команды» впишите то выражение, при произношении которого инициируется действие.
  6. Тут же будут автоматически добавлены все возможные сочетания данного выражения. Жмите по значку «Условие» .
  7. Будет открыт список условий, где и можно выбрать подходящее.
  8. После того как условие отобразилось в оболочке, нажмите иконку «Действие» либо «Веб-действие» , в зависимости от цели.
  9. Из открывшегося списка выберите конкретное действие.
  10. Если вы выбрали переход на веб-страницу, придется дополнительно указать её адрес. После того как все необходимые манипуляции произведены, жмите «Сохранить изменения» .
  11. Командная фраза будет добавлена в список и готова к применению. Для этого достаточно просто произнести её в микрофон.
  12. Кроме того, перейдя во вкладку «Настройки» , можно выбрать из списков сервис распознавания текста и сервис произношения голоса. Это полезно, если текущие сервисы, которые установлены по умолчанию, не справляются с нагрузкой или по другой причине недоступны в данное время. Тут же можно указать и некоторые другие параметры.

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

Способ 4: «Алиса»

Одной из новых разработок, которые позволяют организовать управление Виндовс 7 голосом, является голосовой помощник от компании Яндекс — «Алиса».

  1. Запустите установочный файл программы. Он выполнит процедуру установки и настройки в фоновом режиме без вашего непосредственного участия.
  2. После завершения процедуры инсталляции на «Панели инструментов» появится область «Алиса» .
  3. Для активации голосового помощника нужно кликнуть по пиктограмме в форме микрофона или сказать: «Привет, Алиса» .
  4. После этого откроется окошко, где будет предложено произнести команду голосом.
  5. Чтобы ознакомиться со списком команд, которые умеет выполнять данная программа, нужно кликнуть по вопросительному знаку в текущем окошке.
  6. Откроется перечень возможностей. Чтобы узнать, какую фразу нужно произнести для выполнения конкретного действия, щелкните по соответствующему пункту списка.
  7. Отобразится список команд, которые нужно произнести в микрофон для выполнения конкретного действия. К сожалению, добавление новых голосовых выражений и соответствующих им действий в актуальной версии «Алисы» не предусмотрено. Поэтому придется использовать только те варианты, которые есть в настоящее время. Но Яндекс постоянно развивает и усовершенствует данный продукт, а поэтому, вполне возможно, вскоре стоит ожидать от него новых возможностей.

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

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

Cortana

Кортана – голосовой помощник с ИИ, разработанный корпорацией Microsoft для Windows 10, Phone и Android с дальнейшим распространением проекта на XBox и iOS. Она заменяет классическую поисковую строку и выполняет множество действий, в первую очередь, связанных с поиском информации и системных команд, получая их от пользователя в виде голосовых команд. Глубокая интеграция в Windows 10, отсутствие русского языка (пока что), сбор фактически всей информации о пользователе с отправкой на серверы Microsoft и отсутствие финальной версии не дают возможности большинству пользователей получить полноценное голосовое управление собственным компьютером.

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

Typle

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

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

Функционал утилиты весьма ограничен, а интерфейсу далеко до стиля Метро, реализованного в Windows 10. Полноценное голосовое управление ПК посредством Typle реализовать не удастся: она поддерживает только открытие файлов, приложений (с аргументами) и переход по заранее заданным ссылкам. Отсутствует даже поддержка управления проигрывателем (поставить на паузу, запустить следующий трек).

Speaker

  • создание снимков состояния экрана;
  • переключение раскладки клавиатуры;
  • завершение работы Windows 7;
  • запуск приложения;
  • открытие файла.

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

Горыныч

Разработчики программного комплекса для управления компьютером с Windows 7 и 10 являются первой отечественной командой, выпустившей приложение для решения подобного рода задач. За ядро приложения взята западная «Dragon Dictate», куда внедрили отечественный программный модуль для распознания русской речи.

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

Это одна из наиболее распространенных утилит для голосового управления компьютером с Windows 7. Ее можно скачать с интернета. Она имеет две версии – бесплатную и платную (premium). Ниже пойдет речь о бесплатной версии.

После запуска программа выдает свое главное окно:

В нем нужно задать имя пользователя и текстовое содержание команды. После чего следует нажать красную кнопку (запись) и сказать в микрофон нужную команду, например, «открой зип сэвен». Затем нажать кнопку «добавить». Этими действиями в утилите создается звуковой образ команды управления.

Следующее действие – это привязка заданного звукового образа к конкретной программе или файлу на компьютере. Для этого нужно кликнуть в главном окне по кнопке

И установить галочку на нужном нам пункте:

Появляется список установленных программ компьютера, в котором следует выбрать 7-Zip File Manager. Затем необходимо нажать на «запись» и «Добавить».

После этого в главном окне в профиль пользователя добавится созданная команда:

Теперь остается только проверить ее выполнение. Для этого нужно в главном окне нажать «Начать говорить» и произнести заветную фразу «Открой зип сэвен, после чего утилита 7-zip откроется.

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

Программа Speechka для голосового управления компьютером с Windows 7

Speechka представляет собой простую и удобную программу, распознающую русский язык. Эта утилита позволяет голосом открывать программы, файлы, папки и интернет-страницы, производить поиск в Интернете. Программа бесплатная и легко скачивается и устанавливается.

Вот выглядит ее главное окно:

В зависимости от своих намерений пользователь должен нажать одну из кнопок главного окна. После нажатия одной из них справа от главного окна появляется окно для задания параметров голосовой команды. Например, при нажатии «Интернет» откроется окошко такого вида:

В нем уже показаны настройки, необходимые для запуска страницы Яндекса с прогнозом погоды. После нажатия кнопки «Добавить» необходимо озвучить данную команду. Это делается, как указано на главной странице, одновременным нажатием «Ctrl» и «Win», после чего нужно сказать в микрофон слово или фразу, например «погода», и отпустить клавиши. В настройках программы есть возможность активировать запись звука по комбинации «Ctrl» + «Win», либо просто по уровню звука.

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

Позволю себе привести здесь пару ссылок на сайты, автором и/или идейным вдохновителем которых является этот человек – Александр Макарчук из города Борисов, Беларусь:

Для работы на компьютере Александр использовал программу «Vocal Joystick» - разработку студентов Университета штата Вашингтон, выполненную на деньги Национального Научного Фонда (NSF). См. melodi.ee.washington.edu/vj

Не удержался

Кстати, на сайте университета (http://www.washington.edu/) 90% статей именно про деньги. Трудно найти что-нибудь про научную работу. Вот, например, выдержки с первой страницы: «Том, выпускник университета, раньше питался грибами и с трудом платил за квартиру. Теперь он старший менеджер ИТ-компании и кредитует университет», «Большие Данные помогают бездомным», «Компания обязалась заплатить 5 миллионов долларов за новый учебный корпус».

Это одному мне режет глаз?


Программа была сделана в 2005-2009 годах и хорошо работала на Windows XP. В более свежих версиях Windows программа может зависнуть, что неприемлемо для человека, который не может встать со стула и её перезапустить. Поэтому программу нужно было переделать.

Исходных текстов нет, есть только отдельные публикации, приоткрывающие технологии, на которых она основана (MFCC, MLP – читайте об этом во второй части).

По образу и подобию была написана новая программа (месяца за три).

Собственно, посмотреть, как она работает, можно :

Скачать программу и/или посмотреть исходные коды можно .

Никаких особенных действий для установки программы выполнять не надо, просто щёлкаете на ней, да запускаете. Единственное, в некоторых случаях требуется, чтобы она была запущена от имени администратора (например, при работе с виртуальной клавиатурой “Comfort Keys Pro”):

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

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

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

Часть II. Как это устроено?

Из опубликованных материалов о программе «Vocal Joystick» было известно, что работает она следующим образом:
  1. Нарезка звукового потока на кадры по 25 миллисекунд с перехлёстом по 10 миллисекунд
  2. Получение 13 кепстральных коэффициентов (MFCC) для каждого кадра
  3. Проверка того, что произносится один из 6 запомненных звуков (4 гласных и 2 согласных) при помощи многослойного персептрона (MLP)
  4. Воплощение найденных звуков в движение/щелчки мыши
Первая задача примечательна лишь тем, что для её решения в реальном времени пришлось вводить в программу три дополнительных потока, так как считывание данных с микрофона, обработка звука, проигрывание звука через звуковую карту происходят асинхронно.

Последняя задача просто реализуется при помощи функции SendInput.

Наибольший же интерес, мне кажется, представляют вторая и третья задачи. Итак.

Задача №2. Получение 13 кепстральных коэффициентов

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

И среди тех, кто занимается распознаванием речи, идёт поиск «философского камня» - набора признаков, которые бы однозначно классифицировали звуковую волну.

Из тех признаков, что доступны широкой публике и описаны в учебниках, наибольшее распространение получили так называемые мел-частотные кепстральные коэффициенты (MFCC).

История их такова, что изначально они предназначались совсем для другого, а именно, для подавления эха в сигнале (познавательную статью на эту тему написали уважаемые Оппенгейм и Шафер, да пребудет радость в домах этих благородных мужей. См. A. V. Oppenheim and R.W. Schafer, “From Frequency to Quefrency: A History of the Cepstrum”).

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

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

Это всего лишь одна из проекций 13-мерного пространства MFCC в 3-мерное, но и на ней видно, что я имею в виду – красные, фиолетовые и синие точки получены от разных микрофонов: (Plantronix, встроенный массив микрофонов, Jabra), но звук произносился один.

Однако, поскольку ничего лучшего я предложить не могу, также воспользуюсь стандартной методикой – вычислением MFCC-коэффициентов.

Чтобы не ошибиться в реализации, в первых версиях программы в качестве основы был использован код из хорошо известной программы CMU Sphinx, точнее, её реализации на языке C, именующейся pocketsphinx, разработанной в Университете Карнеги-Меллона (мир с ними обоими! (с) Хоттабыч).

Исходные коды pocketsphinx открыты, да вот незадача – если вы их используете, то должны в своей программе (как в исходниках, так и в исполняемом модуле) прописать текст, содержащий, в том числе, следующее:

* This work was supported in part by funding from the Defense Advanced * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium.
Мне это показалось неприемлемым, и пришлось код переписать. Это сказалось на быстродействии программы (в лучшую сторону, кстати, хотя «читабельность» кода несколько пострадала). Во многом благодаря использованию библиотек “Intel Performance Primitives”, но и сам кое-что оптимизировал, вроде MEL-фильтра. Тем не менее, проверка на тестовых данных показала, что получаемые MFCC-коэффициенты полностью аналогичны тем, что получаются при помощи, например, утилиты sphinx_fe.

В программах sphinxbase вычисление MFCC-коэффициентов производится следующими шагами:

Шаг Функция sphinxbase Суть операции
1 fe_pre_emphasis Из текущего отсчёта вычитается большая часть предыдущего отсчета (например, 0.97 от его значения). Примитивный фильтр, отбрасывающий нижние частоты.
2 fe_hamming_window Окно Хемминга – вносит затухание в начале и конце кадра
3 fe_fft_real Быстрое преобразование Фурье
4 fe_spec2magnitude Из обычного спектра получаем спектр мощности, теряя фазу
5 fe_mel_spec Группируем частоты спектра [например, 256 штук] в 40 кучек, используя MEL-шкалу и весовые коэффициенты
6 fe_mel_cep Берём логарифм и применяем DCT2-преобразование к 40 значениям из предыдущего шага.
Оставляем первые 13 значений результата.
Есть несколько вариантов DCT2 (HTK, legacy, классический), отличающихся константой, на которую мы делим полученные коэффициенты, и особой константой для нулевого коэффициента. Можно выбрать любой вариант, сути это не изменит.

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

Были выполнены следующие замены для шагов по получению MFCC-коэффициентов:

Задача №3. Проверка того, что произносится один из 6 запомненных звуков

В программе-оригинале «Vocal Joystick» для классификации использовался многослойный персептрон (MLP) – нейронная сеть без новомодных наворотов.

Давайте посмотрим, насколько оправдано применение нейронной сети здесь.

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

Если у нейрона N входов, то нейрон делит N-мерное пространство пополам. Рубит гиперплоскостью наотмашь. При этом в одной половине пространства он срабатывает (выдаёт положительный ответ), а в другой – не срабатывает.

Давайте посмотрим на [практически] самый простой вариант – нейрон с двумя входами. Он, естественно, будет делить пополам двумерное пространство.

Пусть на вход подаются значения X1 и X2, которые нейрон умножает на весовые коэффициенты W1 и W2, и добавляет свободный член C.


Итого, на выходе нейрона (обозначим его за Y) получаем:

Y=X1*W1+X2*W2+C

(опустим пока тонкости про сигмоидальные функции)

Считаем, что нейрон срабатывает, когда Y>0. Прямая, заданная уравнением 0=X1*W1+X2*W2+C как раз и делит пространство на часть, где Y>0, и часть, где Y<0.

Проиллюстрируем сказанное конкретными числами.

Пусть W1=1, W2=1, C=-5;

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

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

Эти три нейрона мы объединим вместе при помощи ещё одного слоя, получив многослойную нейронную сеть (MLP).

А если нам нужно, чтобы нейронная сеть срабатывала в двух областях пространства, то потребуется ещё минимум три нейрона (4,5,6 на рисунках):

И тут уж без третьего слоя не обойтись:

А третий слой – это уже почти Deep Learning…

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

Если бы меня попросили отрезать прямыми красное от синего, то я бы сделал это как-то так:

Но нейронная сеть априори не знает, сколько прямых (нейронов) ей понадобится. Этот параметр надо задать перед обучением сети. И делает это человек на основе… интуиции или проб и ошибок.

Если мы выберем слишком мало нейронов в первом слое (три, например), то можем получить вот такую нарезку, которая будет давать много ошибок (ошибочная область заштрихована):

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

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

- Что ты думаешь, доедет то колесо, если б случилось, в Москву или не доедет?
- А ты как думаешь, сойдётся ента нейронная сеть или не сойдётся?

Есть ещё один неприятный момент, связанный с нейронными сетями. Их «забывчивость».

Если начать скармливать сети только синие точки, и перестать скармливать красные, то она может спокойно отхватить себе кусок красной области, переместив туда свои границы:

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

А есть одна маленькая, но очень существенная деталь.

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

Я неплохо смогу отделить плоскостями статую Венеры от окружающего её трёхмерного пространства.

Но в четырёхмерном пространстве я не смогу ничего, извините. А в 13-мерном - тем более.

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

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

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

Пусть MFCC-точки звука 1 имеют среднеквадратическое отклонение R1, что [грубо] означает, что точки, не слишком далеко отклоняющиеся от среднего, наиболее характерные точки, находятся внутри круга с радиусом R1. Точно так же точки, которым мы доверяем у звука 2 находятся внутри круга с радиусом R2.

Внимание, вопрос: где провести прямую, которая лучше всего отделяла бы звук 1 от звука 2?

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

И, наконец, не забудем, что где-то в пространстве есть точка, которая является представлением полной тишины в MFCC-пространстве. Нет, это не 13 нулей, как могло бы показаться. Это одна точка, у которой не может быть среднеквадратического отклонения. И прямые, которыми мы отрежем её от наших трёх звуков, можно провести прямо по границам окружностей:

На рисунке ниже каждому звуку соответствует кусок пространства своего цвета, и мы можем всегда сказать, к какому звуку относится та или иная точка пространства (или не относится ни к какому):

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

Так, да не так. К счастью, в пространстве любой размерности остаются такие понятия, как точка, прямая, [гипер]плоскость, [гипер]сфера.

Мы повторяем все те же действия и в 13-мерном пространстве: находим дисперсию, определяем радиусы [гипер]сфер, соединяем их центры прямой, рубим её [гипер]плоскостью в точке, равно отдалённой от границ [гипер]сфер.

Никакая нейронная сеть не сможет более правильно отделить один звук от другого.

Здесь, правда, следует сделать оговорку. Всё это справедливо, если информация о звуке – это облако точек, отклоняющихся от среднего одинаково во всех направлениях, то есть хорошо вписывающееся в гиперсферу. Если бы это облако было фигурой сложной формы, например, 13-мерной изогнутой сосиской, то все приведённые выше рассуждения были бы не верны. И возможно, при правильном обучении, нейронная сеть смогла бы показать здесь свои сильные стороны.

Но я бы не рисковал. А применил бы, например, наборы нормальных распределений (GMM), (что, кстати и сделано в CMU Sphinx). Всегда приятнее, когда ты понимаешь, какой конкретно алгоритм привёл к получению результата. А не как в нейронной сети: Оракул, на основе своего многочасового варения бульона из данных для тренировки, повелевает вам принять решение, что запрашиваемый звук – это звук №3. (Меня особенно напрягает, когда нейронной сети пытаются доверить управление автомобилем. Как потом в нестандартной ситуации понять, из-за чего машина повернула влево, а не вправо? Всемогущий Нейрон повелел?).

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

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