Как стать автором
Обновить
94
0.3

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

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

Почти все, что вы хотели знать про плавающую точку в ARM, но боялись спросить

Время на прочтение10 мин
Количество просмотров28K
Привет, Хабр! В этой статье я хочу рассказать про работу с плавающей точкой для процессоров с архитектурой ARM. Думаю, эта статья будет полезна прежде всего тем, кто портирует свою ОС на ARM-архитектуру и при этом им нужна поддержка аппаратной плавающей точки (что мы и делали для Embox, в котором до этого использовалась программная реализация операций с плавающей точкой).

Итак, приступим.
Читать дальше →

Анализ аудио. Идентификация голоса

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

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

Перед нашей командой стояла задача проанализировать большое число телефонных звонков от клиентов, с целью выявления фактов псевдодоверительного управления, т.е. тех случаев, когда один и тот же человек представляет по телефону интересы нескольких клиентов. Суммарный объем аудиоданных составлял более 500Гб, а общая продолжительность 445 дней (11 тыс. часов). Естественно, прослушать все записи силами нескольких человек невозможно, поэтому решением задачи мы видели автоматическую кластеризацию похожих голосов с последующим анализом полученных групп.

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

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

Читать далее

Взять и заняться цифровой обработкой сигналов — какие библиотеки стоит попробовать в деле

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

В прошлый раз мы рассказали о библиотеках для аудиосинтеза на C++. Сегодня поговорим об альтернативных инструментах, которые заточены под работу с объемным звуком и подходят для коррекции акустики помещения, — библиотеках CamillaDSP и DaisySP, а также фреймворке Spatial Audio.

Читать далее

Типы ВЧ разъёмов и способы согласования КПП

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

Прошлая моя статья вызвала обсуждения и вопросы в духе "а что можно сделать, чтобы работало лучше?" и "а почему вы не использовали другой разъём/почему никак не подсогласовали". Отвечаю: прошлая статья была ответом на результаты эксперимента одного коллеги, который взял слишком короткую платы и сделал выводы, что всё работает до 10 ГГц. Поэтому я стремилась максимально точно повторить его эксперимент.

В этой статье речь пойдёт о разных конструкциях коаксиальных разъёмов на примере типа SMA. Будут показаны примеры перфоманса, а также предложен метод оценки качества перехода "разъём-плата".

переход в мир разъёмов

Попытка использовать Raspberry Pi 4 в качестве десктопа. Часть 2, Ubuntu

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

В первой части была рассмотрена возможность использования Raspberry Pi 4 в качестве десктопа с установленной «родной» операционной системой Raspbian. Но как известно, с недавних пор в Ubuntu v20.10 Groovy Gorilla имеется официальная поддержка Raspberry Pi 4, и как было заявлено, Raspberry Pi теперь для этой версии «first-class citizen».



Что из этого получилось и насколько «first class» соответствует действительности, подробности под катом.
Читать дальше →

Анализ открытых архитектур систем авионики

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

Сегодня я публикую перевод доклада «An Examination of Open System Architectures for Avionics Systems– An Update» сделанного Joyce L. Tokar, PhD, Pyrrhus Software, LLC, в марте 2017.

Признавая необходимость доступных и эффективных решений для развития систем авионики, Министерство обороны США (Department of Defense, DoD ) в указаниях по повышению эффективности военных расходов (Better Buying Power 3.0, BBP), Инструкции 5000.02 и Руководстве по оборонным закупкам (Defense Acquisition Guidebook, DAG) призывает к использованию решений на базе Систем с отрытой архитектурой (Open System Architecture, OSA ). Цели руководства и указаний - избежать привязки к одному поставщику, сделать доступными развитие возможностей и /продвижение инноваций. В настоящее время осуществляются несколько инициатив по разработке стандартов OSA для использования в системах военной авионики. В этой статье будут рассмотрены три таких направления: Управление беспилотными системами (UxS ), Архитектура сегмента управления (UCS ), инициатива Открытые системы управления полетом (Open Mission Systems, OMS ) и реализация Перспективной среды авиационных бортовых систем (FACE​) выполненная открытой группой (Open Group). Эта статья начнется с уточнения определения систем с открытой архитектурой в понимании Министерства обороны США. Далее будет краткое описание этих трех стандартов OSA, мероприятий, которые проводятся в соответствии с указаниями Министерства обороны США. Документ затем представит анализ этих OSA на основе рекомендаций Министерства обороны США. И наконец, в документе будет обобщено состояние этих OSA и даны рекомендации для дальнейшей работы.

Читать далее

Библиотеки для цифровой обработки сигналов на C++

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

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

Подобрали три библиотеки на C++ для звукового синтеза.

Читать далее

Книги о цифровой обработке сигналов и звуковом синтезе

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

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

Читать далее

Модели глубоких нейронных сетей sequence-to-sequence на PyTorch (Часть 2)

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

Во втором разделе учебных материалах о моделях sequence-to-sequence с использованием PyTorch и TorchText мы будем реализовывать модель из работы Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation. Эта нейронная сеть позволит достичь лучшей точности при использовании только однослойной RNN как в кодере, так и в декодере.

Читать далее

3.8 Инерционно-интегрирующее звено (интегрирующее звено с замедлением)

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

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

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

