Как стать автором
Обновить
87
12.1

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

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

Тестирование псевдослучайной последовательностью

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

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

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

Поэтому надо было подготовить простую программу (в смысле ПО) для испытаний. И встал вопрос, что выдавать в качестве «информации»? Решили все-таки не тривиальную «решетку» AA55, а псевдослучайную последовательность с помощью примитивного полинома Галуа.

Алгоритм там действительно очень простой:

Читать далее
Всего голосов 6: ↑4 и ↓2+4
Комментарии5

Мы опубликовали современный Voice Activity Detector и не только

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

image


Всегда при работе с речью встает несколько очень "простых" вопросов, для решения которых нет большого количества удобных, открытых и простых инструментов: детекция наличия голоса (или музыки), детекция наличия цифр и классификация языков.


Для решения задачи детекции голоса (Voice Activity Detector, VAD) существует довольно популярный инструмент от Google — webRTC VAD. Он нетребовательный по ресурсам и компактный, но его основной минус состоит в неустойчивости к шуму, большом числе ложноположительных срабатываний и невозможности тонкой настройки. Понятно, что если переформулировать задачу не в детекцию голоса, а в детекцию тишины (тишина — это отсутствие и голоса и шума), то она решается весьма тривиальными способами (порогом по энергии, например), но с теми же минусами и ограничениями. Что самое неприятное — зачастую такие решения являются хрупкими и какие-то хардкодные пороги не переносятся на другие домены.


Изначально мы хотели сделать простой и быстрый внутренний инструмент для себя и наших партнеров для детекции произнесенных чисел без привлечения полноценного STT (фишка изначально была именно в портативности засчет использования современных фреймворков типа PyTorch и ONNX), но в итоге оказалось, что можно сделать не только детектор чисел, но и качественный, быстрый и портативный VAD и классификатор языков, который и опубликовали бесплатно для всех желающих тут под лицензией MIT. За подробностями прошу под кат.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии12

Оконные функции своими руками

Время на прочтение10 мин
Количество просмотров20K
В цифровой обработке сигналов оконные функции широко используются для ограничения сигнала во времени и их названия хорошо известны всем, кто так или иначе сталкивался с дискретным преобразованием Фурье: Ханна, Хэмминга, Блэкмана, Харриса и прочие. Но являются ли они достаточными, можно ли придумать что-то новое и есть ли в этом смысл?

В этой статье мы рассмотрим вывод оконной функции с новыми свойствами, используя Wolfram Mathematica. Предполагается также, что читатель имеет общие представления о цифровой обработке сигналов в контексте обсуждаемого вопроса и как минимум знаком со статьёй из википедии.


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

Микшерный пульт из USB-звучки и опенсорса

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

Иногда у меня, как у звукача аниме/гик фестивалей/конвентов, появляется задача обеспечить звуком небольшой ивент, на площадке которого нет вообще ничего из оборудования. Такие патички довольно лайтовы и располагают к экспериментам. Так, для нашего осеннего опенэйра я выбрал следующий (весьма непривычный) опенсорсный сетап, который в итоге отлично сработал:


  • Колонка 50 Вт
  • Два микрофона
  • Аудиоинтерфейс из серии BEHRINGER U-PHORIA
  • Ноутбук на линуксе
  • Ardour в качестве микшера и хоста плагинов
  • Calf Studio Gear для обработки звука
  • JACK в качестве звукового сервера
  • VLC в качестве основного плеера

Идея делать микшер из простейшего аудиоинтерфейса на опенсорсном софте мне настолько понравилась, что я решил поделиться.


Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии8

Классические задачи Computer Science на языке Python. Обзор книги

Время на прочтение7 мин
Количество просмотров12K
Привет, Хабр!

Одной из самых интересных наших книг по Python в течение уходящего года оставались "Классические задачи Computer Science на языке Python" от Дэвида Копеца.



