Программа для управления компьютером голосом. Простейшее управление компьютером при помощи голоса. Не работает голосовое управление. Какие могут быть причины и как исправить

Сегодня речь пойдет о нашей речи. Хотелось бы вам управлять компьютером голосом , без помощи пальцев? А, как это говорят, — силой мысли! Правда, мы не будем управлять компьютер силой мысли, но вот силой голоса вполне реально.

Программа Typle — это одна из лучших на сегодняшний день программа для управления компьютером через голос. На сайтах в комментариях к этой программе мнения сходятся.

Правда есть свои недочеты. Но об этом чуть позже. Кстати, если вас интересует — читайте мой обзор.

Скачать программу можно здесь: http://freesoft.ru/typle

Как же ее использовать? В начале запустим ее и посмотрим главные кнопки управления:

Программа нас приветствует и сразу нам даются подсказки, как использовать Typle. В начале нажмем кнопку «добавить» и запишем слово, например «открой». Для этого произнесем это слово в микрофон:

Затем жмем добавить. Итак, мы сохранили в программе своим голосом слово «Открой». Вы можете говорить в микрофон любые другие слова. Главное — не запутаться.

Следующим шагом будет добавление команд. Для этого перейдем в этот пункт:

Потом мы устанавливаем галочку напротив того пункта, который нам нужен:

Выбираем программу, приложение или действие и нажимаем на красную кнопку записи. Если компьютер воспринял наш голос, жмем «Добавить»:

И теперь будет видна в нашем профиле одна голосовая команда. В данном случае та, которая открывает 7-Zip:

И теперь, нажав завершающую кнопку «начать говорить»

говорим фразу «открой Севен Зип». В моем случае, все сработает. И программа 7-zip откроется. Помните такую фразу: Сим сим откройся? Вот это что-то приблизительно такое же.

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

Поэтому для тестирования и банального любопытства программа Typle подойдет на все 100%.

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

Есть такие страшные названия других аналогов программы, как Горыныч, Перпетуум, Диктограф, Voice Commander. Но все они — «не того». Не проходят критику достойной программы.

На освоение этой программы у меня ушло 5 минут. Это довольно-таки длительное время (в основном, в таких программах я разбираюсь за 1-2 минуту). Если возникнут вопросы — пишите. До скорых встреч, друзья:)!

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

Мы познакомим вас с приложениями с подобным функционалом

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

С приложением разобраться несложно

Популярная программа. Хотя и имеет свои недостатки. Суть её работы простая: задаёте команду и выбираете, какое действие она должна выполнять. Рассмотрим настройку этого приложения на конкретном примере.

  1. Загрузите и установите его. Есть бесплатная и Premiun версия. Вторую надо покупать, чтобы испробовать её на компьютере.
  2. Запустите утилиту. В ней появится информационное окно с подсказками.
  3. На её панели управления есть много различных функций. Некоторые - с одинаковыми названиями. Надо ориентироваться по картинке, а не по надписи. Нажмите кнопку «Добавить» - на ней изображено лицо.
  4. Задайте имя профиля и ключевое слово, которое будет обозначать команду. К примеру, напишите «открыть», если собираетесь настроить запуск какого-то приложения голосом. Или «перейти на», чтобы мгновенно перейти на какой-то сайт, не вводя его адрес.
  5. Теперь надо записать эту самую команду в виде звукового образа. Нажмите на кнопку с красным кружком. И чётко, внятно произнесите в микрофон нужную фразу.
  6. Подтвердите изменения. Заданная опция появится в списке в окне Typle. Программа запомнит то, что вы записали на её «диктофон».
  7. После этого укажите, что, собственно, ей запускать для выполнения команды. Нажмите кнопку «Добавить», которая похожа на руку с символом «+» (плюс).
  8. Выберите формат данных: файлы/утилиты, интернет-страницы, какие-то внутренние сервисы ОС. Поставьте «галочки» там, где вам нужно.
  9. Найдите то приложение, которое хотите запускать голосом. Пусть это будет, например, Microsoft Word. Так вы сможете очень быстро приступить к редактированию какого-то текста или написанию статьи.
  10. В том же окне запишите вторую часть команды. Чтобы в сумме получилось «открыть Ворд». Первое слово будет активировать Typle, второе - включать привязанную утилиту.
  11. Нажмите «Добавить».
  12. К одной функции «открыть» можно прицепить несколько приложений. Так вы будете управлять их запуском, не прикасаясь к мыши и другим периферийным устройствам, установленным на компьютере.
  13. Если надо, отредактируйте дополнительные параметры.
  14. Чтобы проверить, получилось или нет, нажмите на «Начать говорить» и скажите команду.

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

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

Speechka

Еще одно приложение для управления компьютером

  1. При первом запуске откроется окно с выбором категории: ПК или интернет.
  2. Там же есть пояснение, каким сочетанием клавиш надо активировать утилиту. Это можно изменить в настройках.
  3. Нажмите, к примеру, на «Интернет». Откроется окно с несколькими полями для ввода : для текста команды и для URL сайта. Можно написать слово «Яндекс» и адрес этой страницы.
  4. Кликните «Добавить».
  5. Зажмите клавиши, указанные на главном окне.
  6. Произнесите команду, чтобы утилита её «запомнила».

  • Активация как клавишами, так и по громкости звука.
  • При запуске можно откалибровать микрофон.
  • Ограниченный функционал.

Speaker

Интерфейс выполнен в минималистическом ключе

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

  • Создание скриншотов по команде.
  • Смена раскладки клавиатуры на компьютере.
  • Открытие приложений и файлов.
  • Завершение работы.
  • Можно не делать аудиозапись с командой. Утилита распознаёт надписи.
  • Для управления надо использовать клавиатуру. Если заданная кнопка используется и для других целей - будет неудобно.
  • Нужно стабильное интернет-соединение.

