Управление компьютером голосом на русском. Простейшее управление компьютером при помощи голоса
Лидером среди программ для голосового управления компьютера на русском языке является программа Горыныч 5.0. В прочем английский язык также подвластен данной программе. С помощью «Горыныча» можно задавать различные голосовые команды компьютеру: запустить программу, закрыть окно, создать новый документ, перезагрузить или выключить компьютер. Фактически голосовым управлением вы контролируете большинство процессов пользовательской работы в системе Windows без помощи клавиатуры и мышки. Голосовое управление программы позволяет набирать текст на компьютере без использования клавиатуры и мышки. Но здесь возникает несколько нюансов. Один из плюсов программы Горыныч это слушаться голоса только своих хозяинов. И для этого нужно предварительно настроить программную базу команд. Нужно самостоятельно научить своим голосом русскому языку Горыныча. С помощью микрофона вы формируете свой словарь записываемый именно вашего с голоса. Команды голосового управления компьютером могут быть пользовательские, но для набора документов приодеться приложить усилия, чтобы сделать базу богатой словарным запасом. Поэтому для голосового набора все же лучшим решением будет онлайн-серис от Google.
Полезные программы для голосового набора текста на компьютере с поддержкой русского языка.
Горынычем лучше других программ русским голосом управлять компьютером, а голосовой набор текста рекомендуется производить в онлайн-приложении Google Web Speech. Оно доступно только для браузеров Chrome. Web Speech поддерживает 32 языка (среди них даже японские и китайские иероглифы). Для того чтобы напечатать текст с помощью колоса нужен только интернет, браузер Chrome и микрофон. Русский язык программа прекрасно понимает и выдает результат целыми словами переводя устную речь в печатный текст. Сейчас уже закончились разработки платного приложения для аудио и даже видео распознании речи компьютером. Программа RealSpeaker способна распознать не только голос, но и мимику пользователя. Для ее использования подойдет обычная веб-камера с помощью, которой программа будет «читать по губам» пользователя компьютера. Такой подход повышает эффективность во голосовом управлении с помощью преобразования не только речи, но и мимики в текстовые команды. RealSpeaker уже сегодня имеет поддержку русского и еще 10 популярных языков. Программа рассчитана для платформ Windows7 / 8. После инсталляции программу следует настроить. Голову нужно держать ровно, нежелательно допускать частых потерь контакта лица с веб-камерой. Расстояние от веб-камеры желательно не превышать 40-ка см. Присутствует словарь с русским языком, который можно расширить. Но в целом, по сравнению с Горынычем, RealSpeaker более удобен для преобразования голоса в текст.
Работая над голосовым управлением компьютеров, было создано много программ.
Распознанием речи с помощью компьютера программисты-разработчики посвящали свои труды голосовому управлению еще со времен Windows 95. За это время было создано много программ для русского голосового управления компьютера и преобразования речи в текст. Среди них набрали популярность такие программы:
- Диктограф 5;
- Перпетуум мобиле;
- КОМБАТ Vocative Russian ASR Engine.
Для английской речи были популярными программы:
- MedSpeak;
- Sakrament ASR Engine;
- ViaVoice;
- Voice_PE;
- Lucent;
- VoiceType;
- Sakrament;
- Voice Xpress Pro;
- iVoice;
- Philips FreeSpeech 98;
- SR-TTSC.
На сегодняшний день программы лидеры в данной области:
- Горыныч 5;
- Web Speech;
- RealSpeaker;
- Dragon (только для английского языка).
Эти четыре программы выдают наиболее оптимальный результат в компьютерном преобразовании речи в команды и текст. Можно сказать, что особо выбирать нет из чего. Проблема речевого преобразования в компьютерные команды и текст является все еще актуальной. Это пока еще свободная ниша для программистов-разработчиков. Еще очень мало создано достойных продуктов в этой отрасли.
Не хотели бы вы попробовать управлять вашим компьютером посредством голоса? Typle - это программа, которая идеально подходит для этой цели. Вы получите возможность настроить ваш компьютер полностью под себя, осуществляя управление им без использования периферийных устройств. Ограничений на количество команд в Typle нет. Работа с утилитой происходит следующим образом: вы выбираете файл, указывает, что необходимо сделать с ним и записываете голосовую команду. Когда утилита услышит голосовую команду, она незамедлительно совершит нужное действие. И не важно, эта команда должна открывать определенный сайт в браузере, воспроизводить плейлист или песню, или же запускать программу. Всё на ваше усмотрение, возможности не ограничены. Распознавание голоса в Typle реализовано на высоком уровне.
К примеру, нужно открыть ссылку в браузере. В верхнем меню выберите функцию «добавить». Перед вами появится окно, в котором необходимо будет выбрать файл или программу. Нажав кнопку «дополнительно», вы сможете выбрать сам файл, записать для него команду (к примеру «открыть хром») и сохранить. Далее стоит проверить работу команды. Нажмите «начать говорить» в программе и скажите команду. Интерфейс дружелюбный и полностью настраиваемый. Если вы забыли существующую команду, то её можно просмотреть и отредактировать в случае необходимости.
Очень скоро вся техника, от телефонов до чайников будет оснащена голосовым управлением. доступно уже давно и сейчас секретные лаборатории крупных корпораций работают над усовершенствованием этой технологии. Но уже сегодня вы можете воспользоваться этими технологиями будущего и поуправлять компьютерной техникой с помощью голоса.
Голосовое управление телефоном
Уже не первый год смартфоны на популярнейших платформах (Android, iOS, Windows Phone) имеют встроенную систему голосового управления.
Siri - одно из лучших воплощений искусственного интеллекта в современной технике. Siri - голосовой помощник встроенный в смартфоны iPhone 4S который понимает человеческую речь и может вести диалог с владельцем смартфона. Siri позволяет управлять основными функциями смартфона, создавать задачи, искать любую информацию и т.д.
Лучше меня о Siri вам расскажет видео которое я для вас подготовил. Это отрывок из презентации iPhone 4S как раз на том месте, где один из разработчиков iPhone рассказывает о Siri (если видео не видно - обновите страницу):
Сегодня в Android смартфонах голосовое управление ничуть не уступает Siri (где-то даже превосходит) и выполяет практически те же задачи.
Голосовое управление компьютером
Кроме телефона вы можете научить понимать команды и ваш компьютер. В Windows Vista и Windows 7 тоже имеется встроенная система голосового управления, только она еще не доступна в русскоязычной версии операционной системы. Для того чтобы воспользоваться например, англоязычной системой голосового управления, ваша операционная система должна быть Ultimate (Максимальная) или Enterprise (Корпоративная) и в ней должен быть установлен английский языковой пакет. Но не смотря на все эти ограничения есть другие варианты для того, чтобы начать управлять компьютером с помощью голоса.
Typle - одна из лучших программ позволяющая создавать различные голосовые команды для компьютера . Вы записываете голосовую команду и назначаете действие которое необходимо выполнить после ее произнесения. Typle вполне неплохо справляется со своими обязанностями. Правда команды придется отдавать четким, механическим голосом, чтобы программа смогла распознать их. И еще программа иногда может принять за голосовую команду посторонние звуки. Поэтому не удивляйтесь если после установки и настройки Typle на вашем компьютере начнут происходить необъяснимые события.
Голосовоеуправление.рф - облачный сервис и программа Speaker от российских разработчиков с очень хорошим распознаванием речи. Speaker намного лучше понимает человеческую речь . Еще одним плюсом программы, в отличии от Typle является то, что она начинает "слушать" команды только после нажатия командной клавиши - на данный момент это колесико мыши. Благодаря этому программа не будет выполнять команды когда это не нужно. Но по моему мнению использование колесика в качестве командной клавиши не совсем удобно, потому как оно часто используется в других случаях.
Голосовое управление в браузере Opera . Для поклонников интернет-браузера Opera есть встроенное голосовое управление позволяющее управлять основными функциями браузера голосом. В Opera нет возможности создавать свои команды, а используются уже имеющиеся команды на английском языке. Но я думаю, что мало кого заинтересует такой функционал, когда с помощью мыши и клавиатуры можно выполнить все те же действия с не меньшей скоростью.
Голосовое управление в Google
заслуживает отдельного внимания. Всем известно что Google всегда создает качественные продукты и сервисы. Многие убедились в этом начав например, пользоваться почтой Gmail . На данный момент есть две известные мне возможности голосового управления сервисами Google.
Первая - это поиск информации с помощью голоса в поисковой системе Google. Помогает намного быстрей работать с поисковой системой.
Вторая - Google переводчик , позволяющий надиктовывать текст (пока только) на английском языке и автоматически получать перевод на нужный язык.
Вполне удобно использовать голосовой ввод в Google Translate при чтении текста с учебника английского языка или например, упаковки товара, для быстрого перевода на русский язык необходимой информации.
Голосовое управление в Google Chrome
Расширение OWeb - дополняет собой уже имеющиеся функции голосового управления в Google Chrome. OWeb добавляет возможность надиктовать голосом текст практически на всех сайтах, где подразумевается ввод текста - в формах поиска, в контактных формах, в поле комментариев и т.д. Это конечно не Siri, но тоже отличный способ освободить руки и сэкономить время на набор текста.
Посмотрите видео в котором я покажу вам возможности расширения Oweb и примеры его применения:
Обзор программ для голосового управления компьютером
В последующей ниже статье будет рассмотрен вопрос голосового управления компьютером и приведена краткая характеристика предназначенных для этого процесса популярных программ. Итак, слово в названии «голосовое» необходимо понимать буквально - возможность работать с ПК, то есть давать/совершать привычные команды/действия, при помощи своего голоса, а не привычных атрибутов – мыши, клавиатуры. Например, работать с пакетом офисных приложений – проговаривать текст, а распознает речь и воспроизведет ее в виде текста в выбранном приложении.
Горыныч
Наиболее испытанный и старый софт (программа) - Dragon NaturallySpeaking (далее Горыныч). Проверенная временем и максимально усовершенствованная за период своего существования программа Горыныч версии 2010 года обеспечивает точное распознавание речи, составляющее 99%. Очень простой и легкий в использовании софт, работает со всем пакетом офисных программ, способен помочь в создании и редактировании текстов, таблиц и баз данных. С программой можно осуществлять поиск в сети Интернет и компьютере (голосовые ярлыки), отправку e-mail и мгновенных писем/сообщений. Отличный помощник малого бизнеса. Умеет выполнять команды открытия и воспроизведение файлов и так далее. Но есть один нюанс, скачать программу Горыныч для голосового управления компьютером можно только платно и есть одно «но». После инсталляции программа использует немецкий язык, изменение которого на русский потребуют некоторых усилий со стороны пользователя.
Typle Premium
Есть не менее достойное на русском языке , его название звучит как Typle Premium . У этого софта более понятный и простой интерфейс. Ее преимущество главным образом заключается в возможности записывать массу голосовых команд. Распознавание голоса – 99%. К примеру, пользователь хочет еще раз просмотреть свой любимый фильм, его задача сводиться к тому, чтобы сделать запись в Typle Premium примерно такого характера «Воспроизвести фильм «***». Отлично совместимо это голосовое управление компьютером windows xp – операционная система.
Intelligent Voice Recognition System
Программа чуть поскромнее двух предыдущих носит название - Intelligent Voice Recognition System (IVOS) . Ее можно попробовать скачать бесплатно (начальные версии) в сети Интернет. Программа полностью совместима с ОС Windows, может преобразовывать и распознавать голос владельца. Также предусматривает запись дополнительных команд для работы с открытием документов. В Intelligent Voice Recognition System (IVOS) имеются голосовые движки, которые позволят пользователю производить озвучивание электронных учебников. Понятный и лояльный интерфейс. Удобна и проста в использовании, однако до возможностей первых двух программ ей однозначно далековато.
Есть еще множество аналогичных программ для осуществления управлением ПК и мобильными устройствами. Рынком предусмотрены как платные, так и бесплатные варианты. Однако если пользователь намерен использовать программу в серьезной работе, стоит отдать предпочтение платному софту с поддержкой разработчиков.
Ко мне обратился человек с просьбой написать программу, которая позволила бы управлять компьютерной мышью при помощи голоса. Тогда я и представить себе не мог, что, практически полностью парализованный человек, который даже не может сам повернуть голову, а может лишь разговаривать, способен развить бурную деятельность, помогая себе и другим жить активной жизнью, получать новые знания и навыки, работать и зарабатывать, общаться с другими людьми по всему свету, участвовать в конкурсе социальных проектов.Позволю себе привести здесь пару ссылок на сайты, автором и/или идейным вдохновителем которых является этот человек – Александр Макарчук из города Борисов, Беларусь:
Для работы на компьютере Александр использовал программу «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. (Меня особенно напрягает, когда нейронной сети пытаются доверить управление автомобилем. Как потом в нестандартной ситуации понять, из-за чего машина повернула влево, а не вправо? Всемогущий Нейрон повелел?).
Но наборы нормальных распределений – это уже отдельная большая тема, которая выходит за рамки этой статьи.
Надеюсь, что статья была полезной, и/или заставила ваши мозговые извилины поскрипеть.