Как стать автором
Обновить
9
0
Дмитрий Прядкин @Bangybug

Пользователь

Отправить сообщение

Звонки без ограничений на количество участников, или Аудиопайплайн звонка ВКонтакте

Время на прочтение15 мин
Количество просмотров8.8K

Чтобы снять лимиты на число участников в одном звонке, мы реализовали принципиально новую схему работы с видео- и аудиопотоками: построили уникальную архитектуру, которая горизонтально масштабирует звонок на любое количество серверов и потребляет минимум ресурсов — как серверных, так и клиентских. 

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

Читать далее
Всего голосов 27: ↑25 и ↓2+27
Комментарии24

Модуль подводного ультразвукового дальномера

Время на прочтение4 мин
Количество просмотров17K
image

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

Пока дайвинг-компьютер ожидает своего часа, нам пришла в голову мысль: а что если дальномер выделить в отдельный проект? Поскольку у нас возникли сложности с поиском подходящего модуля подводного дальномера, наверняка ещё кто-нибудь сталкивался с подобными трудностями поиска.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии75

Классификация звуков с помощью TensorFlow

Время на прочтение7 мин
Количество просмотров24K


Игорь Пантелеев, Software Developer, DataArt

Для распознавания человеческой речи придумано множество сервисов — достаточно вспомнить Pocketsphinx или Google Speech API. Они способны довольно качественно преобразовать в печатный текст фразы, записанные в виде звукового файла. Но ни одно из этих приложений не может сортировать разные звуки, захваченные микрофоном. Что именно было записано: человеческая речь, крики животных или музыка? Мы столкнулись с необходимостью ответить на этот вопрос. И решили создать пробные проекты для классификации звуков с помощью алгоритмов машинного обучения. В статье описано, какие инструменты мы выбрали, с какими проблемами столкнулись, как обучали модель для TensorFlow, и как запустить наше решение с открытым исходным кодом. Также мы можем загружать результаты распознавания на IoT-платформу DeviceHive, чтобы использовать их в облачных сервисах для сторонних приложений.

Выбор инструментов и модели для классификации


Сначала нам нужно было выбрать ПО для работы с нейронными сетями. Первым решением, которое показалось нам подходящим, была библиотека Python Audio Analysis.

Основная проблема машинного обучения — хороший набор данных. Для распознавания речи и классификации музыки таких наборов очень много. С классификацией случайных звуков дела обстоят не так хорошо, но мы, пусть и не сразу, нашли набор данных с «городскими» звуками.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии5

Секвенирование ДНК в домашних условиях: как на коленке собрать прибор за 10 миллионов

Время на прочтение9 мин
Количество просмотров152K
Всем привет, меня зовут Александр Соколов, и я хочу рассказать, как сделал дома секвенатор – прибор для расшифровки ДНК. Рыночная цена такого прибора составляет около 10 миллионов рублей.

image
Читать дальше →
Всего голосов 265: ↑263 и ↓2+261
Комментарии190

Разработка комплекта электрификации велосипеда

Время на прочтение5 мин
Количество просмотров22K
Приветствую всех кто увлекается электроникой! Меня зовут Василий Сухопаров, я технический директор компании Eczo.bike. Хочу рассказать о том, как мы разрабатывали комплект электрификации велосипеда, с какими подводными камнями пришлось столкнуться и на какие инженерные хитрости пойти. Впереди будет немного программирования STM32, схем, тонкостей проектирования силовых плат и пару слов о механической составляющей КЭВ (Комплект Электрификации Велосипеда).


Комплект электрификации с максимальной мощностью 2600 Вт, бортовым компьютером, трекером, и сменными аккумуляторами.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии77

Хакаем CAN шину авто для голосового управления

Время на прочтение8 мин
Количество просмотров120K


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

Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.

Я действовал поэтапно:

  1. Разработка CAN шилда для Raspberry Pi
  2. Установка ПО для работы с CAN шиной
  3. Подключение к CAN шине авто
  4. Разработка сниффера и изучение протокола CAN шины
  5. Разработка приложения для телефона
  6. Голосовое управление с помощью Homekit и Siri