Горыныч

Герой русских народных сказок поможет вам

Программа для управления компьютером голосом «Горыныч» - отечественный продукт. Поэтому там «родной» модуль распознавания речи. Он «приспосабливается» к тембру и интонациям пользователя. С утилитой можно полноценно работать в системе, а не просто открывать файлы и веб-страницы.

  • Есть поддержка русского и английского языков.
  • Распознавание текста, голосовой ввод в любые редакторы.
  • Расширенный функционал.
  • Надо самостоятельно создавать команды для каждого процесса. В буквальном смысле придётся записывать словарь.

Windows Speech Recognition

Встроенная в английскую ОС программа. Для её использования у вас должен быть установлен соответствующий языковой пакет. Русские команды с ней работать не будут. Чтобы управлять ПК с её помощью, придётся говорить на её языке. Для получения доступа к ней в Панели настроек Windows откройте меню «Язык и региональные стандарты » (оно находится в категории «Часы, язык, регион») и во всех вкладках установите «Английский». Если всё правильно, и у вас установлен необходимый языковой пакет, Windows «превратится» в английскую, и утилита станет доступна. Лучше не пробовать данные метод, если вы плохо знаете чужой язык.

Данный способ подойдет в том случае, если вы владеете английским

Прочие утилиты

Есть ещё ряд приложений для управления такими командами:

  • Расширения для браузеров. Облегчают сёрфинг по сети. В Google Chrome уже встроена подобная функция - голосовой ввод в поисковые формы. Эта опция есть на некоторых онлайн-картах. Она позволяет быстрее найти адрес.
  • VoiceType.
  • RealSpeaker.
  • Web Speech.

Список программ для распознавания текста и записи под диктовку

Управлять голосом - это, конечно, хорошо. Но могут оказаться полезными утилиты для распознавания текста и печати под диктовку. При составлении объёмных докладов, дипломов легче записывать свои мысли, озвучивая их в микрофон на компьютере. Вот несколько таких утилит:

  • Диктограф.
  • Dragon Naturally Speaking.
  • Перпетуум-Мобиле.

Продукт, позволяющий диктовать текст компьютеру

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

Но есть и отрицательные аспекты. Если вы случайно скажете слово-команду, откроется совершенно не нужное сейчас приложение или обозреватель не к месту перейдёт на какой-то сайт. Чем пользоваться и пользоваться ли вообще - решать вам.

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

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

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

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 или мобильному интернету. Попробуйте перезагрузить устройство.

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

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

Для работы на компьютере Александр использовал программу «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. (Меня особенно напрягает, когда нейронной сети пытаются доверить управление автомобилем. Как потом в нестандартной ситуации понять, из-за чего машина повернула влево, а не вправо? Всемогущий Нейрон повелел?).

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

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

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

Управление голосом на Windows

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

Typle

Данная программа лидер среди программ, позволяющих командовать компьютером на родном русском языке. После установки нужно будет завести пользователя и придумать ему ключевое слово вроде «Ok, Windows», хотя нам советуют слово «Открой». Именно с него мы и начинаем говорить, знакомая реализация в Google Glasses существует.

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

Управление жестами на компьютере

Еще с момента появления PlayStation®Eye Camera и kinect люди захотели такие же функции и на компьютере. Позже Kinect даже стали продавать разработчикам, но для общего пользователя такого продукта не анонсировали. И даже есть новость, что Kinect 2.0 с Xbox One не будет работать на компьютере, но выйдет специальная версия Kinect и для PC. Правда без соответствующего софта пользы от него мало. Так что перейдем к самому софту.

Самым популярным и доступным способом управления жестами является программа Flutter и соответствующее Chrome-расширение. Для этой программы подойдет почти любая веб-камера.

Довольно мало функций, но зато они очень хорошо работают. Мы можем ставить на паузу и продолжать показывая ладонь. Переключать треки или видео налево или направо, в зависимости, куда укажем пальцем. Работает программа в PowerPoint, VLC, Winamp, iTunes, YouTube и нескольких других сервисов, которые мало кто у нас использует.

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

Наверняка Flutter скоро получит полную поддержку Chrome, ведь стартап в октябре 2013 года купила Google.

Leap Motion

От софта перейдем к устройствам. Leap Motion внушает доверие своим маленьким видом и количеством потенциальных возможностей. Эта штука определяет руки пользователя, точнее даже каждый палец. Собственный магазин с кучей приложений и игр не дает заскучать. И самое главное, он уже продается и стоит какие-то 5000 рублей. Не так много за такую магию.

Но, на самом деле, здесь много минусов. На хабре было обсуждений и даже мнение одного из пользователей. Руки всегда надо держать запястьем вверх над устройством, думаете легко? Подержите 5 минут.

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

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

DUO 3D

Похожая технология от русских разработчиков тоже существует. Они просто взяли две Eye Camera, написали софт и сделали компанию на кикстартере. К сожалению, провальную. Собрали 62 000$ из 110 000$ планированных. Обидно, тем более, что они не получат даже этих денег, так как надо собрать все, чтобы они поступили.

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

Myo

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

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

Управление компьютером с веб камеры на ноутбуках

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

Продуктами этой компании пользуется Acer. А Lenovo на основе этих наработок сделает свой собственный Motion Control 2.0.

А в сентябре 2013 Intel анонсировала новые ноутбуки с голосовым управлением, управлением жестами, прикосновением, а до этого летом компания приобрела израильский стартап Omek.

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