Для тех, кто еще не успел ознакомиться с этой книгой, предлагаем ее обзор, написанный по оригинальному изданию в октябре 2019 года. Также можно ознакомиться с небольшим обсуждением на Reddit. Также все желающие могут высказаться по поводу допечатки — для этого в конце статьи поставлена голосовалка.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Изучаем RISC-V с нуля, часть 1: Ассемблер и соглашения

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


Издеваться мы будем над микросхемой GD32VF103CBT6, являющейся аналогом широко известной STM32F103, с небольшим, но важным отличием: вместо ядра ARM там используется ядро RISC-V. Чем это грозит нам, как программистам, попробуем разобраться.


Кратко перечислю характеристики контроллера:


  • Напряжение питания: 2.6 — 3.6 В
    • Максимальная тактовая частота: 108 МГц
    • Объем ПЗУ (flash): 128 кБ
    • Объем ОЗУ (ram): 32 кБ
    • Объем Backup регистров (сохраняемых после сброса): 42 х 16 бит = 84 байта.
    • АЦП+ЦАП: 2 штуки АЦП по 10 каналов и 12 бит каждый плюс 2 ЦАП по 12 бит.
    • Разумеется, куча прочей периферии вроде таймеров, SPI, I2C, UART и т. д.
Всего голосов 27: ↑26 и ↓1+34
Комментарии38

Листовые материалы в корпусостроении — обзор и технологии

Время на прочтение11 мин
Количество просмотров25K
В очередной раз наткнувшись на картинку прекрасного электронного поделия в адском корпусе из соплеметного клея и картона я понял что держаться нету больше сил: надо пилить статью про корпуса, доступные всем. И немедленно выпил начал. Но быстро устал, ибо нельзя объять необъятное, особенно разом в одной статье. Так мгновенный импульс преобразовался в замысел цикла статей по домашним и околодомашним корпусам, доступным если не всем, то многим. И начать я решил с листовых материалов — как с ними работать, какие они бывают, что с ними можно и чего нельзя, ну и немножко — как из полученного добра сложить корпус.


Источник

Кого заинтересовало, прошу под кат.
Читать дальше →
Всего голосов 83: ↑83 и ↓0+83
Комментарии79

Все началось с Dream — новый ИИ-помощник от проекта DeepPavlov

Время на прочтение4 мин
Количество просмотров4.3K
Команда лаборатории нейронных систем и глубокого обучения МФТИ, работающая над проектом DeepPavlov, создала интеллектуального помощника с искусственным интеллектом DeepPavlov DREAM. Этот ИИ-помощник основан на социальном боте, который принимал участие в конкурсе Alexa Prize Socialbot Grand Challenge 3 от Amazon. И сегодня мы расскажем, на что он способен.


Читать дальше →
Всего голосов 7: ↑5 и ↓2+6
Комментарии2

Как принять сигналы немецкого ВМФ с помощью звуковой карты, или изучаем радиосигналы сверхнизких частот

Время на прочтение4 мин
Количество просмотров27K
Привет, Хабр.

Тема приема и анализа сверхдлинных волн весьма интересна, но на Хабре она упоминается весьма редко. Попробуем восполнить пробел, и посмотрим как это работает.


Передатчик VLF в Японии (с) en.wikipedia.org/wiki/Very_low_frequency
Читать дальше →
Всего голосов 44: ↑43 и ↓1+65
Комментарии72

Точные и быстрые вычисления для чисел с плавающей точкой на примере функции синуса. Часть 2: libm

Время на прочтение5 мин
Количество просмотров4.8K
Продолжаю цикл статей по работе с плавающей точкой. В первой статье я дал небольшое математическое введение и показал самый простой и очевидный способ вычисления синуса с примерами программ с разными «подводными камнями». Сегодня статья будет немного другая по стилю. Здесь не будет практики, зато мы копнём глубже математику и залезем в святая-святых — код стандартной библиотеки. Так же я дам ответ на вопрос в конце первой статьи. Итак, поехали.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии39

Python-пакеты для Data Science

