Pull to refresh
21
0
Антон Скшидлевский @meefik

Программист

Send message

Простой, но эффективный Voice Activity Detection алгоритм реального времени

Reading time7 min
Views31K
Ниже дан перевод статьи
A SIMPLE BUT EFFICIENT REAL-TIME VOICE ACTIVITY DETECTION ALGORITHM
М.H. Moattar and M.M. Homayonpour
Laboratory for Intelligent Sound and Speech Processing (LISSP), Computer Engineering and Information Technology Dept., Amirkabir University of Technology, Tehran, Iran
Оригинал по ссылке

РЕЗЮМЕ

Алгоритм обнаружения активности голоса (Voice Activity Detection, далее VAD) очень важный метод в приложениях обработки речи и аудио. Эффективность большинства, если не всех методов обработки речи/аудио сильно зависит от эффективности применяемого алгоритма VAD. Идеальный детектор активности голоса должен быть независимым от области применения приложения, от уровня шума и быть наименее зависимым от максимума параметров приложения, в котором его используют. В этой статье предлагается близкий к идеальному алгоритм VAD, который одновременно легок в реализации и устойчив к шуму. Предложенный метод использует такие кратковременные характеристики как Spectral Flatness (SF) (спектральная плоскостность, ровность) и Short-term Energy, что делает метод целесообразным для применения в реальном времени. Этот метод был проверен на нескольких записях с разным уровнем шума и сравнивался с недавно преложенными методами. Эксперименты показали удовлетворительные результаты при разных уровнях шума.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments16

Программа выявляет ложь человека по видеозаписи с точностью 75%

Reading time3 min
Views17K

Выражение лица Дэвида Кэмерона можно интерпретировать как желание удержать мочевой пузырь под контролем: по мнению учёных, полный мочевой пузырь делает ложь более убедительной

В следующий раз, когда соберётесь врать на допросе, подумайте дважды — а стоит ли это делать? Даже если применить вышеупомянутый трюк Дэвида Кэмерона и попить водички, это не спасёт от разоблачения. Опытные эксперты могут распознать правду с точностью 65%. И это далеко не предел, особенно если в дело вступают современные системы машинного обучения.
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments26

R как спасательный круг для системного администратора

Reading time3 min
Views12K

Мотивом для этой публикации послужил доклад «Using the R Software for Log File Analysis» на конференции USENIX, который был обнаружен в интернете при поиске ответов на очередные вопросы. Поскольку была написана целая печатная статья, логично предположить, что тема обладает актуальность. Поэтому решил поделиться примерами решения подобного рода задач, решению которых не придавалось такого значения. Фактически, «заметки на полях».
R, действительно, очень хорошо подходит для подобных задач.


Является продолжением предыдущих публикаций.


Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments15

Айтрекинг: доступные решения и их особенности

Reading time7 min
Views9.6K
Исследование движений глаз – саккад и фиксаций – является одним из наиболее интересных направлений анализа в нейронауках, включающих в себя и эмоциональную проблематику. Действительно, глаза – релевантный канал для сбора данных о текущем состоянии и реакциях человека на стимулы внешней среды, важный источник информации о физиологии, эмоциях, когнитивных аспектах жизнедеятельности в естественных, повседневных условиях, в контексте коммуникаций разного рода, происходящих между людьми. Без данных видеоокулографии говорить о мультимодальности в распознавании эмоций было бы затруднительно.

image
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments0

Реверс-инжиниринг одной строчки JavaScript

Reading time10 min
Views47K
Несколько месяцев назад я получил от друга такое письмо:



Тема: Можешь объяснить мне эту одну строчку кода?

Текст: Считай меня тупым, но… я не понимаю её и буду благодарен, если растолкуешь подробно. Это трассировщик лучей в 128 символах. Мне кажется, он восхитительный.

<pre id=p><script>n=setInterval("for(n+=7,i=k,P='p.\\n';i-=1/k;P+=P[i%2?(i%2*j-j+n/k^j)&1:2])j=k/i;p.innerHTML=P",k=64)</script>



