Продолжая тему
распознавания голоса, хочу поделится своей старой дипломной работой, на которую одно время возлагал надежды по доведению до коммерческого продукта, но потом оставил этот проект, выложив его в сеть на радость другим студентам. Хотя возможно эта тема будет интересна не только в академическом ключе, а и для общего развития.
Тема моей дипломной работы была «Разработка подсистемы САПР защиты от несанкционированного доступа на основе нейросетевого анализа спектральных характеристик голоса». В самом дипломе конечно много воды вроде ТБ, экономики и прочего, но есть и математическая и практическая часть, а также анализ существующих аналогичных решений. В конце выложу программу и сам диплом, возможно еще кому-то пригодится.
Здравствуй, дорогой читатель!
Предлагаю твоему вниманию интересную и познавательную статью об отдельно взятом методе распознавания говорящего. Всего каких-то пару месяцев назад я наткнулся на
статью о применении мел-кепстральных коэффициентов для распознавании речи. Она не нашла отклика, вероятно, из-за недостаточной структурированости, хотя материал в ней освещен очень интересный. Я возьму на себя ответственность донести этот материал в доступной форме и продолжить тему распознавания речи на Хабре.
Под катом я опишу весь процесс идентификации человека по голосу от записи и обработки звука до непосредственно определения личности говорящего.
По следам предыдущего топика, в котором выяснилось, что Zune не может нормально сэкспортировать плейлист.
Пободавшись с Zune, я решил всё-таки разобраться, что там за беда. Напомню предысторию: Zune конвертит плейлисты во внутренний формат zpl, свободно перемещая/удаляя/дублируя пункты списка по своему усмотрению.
«Ладно, — подумал я, — а если скормить тебе уже готовый zpl?»
(Кстати, я как раз только что поставил чистую систему и накатил свежий Zune с официального сайта.)
В ходе обсуждения предыдущего топика про криворукость разработчиков одной небезызвестной компании, спор как-то плавно перешёл в сторону холивара «зачем проигрывать файлы в папке подряд, когда давно придумали тэги», который я довольно эпично зафейлил. Собравшись с силами, попробую теперь всё-таки пояснить свою позицию.
В чём профит использования метатэгов? В трёх основных моментах:
(а) возможность спокойно перемещать свои файлы, не опасаясь их потерять — медиабиблиотека позволит найти трек в любой самой феерической файловой куче;
(б) готовые базы данных (CDDB, например), которые позволяют автоматически протегировать треки;
(в) унифицированный формат отображения трека в плеере — на фоне зоопарка и разнобоя в именах файлов, плеер всегда покажет чистенькую строчку Артист — Название трека. (Ну или Артист — Название альбома — Номер трека. Название трека. Кому как удобнее.)
Проблема только в том, что всё это работает только на уровне стандартной схемы «исполнитель — альбом — трек», и абсолютно отказывается работать в другой предметной области (я говорю о классической музыке). Сейчас я попытаюсь пояснить, почему.
В прошлый раз
Мы
расположили инструменты в «пространстве» микса, применив панорамирование и эквализацию, что с точки зрения звукоинженера: положение инструмента по горизонтали (панорама), и положение по вертикали, которое задает эквализация (чем выше частотный диапазон звука, тем выше по ощущению он располагается в пространстве). А если уж мы с Вами начали обсуждать процесс сведения, то просто необходимо вернутся чуть-чуть назад и осветить еще два вопроса:
- подготовка материала к сведению
- определение расстояния до инструмента (баланс инструментов по громкости)
Статью попросил запостить хабрапользователь
istinspring т.к. у него не хватает кармы. Если вам понравилась статья, не забудьте его плюсануть, он ещё много таких написать может.
В этой “пилотной” статье постараюсь как можно доступнее изложить основную концепцию, и приведу пару mp3 фрагментов в качестве примеров. Если эта тема окажется интересной, вполне возможно опишу некоторые моменты более детально.
Я думаю многие замечали, что инструменты в миксе звучат не так как хотелось бы. Вроде бы все то, но звук какой-то вялый, неяркий, как будто чего-то не хватает. В то время как на “фирменных” записях даже синусоида звучит “жирно”. На самом деле для этого есть множество причин, но остановимся на мой взгляд на самой главной.
Дело в том, что в современной электронной музыке применяют такой прием как Layering. Т.е. наслоение. Другими словами каждый инструмент создается послойно, позволяя получить уникальный тембр с огромным потенциалом для различных вариаций и экспериментов.
Начнем с того, что
Зачастую новички сталкиваются с проблемой неслаженности своей музыкальной композиции: все инструменты по отдельности звучат хорошо, как надо, а в миксе получается невнятная «каша». А причина этого «недоразумения» в особенности строения нашего слухового аппарата, в так называемой слуховой маскировке.
Пара слов о слуховой маскировке
Если инструменты имеют сходные (или пересекающиеся) частотные спектры, то более тихий тембр будет слышен хуже либо мозг слушателя вообще не сможет выделить этот сигнал. Представьте, как Вы стоите на перроне в метро и мило беседуете, а мимо проносится поезд с таким визгом, что Вы перестаете друг друга понимать. Дело в том, что частотный спектр нашего голоса пересекается с частотным диапазоном гула проезжающей электрички — вот Вам и эффект маскировки.
Есть проблема? Найди решение!
К превеликому счастью решение уже давно нашли и без нас, так что нам остается только пожинать плоды и радоваться. Решение это — эквализация.

