Сонар из Музыкальной Колонки

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

Это «ж-ж-ж» неспроста

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

После того, как я раскритиковала Яндекс.Музыку, следуя своему принципу "Критикуя - предлагай" я решила накидать идей, куда бы я копала с музыкальным стримингом крупными блоками.
Почему именно Звук? Потому что у меня туда был собес и я думала про него)
Ещё потому что:
- Яндекс в последние года активно выпускает фичи ради фичей в своих продуктах,
- VK активно вызывает негатив насильственной политикой внедрения некачественных продуктов,
- МТС.музыку что-то забросили и там маленькая библиотека.

Вот в github:
https://github.com/Divetoxx/Piano
🎹 Основная философия: «Ритмическое дирижирование без ошибок»
Главное новшество этого фортепиано заключается в том, что пользователю никогда не нужно беспокоиться о неправильном воспроизведении нот.
Идеальная высота звука (Гц): Каждая частота и высота звука точно запрограммированы в плотные векторы нот. Математически невозможно сыграть неправильную ноту или допустить ошибку!
Время ваше: Время, интервалы и эмоциональный темп совершенно не ограничены. Нажимая на клавиатуру или мышь, ВЫ динамически создаете ритм и временную структуру. Вы не просто нажимаете на клавиши — вы дирижируете шедевром!
VoiceSwitch — открытое menu bar-приложение для Apple Silicon: одна глобальная клавиша запускает запись, GigaAM, Whisper, Qwen или Apple распознают речь локально, Qwen3-4B исправляет или сокращает результат, а приложение вставляет его в активное окно. В статье — архитектура Swift + Python worker, результаты теста четырёх движков на русском и смешанном аудио, ловушка macOS TCC и ссылка на beta.

Некоторые альбомы должны звучать как один длинный трек. Рассказываю, как это устроено в Kalinka Player.

Привет, Хабр! Мне принесли на доработку бомбезную электрогитару корейского производства из относительно недорогой линейки Signature Special от знаменитого бренда.
Несмотря на некоторый износ и проблемы с электроникой, которые мне пришлось устранить, инструмент оставил весьма приятное впечатление. Сейчас мы всё увидим и услышим.

Я свёл семь сервисов речевой аналитики для отделов продаж в одну таблицу и посчитал их по единой формуле. Повод был простой и немного злой: почти в каждом обзоре речевой аналитики на первом месте стоит тот, кто этот обзор и написал. Совпадение? А то.
Поэтому здесь всё наоборот, чем в вендорских топах. Сначала методика и формула, потом её изъяны, и только потом результат. Всё считается на калькуляторе, все цены с источниками. Ошибусь в цифрах, поймаете в комментариях.
Дальше по порядку: как я считал (чистая арифметика), изъяны методики (без честных оговорок нормальных сравнений не бывает) и итоги по рынку.

Задача формулировалась в одно предложение: робот должен сам звонить людям в WhatsApp, проигрывать голосовое приветствие, записывать ответ и присылать оператору расшифровку с вердиктом «да / нет / надо посмотреть руками».
Проблема в том, что официально это невозможно. У WhatsApp нет API для голосовых роботов: Business API умеет шаблонные сообщения, провайдеры на рынке умеют текстовые рассылки, голосовые звонки закрыты наглухо. Готового решения не существует ни за деньги, ни за большие деньги.
Зато существует официальное десктопное приложение, которое звонить умеет. И его можно водить за руку.
Это рассказ о том, что из этого вышло: с чего начиналось, какие подходы умерли по дороге, четыре слоя автоматизации — от CDP до виртуальных аудиокабелей — и один урок про производительность, который перечеркнул половину архитектуры уже на живых звонках.
Сразу оговорюсь: по отношению к правилам платформы это серая зона, и я не предлагаю это повторять. Мне здесь интересна чистая инженерия — как автоматизируется то, что автоматизировать не предполагалось. Ограничения и риски честно разберу в конце.
Кода будет много. Всё интересное в этом проекте живёт именно в деталях.

