Установить голосовое управление. Голосовое управление компьютером и телефоном — программы и сервисы

Не хотели бы вы попробовать управлять вашим компьютером посредством голоса? Typle – это программа, которая идеально подходит для этой цели. Вы получите возможность настроить ваш компьютер полностью под себя, осуществляя управление им без использования периферийных устройств. Ограничений на количество команд в Typle нет. Работа с утилитой происходит следующим образом: вы выбираете файл, указывает, что необходимо сделать с ним и записываете голосовую команду. Когда утилита услышит голосовую команду, она незамедлительно совершит нужное действие. И не важно, эта команда должна открывать определенный сайт в браузере, воспроизводить плейлист или песню, или же запускать программу. Всё на ваше усмотрение, возможности не ограничены. Распознавание голоса в Typle реализовано на высоком уровне.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В этой статье я расскажу о наиболее полезных голосовых командах, контекстном поиске Now on Tap, а также покажу, как настроить телефон для выполнения любых голосовых команд, в том числе с помощью Tasker. Ведь именно об этом мы так мечтали, читая произведения фантастов в детстве.

Традиционно все новейшие разработки от «корпорации добра» внедряются на устройствах линейки Nexus. Так было и с голосовым управлением, и с Google Now, системой подачи информации в виде набора кaрточек. За Google Now, простой поиск Google и голосовой поиск отвечает одно приложение, это Google . Оно входит в комплект стандартных приложений от компании Google и доступно на любом сертифицированном Android-смартфоне.

Также существует несколько смартфонов с продвинутой функцией голосового управления, активируемoй, даже если экран смартфона выключен. Например, MOTO X содержит отдельный процессор с очень низким энергопотреблением, который только и занимается, что в фоновом режиме слушает все окружающие звуки на предмет ключевой фразы.

Ранее голосовое управление активировалось только при нажатии на значок микрофона при открытой программе поиска (или на виджеты на рабочем столе). Затем появился лаунчер Google Старт , который позволил выполнять голосовые команды прямо с рабочего стола (с помощью фразы «Ok, Google»). Начиная с Android 4.4 та же возможность стала доступна и в других лаунчерах, но только при условии, что лаунчер явно поддерживает такую возможность (почти все популярные лаунчеры поддерживают).

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

Простой поиск информации, конечно же, самая главная функция Google Now. Причем он достаточно интеллектуален, чтобы понимать контекст, а значит, команды можно объединять в цепочки. Например, если сказать: «О’кей, Google, кто президент Никарагуа?», то поиск выдаст ответ «Даниэль Ортега». А если далее спросить «Сколько ему лет?», то ответ будет «Семьдесят лет». Google Now понимает массу команд, приведу десять наиболее полезных.

  • Карты и навигация - «поехали/навигация #названиеулицы #номер дома». Запустит Google Maps в режиме навигатора по указанному адресу. Также можно указывать город, магазин, организацию и так далее.
  • Калькулятор - «тринадцать процентов от пяти тысяч». Выдаст ответ и форму калькулятора в окне поиска. Голосом можно надиктовывать сложение, вычитание, умножениe, деление, корень числа. Также можно переводить меры весов, длин и прочего.
  • Отправка СМС/сообщений - «написать смс Олег текст я за рулем, перезвоню позже». Отправлять сообщения также можно через WhatsApp, Viber и еще несколько популярных мессенджеров. По упрощенной схеме можно диктовать «сообщение #программа #контакт #текст». Например: «сообщение WhatsApp Олег я за рулем». После этого также голосом можно подтвердить отправку командой «отправить».
  • Набор номера - «позвонить маме». Также можно продиктовать произвольный номер, которого нет в записной книге. При команде «позвонить сестре/брату» можно указать номер из контактов (если записано по-другому), тогда в следующий раз набор будет проходить автоматически.
  • Напоминания и будильники - «разбудить меня в субботу в восемь утра» или «напомнить мне выключить плиту через десять минут». Также можно добавлять мероприятия в Google-календарь. События можно привязывать не только ко времени, но и к месту. Если добавить «напомни мне распечатать текст на работе», то при включенной геолокации и указанном адресе работы (места на карте) напоминание на телефоне всплывет автоматически. Обычный встроенный в приложение «Часы» таймер заводится так же легко.
  • Угадай мелодию - «что это за песня». Запустит раcпознавание играющей музыки.
  • Музыка/видео - «слушать (музыку) #группа #песня». Запустит указанную музыку в Play Music или клип на YouTube. Нормально работает с русскими названиями, но так как английские слова и исполнителей определяет, иногда неправильно интерпретируя под русский язык, то срабатывает не всегда.
  • Фото/видео - «сделай фото / записать видео». Запустит камеру в выбранном режиме.
  • Управление настройками - «выключи вайфай», «включи фонарик».
  • Заметки - «заметка для себя тестовый пароль для сервиса один два три четыре». Добавит заметку в Google Keep.