Время на прочтение8 мин
Количество просмотров36K
Python — это один из самых распространённых языков программирования. Хотя стандартные возможности Python достаточно скромны, существует огромное количество пакетов, которые позволяют решать с помощью этого языка самые разные задачи. Пожалуй, именно поэтому Python и пользуется такой популярностью среди программистов. Можно наугад назвать какую-нибудь сферу деятельности и в экосистеме Python, почти гарантированно, найдутся отличные инструменты для решения специфических задач из этой сферы. В наше время весьма востребованы наука о данных (Data Science, DS) и машинное обучение (Machine Learning, ML). И там и там Python показывает себя наилучшим образом.

Помимо Python в DS-проектах часто используют язык программирования R. R быстрее Python и имеет больше статистических и вычислительных библиотек. Но в этом материале мы будем говорить исключительно о библиотеках (пакетах) для Python, о которых стоит знать каждому, кто хочет добраться до профессиональных вершин Data Science.



Прежде чем переходить к обзору библиотек, остановимся на том, что это такое — «наука о данных», и на том, почему в этой сфере стоит пользоваться языком Python.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+24
Комментарии5

О кэшах в микроконтроллерах ARM

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

В предыдущей статье мы для ускорения графики на микроконтроллере в Embox применяли процессорный кэш. При этом мы использовали режим «write-through». Тогда мы писали о некоторых преимуществах и недостатках связанных с «write-through» режимом, но это был лишь беглый обзор. В этой статье я, как и обещал, хочу подробней рассмотреть типы кэшей в ARM микроконтроллерах, а также сравнить их. Конечно, все это будет рассмотрено с точки зрения программиста, и вдаваться в детали работы контроллера памяти в данной статье мы не планируем.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+29
Комментарии6

Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ

Время на прочтение10 мин
Количество просмотров175K
Последнее десятилетие в области компьютерных технологий ознаменовалось началом новой «весны искусственного интеллекта». Впрочем, ситуацию в индустрии в наши дни можно, наверное, охарактеризовать уже не как весну, а полноценное «лето ИИ». Судите сами, за последние неполные 10 лет только в области обработки естественного языка (Natural language processing, NLP) произошли уже две настоящие технологические революции. Появившаяся в результате второй из них модель GPT-3 произвела настоящий фурор не только в технологических медиа, но стала знаменитой далеко за пределами научного сообщества. Например, GPT-3 написала для издания «The Guardian» эссе о том, почему ИИ не угрожает людям. GPT-3 сочиняет стихи и прозу, выполняет переводы, ведёт диалоги, даёт ответы на вопросы, хотя никогда специально не училась выполнять эти задачи. До недавних пор все возможности GPT-3 могли по достоинству оценить лишь англоязычные пользователи. Мы в Сбере решили исправить эту досадную оплошность. И сейчас расскажем вам, что из этого получилось.


Источник изображения
Читать дальше →
Всего голосов 119: ↑114 и ↓5+155
Комментарии241

2. Математическое описание систем автоматического управления ч. 2.9 — 2.13

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

Лекции по курсу «Управление Техническими Системами», читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки», факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность.


Данные лекции только готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика приветствуется.


В предыдущих сериях:

1. Введение в теорию автоматического управления
2. Математическое описание систем автоматического управления 2.1 — 2.3
3. Математическое описание систем автоматического управления 2.3 — 2.8


В это части будут рассмотрены:

2.9. Использование обратных преобразований Лапласа для решения уравнений динамики САР (звена).
2.10. Весовая и переходная функции звена (системы).
2.11. Определение переходного процесса в системе (САР) (звене) через весовую и переходную функции.
2.12. Mетод переменных состояния.
2.13. Переход от описания переменных «вход-выход» к переменным состояния.


Попробуем применить, полученные знания на практике, создавая и сравнивая расчетные модели в разных видах. Будет интересно познавательно и жестко.



Читать дальше →
Всего голосов 9: ↑8 и ↓1+10
Комментарии19

Нескучный туториал по NumPy

Время на прочтение19 мин
Количество просмотров237K
Меня зовут Вячеслав, я хронический математик и уже несколько лет не использую циклы при работе с массивами…