Ежегодно Библиотека Конгресса отбирает 25 звукозаписей, имеющие «непреходящую ценность» для американской культуры, чтобы поместить их в Национальный реестр аудиозаписей, хранящий разнообразие звукового наследия США. В мае 2026 года среди этих записей оказалось музыкальное оформление популярной видеоигры Doom, вышедшей в 1993 году, получив таким образом высочайшее признание как культурной ценности. Немногим позже, 16 июня того же года, автор этого ныне официально незабвенного музыкального произведения, Роберт «Бобби» Принс, покинул нас в возрасте 81 года.
Я сам игровой композитор и разработчик, отдавший этим занятиям уже три десятилетия, а по совместительству — цифровой археолог и автор научпопа в области истории компьютерных технологий, в особенности связанных со звуком. Кому же, как не мне, отдать дань памяти ушедшей легенде? Но миру вряд ли нужен ещё один запоздалый некролог с пересказом Википедии. Поэтому я изучил жизненный путь Роберта по немногочисленным доступным источникам, и теперь поделюсь собранным по крупицам собственным видением творчества и культурного наследия одного из титанов, на плечах которого стояли многие, и в их числе я сам.

На днях, после того, как припекло от Яндекс.Музыки, решила посмотреть, а что со Звуком? Поскольку ожидания были крайне низкими, то звук произвёл весьма положительное первое впечатление. Рассмотрела только web, ведь из AppStore их выпилили. Печаль — тк часть заявленных фичей доступна только в приложении (например, шазам) 🥲
К покупке я пока не готова, но посматривать на развитие стриминга точно буду!

Это третья статья серии о том, почему акустика, которая хорошо измеряется, может плохо звучать. В первой части мы выяснили, что АЧХ суммирует энергию не спрашивая, вовремя ли та пришла. Во второй — что комната добавляет к звуку копии и резонансы, и провели границу честности эквалайзера: ниже частоты Шрёдера он чинит физику, выше — только график.
Сегодня отправимся в самые низкие частоты спектра, где пересекаются темы предыдущих статей. Бас — это частоты, на которых колонка ещё не закончилась, а комната уже началась, и где одно-единственное конструктивное решение — каким образом нагрузить динамик — определяет характер звука сильнее, чем всё остальное железо вместе взятое.
После перестановки и наведения порядка в комнате моя система впервые за годы зазвучала собранно — и, как это всегда бывает, новая расстановка только подчеркнула фундаментальную недостачу. Описать словами мое разочарование весьма непросто, ведь там, где бас ещё оставался — у самой настройки порта, — с ним вдобавок было что-то не так. Если раньше баса было много, но он был абсолютной кашей, то теперь стало отчетливо слышно, как бочка ударника набирала вес, но теряла резкость удара: щелчок и тело ноты будто расходились во времени.
Кривая АЧХ там, у частоты настройки, ничего дурного не показывала — а слух показывал; у меня уже было правило на этот случай, ещё с прошлых стараний: если график в порядке, а слух недоволен, надо смотреть на время.

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

Чтобы дать команду умной колонке, не обязательно говорить активационное слово «Алиса»: есть быстрые команды — короткие фразы, с помощью которых можно управлять музыкой, громкостью или умным домом. Например, чтобы переключить трек, достаточно просто сказать «дальше», а чтобы убавить звук — «тише». Весь список команд можно посмотреть в настройках вашего аккаунта в приложении «Дом с Алисой».
Быстрые команды удобнее не только пользователям, но и системе: запросы через слово «Алиса» требуют обращения к модели распознавания речи ASR, которой из‑за её размеров необходимы серверные вычислительные ресурсы, а модель быстрых команд устроена гораздо компактнее. Она работает прямо на устройстве, а значит, ограничена вычислительными ресурсами самой колонки — её CPU и оперативной памятью. Из‑за этого модель нельзя сильно увеличить: ей приходится оставаться компактной, зато запрос обрабатывается быстрее.
За распознавание быстрых команд отвечает нейросеть. Её архитектура почти полностью совпадает с решением для наушников Яндекс Дропс, которое подробно описал в своей статье Григорий Афанасенко. Разница в основном в масштабе: наша модель весит всего от 0,5 до 1,5 МБ в зависимости от железа конкретного устройства.
Со временем перед нами встала задача добавить к базовым командам «лайк» и «дизлайк» для управления треками, а также команды «включи блютус» и «выключи блютус». Особенно это актуально для Станции Стрит, которую часто берут с собой на природу, где нет интернета. Но главным было гарантировать абсолютное отсутствие ухудшения на уже запущенных командах и не слишком сильно увеличивать потребление ресурсов на устройстве.

