Claude Code нашёл пищащий датчик по звуку с пяти гаджетов с точностью до 40 см
В кладовке с нераспакованными коробками что-то периодически пищало, и искать источник вручную было лень. Автор попросил Claude Code собрать веб-приложение: пять устройств с браузерным микрофоном слушают комнату, по чирпу выравнивают записи и триангулируют писк. Итог — точность около 40 см и найденный датчик угарного газа с севшими батарейками.
AI-обработка оригинала Habr AI; редакция Hamidun News
Знакомая бытовая история: в комнате с неразобранными после переезда коробками время от времени что-то пищит. Звук редкий, на слух не локализуется, а перебирать всё подряд не хочется. Автор оригинальной заметки решил задачу так, как сегодня решают многие мелкие проблемы: поручил её Claude Code. Результат называется Beep Locator, и интересен он не столько самим писком, сколько тем, как устроена работа человека и агента.
Как работает Beep Locator
На ноутбуке запускается веб-сервер на Python. Остальные устройства заходят на страницу по QR-коду или ссылке и становятся слушателями. В тесте участвовали два iPad, телефон, MacBook Pro и Surface. Каждое устройство через WebAudio получает доступ к микрофону и держит в памяти последние 60 секунд записи. Простой детектор на быстром преобразовании Фурье с фильтром высоких частот отмечает подозрительные писки и сообщает о них серверу.
Дальше начинается главное. Сервер просит одно из устройств проиграть короткий чирп, а у каждого слушателя запрашивает фрагмент записи примерно от 0,6 секунды до писка до 0,8 секунды после чирпа. Чирп служит общей точкой отсчёта: по нему записи с разных устройств выравниваются, и становится видно, насколько раньше писк дошёл до одного микрофона, чем до другого. По разнице времени и считается положение на карте.
Идею Claude нашёл сам, это статья BeepBeep 2007 года про измерение расстояний по звуку на обычных телефонах и КПК. Ей нужны только динамик, микрофон и канал связи. Для настройки устройства сначала проигрывали друг другу звуки, чтобы определить взаимное расположение, но получалось плохо. Тогда добавили «грубый режим»: значки перетаскиваются на карте примерно туда, где стоят устройства, а система потом уточняет координаты.
Горячая подмена кода и итерации с агентом
Самое практичное решение здесь не про акустику. Ещё на первом этапе в слушателей заложили метод installModule(): через WebSocket сервер может отправить на любое устройство новый JavaScript, и тот сразу выполнится. Причина прозаична: на некоторых устройствах браузер заново спрашивает доступ к микрофону после каждой перезагрузки страницы, и обходить все гаджеты руками после каждой правки было бы мукой.
Благодаря этому агент мог менять поведение «ушей» прямо на лету, читать журналы звуков и перенастраивать детектор без участия человека. Сам автор в основном сидел рядом и ставил задачи простым языком. Он попросил добавить режим хлопков, чтобы проверить систему, метки времени у значков, журнал с кнопкой воспроизведения записи с каждого устройства и кнопку «Это загадочный писк». Пометка помогает системе узнавать нужную частоту и следить именно за ней. Дальше появились функция «Переставить устройства» без перезапуска слушателей и подсказка, куда поставить ещё один микрофон, чтобы уточнить положение примерно на 12%.
Проект начали на iPhone в Claude Code с моделью Opus 5.5, а доводили на ноутбуке с новой Fable 5.2. Это хороший пример разделения труда: первая сессия написала problem.md и основу, вторая отлаживала систему уже в живой среде.
Что из этого вынести
Главная мысль автора: кодинг-агенту можно дать органы чувств, даже если у модели их нет. Своего аудиовхода у Claude нет, но он умеет писать и запускать код, который анализирует звук с чужих микрофонов, и сам подстраивает этот код. Похожий приём рассказывали на GitHub Universe: веб-камеру направляли на экран устройства, чтобы агент видел, сработало ли обновление. Для разработчика вывод простой: если агент «слепой», подумайте, какой дешёвый канал обратной связи дать ему (камера, микрофон, логи, скриншоты), и он начнёт сам замыкать цикл «изменил — проверил».
Есть и оговорки. Это домашний эксперимент, а не точный инструмент: точность около 40 см в одной комнате с пятью устройствами, и без этого результата пришлось бы всё равно перебирать коробки. Автоматическая калибровка по звукам отработала слабо, поэтому понадобилась ручная расстановка. Кроме того, механизм выполнения произвольного кода на клиентах по WebSocket удобен для отладки, но в чужой сети это готовая дыра. Использовать такое стоит только в доверенном окружении и на время эксперимента.
- 12 нояб. 2026 г.Дженсен Хуанг ушёл с поста CEO Nvidia: компания потеряла $1,4 трлн за две недели
- 12 нояб. 2026 г.Claude in Chrome требует разрешать каждый клик на сайтах с категорией 3
- 12 нояб. 2026 г.AWS Quick получил шесть агентов для продактов: от жалоб клиентов до спеки
- 12 нояб. 2026 г.Anthropic с 12 ноября закрывает Claude для компаний России, даже с юрлицом за рубежом
Вопросы и ответы по материалу
Что известно по теме: как работает Beep Locator?
На ноутбуке запускается веб-сервер на Python. Остальные устройства заходят на страницу по QR-коду или ссылке и становятся слушателями. В тесте участвовали два iPad, телефон, MacBook Pro и Surface. Каждое устройство через WebAudio получает доступ к микрофону и держит в памяти последние 60 секунд записи. Простой детектор на быстром преобразовании Фурье с фильтром высоких частот отмечает подозрительные писки и сообщает о них серверу. Дальше начинается главное.
Что известно по теме: горячая подмена кода и итерации с агентом?
Самое практичное решение здесь не про акустику. Ещё на первом этапе в слушателей заложили метод installModule(): через WebSocket сервер может отправить на любое устройство новый JavaScript, и тот сразу выполнится. Причина прозаична: на некоторых устройствах браузер заново спрашивает доступ к микрофону после каждой перезагрузки страницы, и обходить все гаджеты руками после каждой правки было бы мукой.
Что известно по теме: что из этого вынести?
Главная мысль автора: кодинг-агенту можно дать органы чувств, даже если у модели их нет. Своего аудиовхода у Claude нет, но он умеет писать и запускать код, который анализирует звук с чужих микрофонов, и сам подстраивает этот код. Похожий приём рассказывали на GitHub Universe: веб-камеру направляли на экран устройства, чтобы агент видел, сработало ли обновление.
Соберите рабочего ИИ-агента или сервис своими руками без ручного кода
В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.