В конце видео голосового управления стеклоподъемником.
Читать дальше →
Всего голосов 81: ↑81 и ↓0+81
Комментарии110

Аппарат для точечной сварки на основе Arduino Nano

Время на прочтение2 мин
Количество просмотров57K


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

Для оптимизации всего процесса в системе используется Arduino Nano. Это управляющий блок, который позволяет эффективно управлять энергоснабжением установки. Таким образом, каждая сварка является оптимальной для конкретного случая, и энергии потребляется столько, сколько необходимо, не больше, и не меньше. Контактными элементами здесь является медный провод, а энергия поступает от обычного автомобильного аккумулятора, или двух, если требуется ток большей силы.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии60

Принципы работы сонаров и подводная акустика: как, зачем и почему

Время на прочтение12 мин
Количество просмотров105K
Сонары используются для обнаружения и исследования подводных объектов, в то время как похожие устройства, называемые радары — для исследования надводных, наземных, воздушных и космических объектов. Многое из того, что сказано ниже про сонары, справедливо и для радаров, либо имеет очевидные сходства.

Я заметил, что в интернете нет материалов по данной теме, описывающих все процессы в связи друг с другом и понятными словами. В статье мы пройдем весь путь от особенностей распространения звуковых волн в воде до процессов внутри сонара. Сделать это я намереваюсь просто и ясно, чтобы заинтересовать как любопытных читателей, так и тех, кому через 2 часа надо сдать устный экзамен по подводной акустике. Предполагается, конечно, что кто-то из одной, либо из другой обозначенной группы может не иметь никаких знаний по данной теме, поэтому все начнется с основ.

Задолго до того, как Шелдон поможет разобраться с эффектом Доплера, мы погружаемся под воду, чтобы начать знакомство с тем, как происходит и от чего зависит распространение звуковых волн в водной среде.
Осторожно: знания!
Всего голосов 66: ↑62 и ↓4+58
Комментарии19

Бесплатный учебник электроники, архитектуры компьютера и низкоуровневого программирования на русском языке

Время на прочтение2 мин
Количество просмотров248K

Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
Читать дальше →
Всего голосов 117: ↑114 и ↓3+111
Комментарии68

Обзор курсов по Deep Learning

Время на прочтение11 мин
Количество просмотров70K
Привет, Хабр! Последнее время все больше и больше достижений в области искусственного интеллекта связано с инструментами глубокого обучения или deep learning. Мы решили разобраться, где же можно научиться необходимым навыкам, чтобы стать специалистом в этой области.

image
Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии29

FT232H и почти универсальный USB<->JTAG-адаптер за 15 евро

Время на прочтение5 мин
Количество просмотров75K
Продолжая тему практического применения микросхемы FTDI FT232H, затронутую мной в предыдущей статье, хотелось бы рассказать об использовании отладочной платы на ней в качестве дешевого и почти универсального JTAG-адаптера с интерфейсом USB и поддержкой множества микроконтроллеров различных архитектур и производителей. Я намеренно не называю этот адаптер «JTAG-отладчиком», т.к. далеко не все устройства с JTAG TAP поддерживают отладку, но обычными пользователями JTAG-адаптер используется в большинстве случаев именно для прошивки и отладки своего кода на МК. В этой статье я опишу только собственный опыт использования FT232H в качестве JTAG-адаптера, чтобы не давать ссылок на непроверенные решения, поэтому предлагаю читателям поделиться своими (или чужими) способами использования этой микросхемы в комментариях. Уверен, что способов этих найдется намного больше, чем здесь описано.
Заинтересовавшихся прошу под кат.
Псс, хабраюзер, не хочешь немного JTAG'а недорого?
Всего голосов 24: ↑23 и ↓1+22
Комментарии11

Модель взаимодействия судов с водой в видеоиграх

Время на прочтение16 мин
Количество просмотров36K


Давайте поговорим о физике транспортных средств


