Программа для управления компьютером голосом. Простейшее управление компьютером при помощи голоса. Не работает голосовое управление. Какие могут быть причины и как исправить
Сегодня речь пойдет о нашей речи. Хотелось бы вам управлять компьютером голосом , без помощи пальцев? А, как это говорят, — силой мысли! Правда, мы не будем управлять компьютер силой мысли, но вот силой голоса вполне реально.
Программа Typle — это одна из лучших на сегодняшний день программа для управления компьютером через голос. На сайтах в комментариях к этой программе мнения сходятся.
Правда есть свои недочеты. Но об этом чуть позже. Кстати, если вас интересует — читайте мой обзор.
Скачать программу можно здесь: http://freesoft.ru/typle
Как же ее использовать? В начале запустим ее и посмотрим главные кнопки управления:
Программа нас приветствует и сразу нам даются подсказки, как использовать Typle. В начале нажмем кнопку «добавить» и запишем слово, например «открой». Для этого произнесем это слово в микрофон:
Затем жмем добавить. Итак, мы сохранили в программе своим голосом слово «Открой». Вы можете говорить в микрофон любые другие слова. Главное — не запутаться.
Следующим шагом будет добавление команд. Для этого перейдем в этот пункт:
Потом мы устанавливаем галочку напротив того пункта, который нам нужен:
Выбираем программу, приложение или действие и нажимаем на красную кнопку записи. Если компьютер воспринял наш голос, жмем «Добавить»:
И теперь будет видна в нашем профиле одна голосовая команда. В данном случае та, которая открывает 7-Zip:
И теперь, нажав завершающую кнопку «начать говорить»
говорим фразу «открой Севен Зип». В моем случае, все сработает. И программа 7-zip откроется. Помните такую фразу: Сим сим откройся? Вот это что-то приблизительно такое же.
Программа не всегда работает адекватно. Сейчас могучий русский язык не до конца изучен программистами-лингвистами… Но все-таки приятно, когда тебя слушается компьютер.
Поэтому для тестирования и банального любопытства программа Typle подойдет на все 100%.
В этом видео можно увидеть историю создания первых голосовых движков и то, над чем еще нам следует поработать:
Есть такие страшные названия других аналогов программы, как Горыныч, Перпетуум, Диктограф, Voice Commander. Но все они — «не того». Не проходят критику достойной программы.
На освоение этой программы у меня ушло 5 минут. Это довольно-таки длительное время (в основном, в таких программах я разбираюсь за 1-2 минуту). Если возникнут вопросы — пишите. До скорых встреч, друзья:)!
Взаимодействовать с компьютером можно не только при помощи клавиатуры и мыши. Доступно также управление голосовыми командами . Существуют специальные утилиты, которые позволяют это сделать. В их функции входит не только запись текста под диктовку или расшифровка аудиозаписей. Через них можно запускать приложения, использовать их, да и вообще - делать что угодно. Управление компьютером голосом облегчает работу с ПК. Команды передаются оперативно и без лишних усилий. Конечно, если у вас есть микрофон.
Мы познакомим вас с приложениями с подобным функционалом
Такая функция встроена в англоязычную версию Windows. Для её использования у вас должна быть лицензия Enterprise или Ultimate. Но и в русифицированных операционных системах можно настроить управление голосом и диктовку текста. Воспользуйтесь одним из следующих приложений.
С приложением разобраться несложно
Популярная программа. Хотя и имеет свои недостатки. Суть её работы простая: задаёте команду и выбираете, какое действие она должна выполнять. Рассмотрим настройку этого приложения на конкретном примере.
- Загрузите и установите его. Есть бесплатная и Premiun версия. Вторую надо покупать, чтобы испробовать её на компьютере.
- Запустите утилиту. В ней появится информационное окно с подсказками.
- На её панели управления есть много различных функций. Некоторые - с одинаковыми названиями. Надо ориентироваться по картинке, а не по надписи. Нажмите кнопку «Добавить» - на ней изображено лицо.
- Задайте имя профиля и ключевое слово, которое будет обозначать команду. К примеру, напишите «открыть», если собираетесь настроить запуск какого-то приложения голосом. Или «перейти на», чтобы мгновенно перейти на какой-то сайт, не вводя его адрес.
- Теперь надо записать эту самую команду в виде звукового образа. Нажмите на кнопку с красным кружком. И чётко, внятно произнесите в микрофон нужную фразу.
- Подтвердите изменения. Заданная опция появится в списке в окне Typle. Программа запомнит то, что вы записали на её «диктофон».
- После этого укажите, что, собственно, ей запускать для выполнения команды. Нажмите кнопку «Добавить», которая похожа на руку с символом «+» (плюс).
- Выберите формат данных: файлы/утилиты, интернет-страницы, какие-то внутренние сервисы ОС. Поставьте «галочки» там, где вам нужно.
- Найдите то приложение, которое хотите запускать голосом. Пусть это будет, например, Microsoft Word. Так вы сможете очень быстро приступить к редактированию какого-то текста или написанию статьи.
- В том же окне запишите вторую часть команды. Чтобы в сумме получилось «открыть Ворд». Первое слово будет активировать Typle, второе - включать привязанную утилиту.
- Нажмите «Добавить».
- К одной функции «открыть» можно прицепить несколько приложений. Так вы будете управлять их запуском, не прикасаясь к мыши и другим периферийным устройствам, установленным на компьютере.
- Если надо, отредактируйте дополнительные параметры.
- Чтобы проверить, получилось или нет, нажмите на «Начать говорить» и скажите команду.
Программа работает с русским языком. Но не всегда правильно его распознаёт. Говорить надо громко, чётко, механическим голосом.
- Не нужны знания английского.
- Быстрое создание команд.
- Нет распознавания текста.
- Ограниченный функционал. Можно лишь открывать утилиты и страницы в интернете.
- Программа иногда воспринимает посторонние шумы как команды. Из-за этого на ПК происходят странные вещи.
- Нельзя работать с плеером.
Speechka
Еще одно приложение для управления компьютером
- При первом запуске откроется окно с выбором категории: ПК или интернет.
- Там же есть пояснение, каким сочетанием клавиш надо активировать утилиту. Это можно изменить в настройках.
- Нажмите, к примеру, на «Интернет». Откроется окно с несколькими полями для ввода : для текста команды и для URL сайта. Можно написать слово «Яндекс» и адрес этой страницы.
- Кликните «Добавить».
- Зажмите клавиши, указанные на главном окне.
- Произнесите команду, чтобы утилита её «запомнила».
- Активация как клавишами, так и по громкости звука.
- При запуске можно откалибровать микрофон.
- Ограниченный функционал.
Speaker
Интерфейс выполнен в минималистическом ключе
Команды в приложении настраиваются при помощи печатных слов, а не диктовки. Есть внутренний механизм распознавания текста. Основные функции:
- Создание скриншотов по команде.
- Смена раскладки клавиатуры на компьютере.
- Открытие приложений и файлов.
- Завершение работы.
- Можно не делать аудиозапись с командой. Утилита распознаёт надписи.
- Для управления надо использовать клавиатуру. Если заданная кнопка используется и для других целей - будет неудобно.
- Нужно стабильное интернет-соединение.
Горыныч
Герой русских народных сказок поможет вам
Программа для управления компьютером голосом «Горыныч» - отечественный продукт. Поэтому там «родной» модуль распознавания речи. Он «приспосабливается» к тембру и интонациям пользователя. С утилитой можно полноценно работать в системе, а не просто открывать файлы и веб-страницы.
- Есть поддержка русского и английского языков.
- Распознавание текста, голосовой ввод в любые редакторы.
- Расширенный функционал.
- Надо самостоятельно создавать команды для каждого процесса. В буквальном смысле придётся записывать словарь.
Windows Speech Recognition
Встроенная в английскую ОС программа. Для её использования у вас должен быть установлен соответствующий языковой пакет. Русские команды с ней работать не будут. Чтобы управлять ПК с её помощью, придётся говорить на её языке. Для получения доступа к ней в Панели настроек Windows откройте меню «Язык и региональные стандарты » (оно находится в категории «Часы, язык, регион») и во всех вкладках установите «Английский». Если всё правильно, и у вас установлен необходимый языковой пакет, Windows «превратится» в английскую, и утилита станет доступна. Лучше не пробовать данные метод, если вы плохо знаете чужой язык.
Данный способ подойдет в том случае, если вы владеете английским
Прочие утилиты
Есть ещё ряд приложений для управления такими командами:
- Расширения для браузеров. Облегчают сёрфинг по сети. В Google Chrome уже встроена подобная функция - голосовой ввод в поисковые формы. Эта опция есть на некоторых онлайн-картах. Она позволяет быстрее найти адрес.
- VoiceType.
- RealSpeaker.
- Web Speech.
Список программ для распознавания текста и записи под диктовку
Управлять голосом - это, конечно, хорошо. Но могут оказаться полезными утилиты для распознавания текста и печати под диктовку. При составлении объёмных докладов, дипломов легче записывать свои мысли, озвучивая их в микрофон на компьютере. Вот несколько таких утилит:
- Диктограф.
- Dragon Naturally Speaking.
- Перпетуум-Мобиле.
Продукт, позволяющий диктовать текст компьютеру
В ОС можно настроить голосовые команды . Для этого на компьютере должна быть установлена соответствующая программа. С ней вы сможете работать на ПК, лёжа на диване или развалившись в кресле. У вас будут свободны руки. Если микрофон хороший и улавливает даже отдалённые или тихие звуки, вам не потребуется рядом с ним сидеть. Вы можете одновременно «разговаривать» с компьютером и записывать конспект в тетради, рисовать, держать что-то. Да хоть шить и вязать. С командами взаимодействовать с ПК намного легче. Для активации некоторых подобных утилит нужно нажимать кнопки на клавиатуре, что не очень удобно.
Но есть и отрицательные аспекты. Если вы случайно скажете слово-команду, откроется совершенно не нужное сейчас приложение или обозреватель не к месту перейдёт на какой-то сайт. Чем пользоваться и пользоваться ли вообще - решать вам.
Одна из главных задач операционной системы Андроид - это максимально простое и понятное управление устройством. В каждом обновлении появляется всё больше новых возможностей, которые существенно упрощают пользование. Одной из таких функция является голосовое управление Андроид.
Голосовое управление Андроид
Голосовое управление Андроид - это инновационная технология, с помощью которой можно управлять устройством без лишних манипуляций, а только голосом. Эта функция находится в стадии активного развития и усовершенствования.
Ok, Google на Андроид, даёт возможность более эффективно использовать устройство. Голосом можно выполнять много функций и получать качественный результат. К примеру, искать необходимую информацию, включать/выключать приложения и даже набирать текст. На сегодняшний день данная разработка не идеальна и включает в себя различные недоработки.
Все команды, которые возможно осуществить с помощью голосового управления делятся на две группы.
А именно:
- управление функциями самого устройства - если вы хотите послушать музыку, то просто скажите - «Проиграть плейлист», если хотите включить будильник, то произнесите фразу – «Разбуди меня в такое-то время» и так далее
- поиск информации - голосовым запросом можно узнать, например, погоду, посмотреть счёт игры любимой команды, найти слова песни и так далее
Но к сожалению, есть и некоторые ограничения в работе голосового управления. Иногда на невостребованные запросы вы не сможете получить информацию. Например, вас интересует расписание сеансов в кинотеатрах Киева, и вы без проблем получите ответ, а вот если вы зададите тот же запрос, но уже касательно менее крупного города, то тут могут возникнуть проблемы, и вы можете столкнуться с отсутствием информации.
Как включить голосовое управление
Для того, чтобы воспользоваться голосовым управлением Ok, Google, необходимо постоянное подключение к интернету. В ограниченных размерах приложение может работать и без интернета, но качество распознавания голоса будет очень плохим и использование функции будет практически невозможным.
- установить приложение Google, если оно у вас уже установлено, то убедитесь, что стоит именно последняя версия
- зайти в приложение Google
- в верхнем левом углу нажать значок, который выглядит как три горизонтальные линии
- далее зайти в «Настройки »
- выбрать «Голосовой поиск »
- после - «Распознавание Ok, Google » или «На любом экране »
На некоторых устройствах распознавание функции голосового управления доступно не только в приложении Google, но и в других программах. Для этого в программе Google нажмите:
- «Настройки »
- далее - «Приложения ». Там у вас отобразится перечень программ, в которых вы можете использовать Ok, Google
Как настроить голосовое управление
Функция Ok, Google всегда активна при условии, если у вас запущено приложение Google или Google Chrome. После активации система зафиксирует ваш голос и в дальнейшем с распознаванием проблем не должно быть. Чтобы осуществить запрос достаточно произнести фразу Ok, Google и сформулировать вопрос или команду.
Как отключить голосовое управление
Отключить Ok, Google не сложнее, чем включить. Для этого нужно сделать следующее:
- зайти в приложение Google
- в верхнем левом углу значок, который выглядит как три горизонтальные линии
- выбрать «Голосовой поиск »
- далее «Распознавание Ok, Google »
- убрать флажок - «На любом экране » или «Всегда включено »
Команды голосового управления
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» было известно, что работает она следующим образом:- Нарезка звукового потока на кадры по 25 миллисекунд с перехлёстом по 10 миллисекунд
- Получение 13 кепстральных коэффициентов (MFCC) для каждого кадра
- Проверка того, что произносится один из 6 запомненных звуков (4 гласных и 2 согласных) при помощи многослойного персептрона (MLP)
- Воплощение найденных звуков в движение/щелчки мыши
Последняя задача просто реализуется при помощи функции 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.
Посмотрим, что из этого всего выйдет. У меня в последнее время вечное ощущение того, что будущее вот-вот рядом и так уже пару лет. Мой материал можете дополнить своими знаниями, может есть еще какие-то устройства или способы, которые тоже стоило упомянуть?