Ровно с тех пор, как открыл для себя векторные операции в NumPy. Я хочу познакомить вас с функциями NumPy, которые чаще всего использую для обработки массивов данных и изображений. В конце статьи я покажу, как можно использовать инструментарий NumPy, чтобы выполнить свертку изображений без итераций (= очень быстро).

Не забываем про

import numpy as np

и поехали!
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии19

Мы опубликовали современные STT модели сравнимые по качеству с Google

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


Мы наконец опубликовали наш набор высококачественных пре-тренированных моделей для распознавания речи (т.е. сравнимых по качеству с премиум-моделями Google) для следующих языков:


  • Английский;
  • Немецкий;
  • Испанский;

Вы можете найти наши модели в нашем репозитории вместе с примерами и метриками качества и скорости. Мы также постарались сделать начало работы с нашими моделями как можно более простым — выложили примеры на Collab и чекпойнты для PyTorch, ONNX и TensorFlow. Модели также можно загружать через TorchHub.


PyTorch ONNX TensorFlow Качество Colab
Английский (en_v1) ссылка Открыть в Colab
Немецкий (de_v1) ссылка Открыть в Colab
Испанский (es_v1) ссылка Открыть в Colab
Читать дальше →
Всего голосов 27: ↑26 и ↓1+36
Комментарии24

Обновление для IDE EmBitz 1.11

Время на прочтение3 мин
Количество просмотров8.9K
На официальном форуме появилось обновление для IDE EmBitz 1.11. Оно включает в себя расширенный список поддерживаемых микроконтроллеров STM32, обновленные версии библиотек CMSIS, SPL, HAL и LL, а также текущую версию компилятора gcc-arm-none-eabi-9-2020-q2-update и GDB сервер EBlink, необходимый для прошивки и отладки микроконтроллеров.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии24

RED: Улучшение качества звука с помощью резервирования

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

Еще в апреле 2020 года Citizenlab сообщил о довольно слабом шифровании Zoom и заявил, что Zoom использует аудиокодек SILK. К сожалению, статья не содержала исходных данных, чтобы это подтвердить и дать мне возможность обращаться к ней в дальнейшем. Однако благодаря Натали Сильванович из Google Project Zero и инструменту трассировки Frida я смог получить дамп некоторых необработанных кадров SILK. Их анализ вдохновил меня взглянуть на то, как WebRTC обрабатывает звук. Что касается восприятия качества вызова в целом, больше всего на него влияет качество звука, поскольку мы склонны замечать даже небольшие сбои. Всего десяти секунд анализа было достаточно, чтобы отправиться в настоящее приключение – на поиски вариантов улучшения качества звука, обеспечиваемых WebRTC.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии0

Ускоряем неускоряемое или знакомимся с SIMD

Время на прочтение9 мин
Количество просмотров66K
Есть класс задач, которые нельзя ускорить за счёт оптимизации алгоритмов, а ускорить надо. В этой практически тупиковой ситуации к нам на помощь приходят разработчики процессоров, которые сделали команды, позволяющие выполнять операции на большим количеством данных за одну операцию. В случае x86 процессоров это инструкции сделанные в расширениях MMX, SSE, SSE2, SSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, AVX512.

В качестве «подопытного кролика» я взял следующую задачу:
Есть неупорядоченный массив arr с числами типа uint16_t. Необходимо найти количество вхождений числа v в массив arr.
Классическое решение, работающее за линейное время выглядит так:

int64_t cnt = 0;
for (int i = 0; i < ARR_SIZE; ++i)
    if (arr[i] == v)
        ++cnt;

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

------------------------------------------------------------
Benchmark                     Time           CPU Iterations
------------------------------------------------------------
BM_Count                   2084 ns       2084 ns     333079

Под катом я покажу как его ускорить в 5+ раз.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии95

С чего начать создание своей ракеты

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

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

Читать далее
Всего голосов 22: ↑20 и ↓2+28
Комментарии40

Информация

В рейтинге
556-й
Зарегистрирован
Активность