У меня от трёх до пяти созвонов в день, почти все в браузере: Meet, Яндекс Телемост, ktalk, реже всего Zoom. Детали встреч мне нужны в тексте, иначе договорённости расползаются. Писал я звонки через OBS с захватом экрана, и на самих звонках началось веселье: звук временами жёстко квакал, всё чуть-чуть подвисало. Причину до конца не выяснял, моё предположение - процессор зажирался захватом и перебивал сам разговор; ktalk и браузер тут ни при чём. А экран, как потом дошло, мне вообще был не нужен.
Дальше вторая серия. Расшифровку я гонял своими Python-скриптами: конвертация → транскрибация → диаризация (разметка, кто когда говорил). На встрече с пятью участниками диаризация расставляла голоса крайне плохо, половину фраз всё равно восстанавливал по памяти.
Пошёл искать вариант, чтобы запись не мешала звонку, результат был приличный и всё крутилось локально: не хотелось ни отдавать записи в облако, ни платить подписку за минуты. Нашёл платный Audio Hijack, он подкупил лёгкостью и простотой настройки. Потом узнал, что на M-чипе быстрее всего у меня отрабатывает mlx-whisper на MLX: веса large-v3-turbo с Hugging Face, инференс на GPU Mac. Это архитектура Whisper, но рантайм — пакет mlx-whisper и бинарь mlx_whisper, не pip install openai-whisper и не репозиторий openai/whisper. Так собрался стек: Hijack пишет один mp3, mlx_whisper делает VTT, pyannote раскладывает по SPEAKER_XX. На 56-минутном звонке транскрипция заняла около пяти минут. Платный только Hijack — разовая лицензия, без подписки (цену смотрите на сайте Rogue Amoeba). Скрипты выложил в mac-call-transcribe под MIT. Ниже сборка, замеры с двух реальных звонков и грабли; повторяется на любом Mac с M-чипом.

Собрал ассистента встреч, который работает целиком на моём маке: локальный STT, живая диаризация голосов, мгновенные ответы на вопросы собеседника и самообновляемый граф знаний в Obsidian. Внутри — грабли: ловушка обращений при расстановке имён, 23 «голоса» из-за осколков кластеризации, num_ctx и бюджет RAM в Ollama. Код открыт, Apache 2.0.

Меня зовут Саша Сойфер — я физик‑океанолог, работала на обоих полюсах, жила на Шпицбергене, писала статьи, делала замеры в тропиках и в северных крошках‑озерах на моторке. В общем, много времени провела в любовном изучении природы.
Параллельно с этим я всю жизнь увлекалась музыкой, и, работая с измерениями рек, вдруг подумала, что будет круто выявить звук гидрологических данных. Почему именно их?
Уровень реки — первичная метрика её «силы», от которой будет зависеть её напор, перенос вещества и так далее. Во‑первых, обычно у уровня рек есть выраженная сезонность, и это яркая точка пересечения с акустикой, так как звук синтезируется через периодические гармоники. При этом важно, что уровень реки меняется сильно и достаточно быстро: помимо четкого годового хода, он реагирует на атмосферные условия. Это легко сложилось для меня в цельную историю: озвучив архивные данные, можно сравнить, как прошёл каждый год, какой тренд в целом в жизни реки и какие краткосрочные события с ней происходили.
Вдобавок, в России обширная сеть гидрологических постов — это даёт простор для построения художественного высказывания.
Уже проговорилась, что из доступных гидрологических параметров для создания звука я выбрала уровень рек. Чтобы не слить данные, я работала не с абсолютными значениями, а относительными и немного их аугментировала — так, что это не оказывает влияния на звук, но не позволяет восстановить точные значения. (; Для проекта я выбрала Енисейский бассейн.

В 90-е и начале нулевых производитель телефонов Nokia был самым известным в мире: его модели считались хитами продаж, а мелодия Nokia Tune стала одним из популярных аудиобрендов. В нашей статье — подробнее об этом звуке и о том, как он регистрировался в разных странах мира. Спойлер: не без приключений.

Как устроен KalinkaPlayer: модульный бэкенд, нативный аудиоплеер, пайплайн метаданных и мобильное управление в одном проекте.

Описываю настроение словами — и Raspberry Pi находит подходящие треки в моей коллекции, полностью локально, без облака и подписки. Как это устроено внутри.
В этом тексте я написал про то как настроить I2S трансивер работать в полнодуплексном режиме (Full Duplex). Показал как настроить на микроконтроллере STM32F407VG одновременное воспроизведение и запись встречного аудио потока по интерфейсу I2S.