Now on Tap

Описанию этого сервиса было уделено отдельное пристальное внимание на презентации Android 6.0 Marshmallow. И преподносился он как одна из основных особенностей новой прошивки. Но более-менее нормальную функциональность в России мы получили только в декабре. В официальном русском переводе он называется контекст от Now .

Как это работает? «Когда вы запускаете контекст от Now, Google анализирует все, что вы видите на экране, и ищет информацию в соответствии с этими данными» - вот официальное описание со страницы поддержки.

На деле это значит, что вместо того, чтобы выделять и копировать интересующие фразы на экране, затем открывать поиск и вставлять фразу, можно просто нажать и удерживать кнопку «Домой». После этого Google предложит варианты для найденных ключевых фраз. Это могут быть картинки, видео, предложение открыть это место на картах, новости. Может предложить открыть сайт организации или сделать звонок, открыть профиль Facebook или посмотреть Twitter-аккаунт знаменитостей, добавить заметку. При наличии соответствующих приложений на устройстве после тапа на иконке страница откроется сразу внутри приложения. При прослушивании музыки из разных приложений можно одним нажатием вызвать подробную информацию об исполнителях, альбомах, клипах на YouTube и прочем.


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

«Do a barrel roll».
«Make me a sandwich!»
«Sudo make me a sandwich!»
«When am I?»
«Beam me up, Scotty!»
«Up up down down left right left right».
«What does the fox say?»

Tasker

Если после всего прочитанного вам все равно не хватает команд для воплощения своих фантазий, то, имея немного времени, можно настроить Google Now на выполнение практически любых команд. Для этого нам понадобятся прежде всего Tasker и плагин AutoVoice .

С помощью Таскера можно совершать множество действий: запускать приложения, контролировать звук, запускать скрипты, управлять экраном, проводить манипуляции над файлами, нажимать кнопки на экране, управлять media, делать запросы HTTP Get и Post и реагировать на них, управлять расширенными настройками телефона. И все это можно делать, отдавая голосовые команды. А с помощью множества плагинов функциональность расширяется еще больше.

Для начала работы необходимо включить пункт Google Now Integration внутри AutoVoice. В Таскере необходимо создать отдельный профиль для каждой команды или группы команд. Как обычно, для составления профилей рекомендую в настройках Таскера включать английский. Для тестового профиля составим голосовую команду выключения звука. Для этого создадим новый профиль с параметрами Event → Plugin → AutoVoice Recognized . Заполняем следующие поля:

  • Command Filter - тут вводим необходимую голосовую команду, в нашем примере: «выключи звук». Если нажать на строку Speak Filter, то команду можно надиктовать.
  • Exact Command - если поставить галочку, то будет срабатывать только на точную команду, иначе может сработать на каждое отдельное слово или форму слова.
  • Use Regex - использовать регулярные выражения. Позволяет настроить распознавание нескольких слов в одном профиле. Если в первом поле ввести «(выключи|выключить) (звук|громкость)» без кавычек, то профиль будет срабатывать на команды «выключи звук», «выключи громкость», «выключить звук» и «выключить громкость».

Для действия используем Audio → Ringer Volume и Audio → Notification Volume . Для контроля срабатывания можно добавить всплывающее уведомление через Alert → Flash и в поле Text ввести «Выключил».

Команды «выключи вайфай» работают сразу в Google Now, а «выключи звук» предлагает открыть настройки. И после перехвата команды через Таскер и ее выполнения все равно остается на текущем экране с запросом. Поэтому к действиям дополнительно добавим App → Go Home . Ну а чтобы позабавить друзей, во всех профилях для управления голосом можно первым действием поставить Alert → Say и ввести фразу «слушаюсь, хозяин». Тогда телефон в ответ на команды будет реагировать голосом.


С помощью дополнительных плагинов, например AutoRemote , можно управлять другими устройствами на Android. А если на комп поставить EventGhost , то с помощью многочисленных плагинов можно сделать немало интересного. Одним из самых полезных применений будет настройка умного дома, но это отдельная большая история. У Жуана Диаса (Joao Dias), разработчика всех Auto*-плагинов, есть также дополнение и для компа, что позволяет интегрировать управление мобильными устройствами через голосовой помощник Cortana на десктопе.

Немного хитростей

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