1. Введение в теорию автоматического управления.
2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13.
3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ (РЕГУЛИРОВАНИЯ).
3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ.
3.2. Типовые звенья систем автоматического управления (регулирования). Классификация типовых звеньев. Простейшие типовые звенья.
3.3. Апериодическое звено 1–го порядка (инерционное звено). На примере входной камеры ядерного реактора
3.4. Апериодическое звено 2-го порядка
3.5. Колебательное звено.3.3. Апериодическое звено 1–го порядка (инерционное звено). На примере входной камеры ядерного реактора
3.6. Инерционно-дифференцирующее звено.
3.7. Форсирующее звено.

Тема сегодняшней статьи Инерционно-интегрирующее звено (интегрирующее звено с замедлением) будет интересно позновательно и жестко.

Читать далее

DSP-процессоры: назначение и особенности

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

Большинство из нас в повседневной жизни постоянно сталкивается с различными компьютерными системами: процессорами общего назначения (general-purpose, в основном x86) в ноутбуках и рабочих станциях, их мощными многоядерными версиями в датацентрах, мобильными процессорами в телефонах, многочисленными контроллерами в бытовой технике и на транспорте. Но помимо всех упомянутых вариантов есть ещё одно важное, хотя и редко упоминаемое семейство: цифровые сигнальные процессоры, чаще именуемые Digital Signal Processors или просто DSP.

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

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

Читать далее

Вебинар «Вычисляем на видеокартах. Технология OpenCL»

Время на прочтение2 мин
Количество просмотров2.5K
22 июня в 18.30 (Мск) Яндекс.Практикум проведет открытый вебинар «Вычисляем на видеокартах. Технология OpenCL». На вебинаре расскажем, как использовать видеокарту в качестве полноценного вычислительного устройства, мощности которого чаще всего простаивают.

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



Для кого?


  • Для программистов, которые хотят освоить новую технологию и кардинально улучшить производительность программ
  • Для учёных, которым не хватает вычислительных мощностей для решения своих научных задач
  • Для всех, кому интересно, почему видеокарты завоевали мир и в чём секрет успешного майнинга

В программе вебинара

Читать дальше →

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

Время на прочтение7 мин
Количество просмотров31K
Ниже дан перевод статьи
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, что делает метод целесообразным для применения в реальном времени. Этот метод был проверен на нескольких записях с разным уровнем шума и сравнивался с недавно преложенными методами. Эксперименты показали удовлетворительные результаты при разных уровнях шума.
Читать дальше →

Произвольное число аргументов любых типов на C11 и выше с помощью _Generic и variadic макросов

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

В Си стандарта 2011 года добавили небольшую возможность "перегрузки" функций с помощью макроса. (Generic selection) Мне, очень интересно стало написать какую-нибудь функцию, которая максимально использовала бы эту возможность

Задумка: написать (макро) функцию print, которая выводит через пробел все переданные в нее аргументы. Звучит невероятно для Си, где обычно указывают тип принимаемого аргумента одной буквой в имени, и явно указывают число переданных аргументов. Но с джейнериками из C11 это возможно

Читать далее

Свод правил по работе с целыми числами в C/C++

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

В основу статьи легли мои собственные выработанные нелегким путем знания о принципах работы и правильном использовании целых чисел в C/C++. Помимо самих правил, я решил привести список распространенных заблуждений и сделать небольшое сравнение системы целочисленных типов в нескольких передовых языках. Все изложение строилось вокруг баланса между краткостью и полноценностью, чтобы не усложнять восприятие и при этом отчетливо передать важные детали.
Читать дальше →

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

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

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

SIP-телефон c GUI на STM32F7

Время на прочтение16 мин
Количество просмотров8.3K
Был один из короновирусных вечеров проводимых мной в самоизоляции. На столе лежала плата STM32F769I-Discovery. Я посмотрел на нее и подумал, ведь это же смартфон. Есть экран c тачскрином 800x480, есть аудио интерфейс, есть сетевой интерфейс, пусть даже и не беспроводной. Все это основано на микроконтроллере, поэтому более надежно с точки зрения температурных режимов. И имеет меньшее потребление. Не хватает только программного обеспечения. Конечно, никакой Android даже близко не встанет на данную плату. И я решил попробовать насколько быстро требуемый для телефона функционал может быть разработан под данную плату на Embox.

Как удалить «неудаляемые» приложения со смартфона

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


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →

О специальных макро в ассемблере

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

Много лет назад американским специалистом Гарри Килдэллом (Gary Kildall) в рамках создания системы программирования для персональных компьютеров был разработан транслятор с языка ассемблера для процессора Intel 8086, который он назвал RASM-86 (Relocating ASseMbler). Этот во многом типичный для своего времени продукт имел особенность: он позволял, не меняя транслятора, добавлять описания новых команд процессора с помощью специальных макросредств.

Автор статьи, используя и развивая этот транслятор, успешно применял данные средства по мере появления новых поколений процессоров. Конечно, иногда и сам транслятор требовал ряда доработок, например, при переходе на архитектуру IA-32, а затем и на x86-64 (IA-32e). Тем не менее, изначально заложенная идея позволила легко продолжать эволюцию транслятора до настоящего времени. Некоторые итоги этой работы рассматриваются далее.

Читать далее

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

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

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

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

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

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

Читать далее

Информация

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