Случилось так, что я захотел устроить небольшой концерт для своих далеких друзей, приятелей и просто заинтересованных людей. Коль скоро большинство из них живет за два, четыре или более часовых поясов от меня, я начал думать об аудиотрансляции, благо с точки зрения железа все легко реализуемо (Альфа-Альфа, дорогая моя...) Но вот в чем проблема — мои 44кб отдачи явно не тянут на аудиосервер. Конечно есть скайп, но там лимиты на количество участников конференции — это раз, и не у всех он есть — это два. И надо добавлять пользователей… Жуть, кратко говоря. А еще он принимает только левый канал — это создает дополнительные мучения.

Но после некоторого времени, нашел я Его, Сервис Мечты Моей, Здоровенный такой
Mixlr!
Mixlr! О нем я и расскажу под катом. И немного о том, как я обрабатываю звук перед отправкой.

Итак, прошу к
столу под кат! (Но осторожнее! Трафик!)
Приветствую хабрапользователей!
Эта интереснейшая история о том, в чем правовые отличия работы в России Гугла и Яндекса, как можно практически в одиночку делать коммерческий продукт, при этом совершенно не зная Unix-системы, и даже, в общем-то, плохо понимая работу Windows, но очень любя музыку, и как не разориться на рекламе в интернете. Также мы развеем несколько известных мифов по поводу создания и работы своей радиостанции)
Под катом — семь кругов ада и все мои мытарства в мире прекрасного (музыки, разумеется) со всеми подробностями и некоторым количеством фотографий.
Недавно я наткнулся на интересную
статью, опубликованную
rgen3, в которой описан DTW-алгоритм распознавания речи. В общих чертах, это сравнение речевых последовательностей с применением динамического программирования.
Заинтересовавшись темой, я попробовал применить этот алгоритм на практике, но на этом пути меня поджидало некоторое количество граблей. Прежде всего, что именно нужно сравнивать? Непосредственно звуковые сигналы во временной области — долго и не очень эффективно. Спектрограммы — уже быстрее, но не намного эффективнее. Поиски наиболее рационального представления привели меня к
MFCC или Мел-частотным кепстральным коэффициентам, которые часто используются в качестве характеристики речевых сигналов. Здесь я попытаюсь объяснить, что они из себя представляют.