1 Open Mic+ for Google Now

Позволяет изменить ключевую фразу с «Ok, Google» на любую другую. К сожалению, после одного из обновлений сервисов и запроса от Google перестала работать с Google Engine, оставив только PocketSphinx. В связи с этим для ключевой фразы подходят только английские словосочетания, но раньше можно было удивлять присутствующих обращением к телефону «эй, ты» или «слушай команду».

Тем не менее разработчик обещает все поправить в следующих обновлениях. Из других функций можно отметить запуск распознавания по датчику приближения (два взмаха руки) и по встряске телефона. Как и MOTO X, поддерживает распознавание при выключенном экране, но, к сожалению, это очень сильно отражается на батарее, поэтому актуально для телефона на зарядке или автомобильных медиацентров на Android с постоянным питанием. Работает с Bluetooth-гарнитурой, имеет интеграцию с Таскером, может зачитывать текстовые сообщения.

2 Commandr for Google Now

Еще одна программа от разработчика Open Mic+. Интегрируется с Google Now и позволяет использовать расширенный набор команд. В списке поддерживаемых есть следующие: включить/выключить беспроводную точку доступа, приостановить/возобновить музыку, следующая/предыдущая песня, непрочитанные СМС/gmail (озвучит их голосом), громкость <х>, блокировка телефона, сделать снимок, сделать селфи. Также можно включить диктофон, управлять подсветкой, автоповоротом экрана. С рутом можно выключить/перезагрузить телефон, очистить уведомления, включить режим «В самолете». Для поддерживаемых функций можно менять команды на свои. Также имеет интеграцию с Таскером, позволяя включить для каждой задачи срабатывание по названию Task. Есть модуль для Xposed, позволяющий использовать Commandr с Android Wear.

3 Ассистент Дуся

Ну и наконец, детище российских разработчиков - русскоязычный голосовой ассистент Дуся, который объединяет в себе все преимущества описанных приложений и утилит. Как и Tasker, Дуся позволяет создавать свои голосовые функции (они называются «скрипты»), причем в намного более понятной и простой форме (есть справка на русском, видеоуроки) и с более мощными функциями работы именно с речевыми командами. Вдобавок здесь есть и свой онлайн-каталог готовых скриптов, созданных другими пользователями. На момент написания статьи их было около ста.


Так же как и Commandr, Дуся умеет интегрироваться с Google Now, а также имеет множество видов других бесконтактных активаций - встряхиванием, взмахом, гарнитурой, поднесением к уху и в том числе и своей фразой активации на русском. А если хочется использовать интерфейс, то и он есть, очень простой, быстрый и функциональный. Среди функций есть 25 наиболее часто востребованных, есть даже управление умными домами и домашними кинотеатрами.

Заключение

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

Еще до релиза находящегося на стадии разработки, тестирования и отладки интерфейса 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 10 с производительностью, превышающей скорость набора текста среднестатистическим пользователем ПК. ИИ приспосабливается к голосу юзера и со временем качество распознавания команд и текста становится гораздо выше, до очередной деинсталляции программы или переустановки ОС без сохранения пользовательских данных.

С системных функций программный комплекс легко выполняет запуск приложений, создание новых текстовых файлов.

(Visited 30 720 times, 5 visits today)

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

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

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

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

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

 
Статьи по теме:
Обзор лучших разных видов эпиляторов(2019г
Пинцетом или бритвой вы лишь на короткое время избавитесь от волос, а после бритья они будут расти ещё интенсивней. Поэтому и придумали эпиляцию, что дословно означает искусственное удаление волос с помощью различных средств. Также происходит воздействие
Sony Xperia XZ - Технические характеристики
Статью прочитали: 5 226 Компания Sony выпускает новый флагманский смартфон каждые полгода, а иногда и чаще. Несмотря на это, а может благодаря этому, компания слегка выпала из поля зрения широкого круга пользователей. Новые модели Sony привлекают всё м
Как самостоятельно перепрошить любой iphone в домашних условиях
Iphone одна из самых популярных марок телефонов, но при этом очень дорогая. Китайские копии телефонов, конечно, не такие производительные, но выглядят эффектно. А вот китайская прошивка оставляет желать лучшего.Пошаговое руководство по прошивке/ перепроши
Mozilla Thunderbird скачать бесплатно русская версия
Mozilla Thunderbird — бесплатный почтовый клиент, который является отдельной составляющей проекта Mozilla. Работает с электронной почтой, новостями и календарем. Программой поддерживаются протоколы RSS, IMAP, SMTP, POP3, NNTP. Интерфейс программы Мозилла