Эта строчка JavaScript отрисует анимацию, которая показана на изображении под катом. В браузере она запускается здесь. Скрипт написан автором www.p01.org, где вы можете найти эту и много других классных демок.
Total votes 136: ↑134 and ↓2+132
Comments33

Код Хэмминга. Пример работы алгоритма

Reading time4 min
Views572K

Вступление.


Прежде всего стоит сказать, что такое Код Хэмминга и для чего он, собственно, нужен. На Википедии даётся следующее определение:

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

Другими словами, это алгоритм, который позволяет закодировать какое-либо информационное сообщение определённым образом и после передачи (например по сети) определить появилась ли какая-то ошибка в этом сообщении (к примеру из-за помех) и, при возможности, восстановить это сообщение. Сегодня, я опишу самый простой алгоритм Хемминга, который может исправлять лишь одну ошибку.
Читать дальше →
Total votes 67: ↑64 and ↓3+61
Comments33

Арифметика полей Галуа для кодирования информации кодами Рида-Соломона

Reading time4 min
Views128K

Коды Рида-Соломона относятся к недвоичным, блочным, помехоустойчивым кодам и могут использоваться в области хранения информации для избегания потери поврежденной информации.
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments15

Коды Рида-Соломона. Простой пример

Reading time9 min
Views120K
Гауссово котэБлагодаря кодам Рида-Соломона можно прочитать компакт-диск с множеством царапин, либо передать информацию в условиях связи с большим количеством помех. В среднем для компакт-диска избыточность кода (т.е. количество дополнительных символов, благодаря которым информацию можно восстанавливать) составляет примерно 25%. Восстановить при этом можно количество данных, равное половине избыточных. Если емкость диска 700 Мб, то, получается, теоретически можно восстановить до 87,5 Мб из 700. При этом нам не обязательно знать, какой именно символ передан с ошибкой. Также стоит отметить, что вместе с кодированием используется перемежевание, когда байты разных блоков перемешиваются в определенном порядке, что в результате позволяет читать диски с обширными повреждениями, локализированными близко друг к другу (например, глубокие царапины), так как после операции, обратной перемежеванию, обширное повреждение оборачивается единичными ошибками во множестве блоков кода, которые поддаются восстановлению.

Давайте возьмем простой пример и попробуем пройти весь путь – от кодирования до получения исходных данных на приемнике. Пусть нам нужно передать кодовое слово С, состоящее из двух чисел – 3 и 1 именно в такой последовательности, т.е. нам нужно передать вектор С=(3,1). Допустим, мы хотим исправить максимум две ошибки, не зная точно, где они могут появиться. Для этого нужно взять 2*2=4 избыточных символа. Запишем их нулями в нашем слове, т.е. С теперь равно (3,1,0,0,0,0). Далее необходимо немного разобраться с математическими особенностями.

Поля Галуа


Многие знают романтическую историю о молодом человеке, который прожил всего 20 лет и однажды ночью написал свою математическую теорию, а утром был убит на дуэли. Это Эварист Галуа. Также он несколько раз пытался поступить в университеты, однако экзаменаторы не понимали его решений, и он проваливал экзамены. Приходилось ему учиться самостоятельно. Ни Гаусс, ни Пуассон, которым он послал свои работы, также не поняли их, однако его теория отлично пригодилась в 60-х годах ХХ-го века, и активно используется в наше время как для теоретических вычислений в новых разделах математики, так и на практике.
Читать дальше →
Total votes 94: ↑90 and ↓4+86
Comments32

Тестирование Bash-приложений

Reading time6 min
Views18K
Недавно передо мной встала задача протестировать приложение, написанное на Bash. Изначально я решил использовать unit-тесты на Python, однако, мне не захотелось добавлять лишние технологии в проект. И пришлось выбирать тестовый фреймворк, родным языком которого является многострадальный Bash.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments6

Компактная ОС для ARM процессоров

Reading time5 min
Views38K
“Кажется, что совершенство достигается не тогда, когда нечего более добавить, а тогда, когда нечего больше убрать."