Физика транспортных средств в видеоиграх не очень сильно обсуждается. Статьи в Интернете о физике транспорта в видеоиграх немногочисленны и поверхностны; обычно они посвящены самым основам. Программист транспорта для видеоигр ощущает себя сегодня в относительном вакууме. Возможно, такая ситуация возникла, потому что эту тему довольно сложно объяснить, а может быть, мы просто стыдимся признаваться в использовании хаков, упрощений и хитростей, которые мы вносим по сравнению с «правильной», реалистичной симуляцией физики. Как бы ни обстояло дело, видеоигры имеют уникальные проблемы в симуляции транспорта, а значит, об этом стоит писать. Это захватывающая тема, относящаяся к физике, работе с камерой, звуку, спецэффектам, а также к восприятию и психологии человека.

Я решил сначала поговорить о судах, потому что недавно работал с ними; ещё я обнаружил, что их динамика не совсем понимается даже на уровне исследований (хотя многое и понятно). Модели и теории формулируются таким образом, что их становится сложно применить непосредственно в видеоиграх. Или же они требуют очень ресурсоёмких методов симуляции, которые практически невозможно контролировать и адаптировать под причудливые потребности разработчиков и игроков. Но можно написать упрощённую модель, которая учитывает важные параметры судна. В этом определённо есть доля искусства, «прыжка веры» и небольшая доля «творческой» физики, которая заставит Кельвина и Стокса перевернуться в могилах.
Читать дальше →
Всего голосов 97: ↑97 и ↓0+97
Комментарии30

Распознавание дорожных знаков (OpenCV)

Время на прочтение2 мин
Количество просмотров47K
Здраствуйте, решил поделиться своим опытом применения OpenCV (Intel) при решении практической задачи.

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

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии18

Матрица прокрастинации (откладывания дел «на потом»)

Время на прочтение14 мин
Количество просмотров144K
Для лучшего понимания этого поста, прочитайте сначала предыдущий пост про прокрастинацию.

Если бы, когда я учился в школе, вы спросили меня прокрастинатор ли я, я бы конечно ответил “да”. Учеников школы учат “держать темп” с крупными проектами. И я гордо держал темп больше чем кто-либо кого я знаю. Я никогда не пропускал дедлайн, но делал все ночью перед сроком сдачи работы. Я был прокрастинатором.

На самом деле я не был. Учебная программа в школе полна дедлайнов и коротких заданий. И даже долгие проекты состоят из промежуточных дедлайнов, которые не позволяют сильно расслабиться. Было всего несколько ужасных моментов, но в большинстве случаев, я все равно делал все в последнюю минуту, потому что знал, что все со мной будет хорошо, так почему бы нет.

Без всякого сомнения в моей голове была Обезьянка Немедленного Удовольствия, но она была милее всех на свете. С постоянно маячащими дедлайнами, Панический Монстр никогда не спал и Обезьянка знала об этом. Она конечно постоянно отвлекала, но не была за главного.

Мой мозг в школе:
image

Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии221

PHD VI: как у нас угнали дрона

Время на прочтение9 мин
Количество просмотров45K


В этом году на PHDays был представлен новый конкурс, где любой желающий мог перехватить управление квадрокоптером Syma X5C. Производители часто полагают, что если они используют не IP-технологии, а какой-нибудь другой беспроводной стандарт, то можно не думать о защищенности. Как будто хакеры махнут рукой, решив, что разбираться с чем-то, кроме IP, — это слишком долго, сложно и дорого.

Но на самом деле, как мы уже много раз упоминали, SDR (software-defined radio) — отличный инструмент для доступа в мир IoT, где уровень вхождения определяется уровнем добросовестности производителя IoT-решений. Однако даже не имея SDR можно творить чудеса, пусть и в ограниченном пространстве частот и протоколов.

Цель — перехватить управление дроном.

Входные данные:

  • диапазон управления дроном: 2,4 ГГц ISM,
  • управление осуществляется модулем nRF24L01+ (на самом деле — его клоном BK2423).

Средства (выдавались желающим): Arduino Nano, nRF24L01+.

Результат — угонщик получил Syma X8C в подарок.