(Антуан де Сент-Экзюпери)

image


По теме изучения программирования встроенных систем, ОС реального времени, Ассемблера и С позвольте представить очень простую операционную систему StartOS.

Предназначение:

— если вам необходимо создать устройство, начинающее работать через 1-2 секунды после включения питания и способное реагировать на сигналы из внешнего мира в течение микросекунд;
— для быстрого создания систем управления объектами с выводом данных в Интернет;
— отработка идей, алгоритмов, изготовлении прототипов устройств;
— приобретение опыта программирования встроенных систем на языках C и Assembler;
— получение полного доступа к «железу» компьютерного устройства, например, для разработки самомодифицирующихся программ.

Некоторые свойства системы:

Время готовности после включения питания: < 1 сек
Объем двоичного кода программы: < 40 kB
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments40

«Digital Rain» для Windows в 314 байтах

Reading time3 min
Views27K
В комментариях к недавнему топику возникло обсуждение: до какого размера можно ужать Windows EXE, печатающий в консоли «Hello, World!» Ответ: 268 байт, меньшие файлы Windows просто отказывается загружать.

Раз для «Hello, World!» предел возможного ужатия уже достигнут, то мне стало интересно, до какой степени удастся ужать программу, делающую хоть что-нибудь более интересное.

Сначала похвастаюсь результатом: моя программа всего на 46 байт больше теоретического минимума!



base64
TVprZXJuZWwzMgAAUEUAAEwBAQC4AwABAPdlEIlFEMN4AA8BCwEFDL0UEEAAjXyNAFfraD
gQAAAzyesoDAAAAAAAQAAAEAAAAAIAAAAAAAACAgoCBAAAAAAAAAAAQAAAAAIAALFQ68AD
AAAAEgEAAAAAAABQABkAABAAAFAAGQADAAAAAAAAAAAAAAAoEQAAKAAAAAAAAAAAAAAA/9
Wr4vvrEQAAMAAAABAAADkBAAABAAAAi/df6wMAAAAzybFQV4sHgPwZdygPttyNHJvB4waN
HItQweAYwegei0RFOIhEMwKIpDPC/v///9WIJDNY/sSA/GR8Av/Vq+LFjUVcUFH/dWhWZI
tBMItAEP9wHP9VWOuiV3JpdGVDb25zb2xlT3V0cHV0QQBsEAAAAAAAAAAAAAACAAAAbBA=

(Если найдётся доброволец захостить эти 314 байт, добавлю сюда ссылку.)


Пояснения
Total votes 49: ↑45 and ↓4+41
Comments18

Немного об архитектурах программного обеспечения

Reading time7 min
Views64K


Никаких сомнений, что за последнее время мир только укрепил свою зависимость от программного обеспечения. Приложения должны обладать высокой доступностью, качественно выполнять требуемые функции и иметь адекватную стоимость. Эти характеристики, в той или иной степени, определяет архитектура ПО.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments2

Опубликованы исходные коды платформы онлайн-обучения edX

Reading time1 min
Views24K


1 июня был открыт доступ к репозиториям с исходными кодами платформы онлайн-обучения edX, основанной Массачусетским технологическим институтом и Гарвардским университетом. Теперь можно не только изучать огромное количество курсов на таких сайтах, как edx.org или coursera.org, но и создать свой собственный портал для дистанционного образования. Похоже, у Moodle появился конкурент.
Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments8

Использование zRam для увеличения количества доступной памяти под Linux

Reading time3 min
Views142K
image
Уже 2 месяца использую на своих компьютерах модуль zRam и хочу поделиться результатами. На практике он позволил мне не используя раздел подкачки, и не получая видимого замедления работы компьютера увеличить размер оперативной памяти в 2.5-3 раза. На сервере виртуалок тот же подход позволил очень ощутимо увеличить отзывчивость при нехватке памяти.
Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 119: ↑116 and ↓3+113
Comments99

Information

Rating
Does not participate
Location
Россия
Registered
Activity