Так как среди желающих угнать наш дрон оказались уже подготовленные люди, имеющие в арсенале HackRF, BladeRF и другие серьезные игрушки, мы опишем два метода — SDR и непосредственно nRF24L01+.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии25

Компьютерное зрение и мобильные роботы. Часть 1 — V-REP, Python, OpenCV

Время на прочтение6 мин
Количество просмотров47K


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

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

Так и возникла идея серии статей, про решение простейшей задачи ориентации робота в пространстве — от виртуальной симуляции, до воплощения в реальном мобильном роботе:

Часть 1. Настройка виртуальной среды, интеграция с python и OpenCV для распознавания образов из виртуального мира.
Часть 2. Создание виртуального мобильного робота, алгоритм автономного перемещения (поиск объекта)
Часть 3. Создание реального робота, перенос логики на него.

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

Мозгом робота будет микрокомпьютер RaspberryPi2 — на котором без проблем работает и python, и OpenCV. Таким образом необходимо состыковать систему виртуальной робототехники V-REP — с Python и OpenCV. Вот про это и будет первая часть — данная публикация.

Видео, что получилось (поиск зеленого объекта)

На верхнем окне — прямое изображение с видео-камеры в 3д виртуальном мире, на нижнем окне — результат выполнения python скрипта, что получает изображение передаёт её OpenCV и рисует маркер, вокруг найденного объекта.

Нарисуем архитектуру нашего мобильного робота.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии1

Сверхбыстрое распознавание речи без серверов на реальном примере

Время на прочтение10 мин
Количество просмотров332K

В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.

Прикручиваем Pocketsphinx к своему Андроиду
Всего голосов 185: ↑182 и ↓3+179
Комментарии87

Фальшивомонетчики против банкиров: стравливаем adversarial networks в Theano

Время на прочтение13 мин
Количество просмотров35K
image
Вы бы никогда не подумали, но это прогулка по пространству нейросети-фальшивомонетчика. Сделано крутейшими людьми Anders Boesen Lindbo Larsen и Søren Kaae Sønderby

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

Метафора, может быть, с некоторой моральной двусмысленностью, но в целом пример не хуже прочих — деньгам (банкнотам) определенно свойственна какая-то сложная структура, тут у них цифра, тут буква, а там хитрые водяные знаки. Предположим, нам нужно понять, как они сделаны, и узнать правило, по которым их печатают. Какой план?

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

Ну, раз так, давайте попробуем их подделать.
Осторожно, тяжелые гифки
Всего голосов 34: ↑34 и ↓0+34
Комментарии22

Калибровка Kinect v2 с помощью OpenCV на Python

Время на прочтение8 мин
Количество просмотров26K
Не так давно мы начали пару проектов, в которых необходима оптическая система с каналом дальности, и решили для этого использовать Kinect v2. Поскольку проекты реализуются на Python, то для начала нужно было заставить работать Kinect из Python, а затем откалибровать его, так как Kinect из коробки вносит некоторые геометрические искажения в кадры и дает сантиметровые ошибки в определении глубины.

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

image
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии9

Обзор дополнений для Blender 3D

Время на прочтение3 мин
Количество просмотров103K

Не секрет, что пакет Blender 3D набирает всё большую популярность среди 3D дизайнеров и Indie разработчиков игр, т.к. является очень мощным и бесплатным средством разработки. Обладая возможностью не только моделирования, но и скульптинга, рисования текстур по модели, подготовки модели для 3D печати, motion capture и еще многими и многими возможностями. Однако, разработчики Blender`а часто акцентируют внимание на то, что много полезных функций реализованы в виде addon`ов, которые включены в дистрибутив, но не включены для работы по умолчанию. Моделирование, это моё хобби и под катом, моя подборка дополнений, которые на мой взгляд сильно облегчают жизнь и упрощают моделирование. В данной статье, я рассмотрю дополнения, которые работают с актуальным на данный момент Blender 2.74.
Посмотрим...
Всего голосов 31: ↑30 и ↓1+29
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Челябинск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность