Ao vivo 18/11 · Turma 318 nov às 19:00 MSK — aula prática gratuita de agentes de IA · Turma 3 ao vivo começa 23/11Aula 18/11 →Turma 3 (23/11)
LançamentoAnálise · No radarHabr AI→ original

Claude Code encontrou um sensor que apitava pelo som de cinco dispositivos, com precisão de 40 cm

Num depósito com caixas fechadas, algo apitava de vez em quando, e procurar a origem à mão dava preguiça. O autor pediu ao Claude Code que montasse um aplicativo web: cinco dispositivos com microfone no navegador escutam a sala, alinham as gravações por meio de um chirp e triangulam o apito. Resultado: precisão de cerca de 40 cm e um detector de monóxido de carbono com as pilhas fracas.

Processado por IA de Habr AI; editado por Hamidun News
Claude Code encontrou um sensor que apitava pelo som de cinco dispositivos, com precisão de 40 cm
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
A base é o método BeepBeep, de 2007um chirp e o alinhamento das gravações
Dado-chave #2A troca a quente de módulos JS nos ouvintes deu liberdade de edição ao agente
Dado-chave #3É possível «dar ouvidos» a um agente via WebAudio e WebSocket sem entrada de áudio própria

Uma história doméstica conhecida: numa sala com caixas ainda fechadas após a mudança, de vez em quando algo apita. O som é raro, não dá para localizar de ouvido, e ninguém quer revirar tudo. O autor da nota original resolveu o problema como hoje se resolvem muitos pequenos problemas: entregou a tarefa ao Claude Code. O resultado se chama Beep Locator, e o interessante é menos o apito em si do que a forma como o trabalho foi dividido entre a pessoa e o agente.

Como funciona o Beep Locator

No notebook roda um servidor web em Python. Os demais dispositivos acessam a página por QR code ou link e se tornam ouvintes. No teste participaram dois iPads, um celular, um MacBook Pro e um Surface. Cada dispositivo obtém acesso ao microfone via WebAudio e mantém na memória os últimos 60 segundos de gravação. Um detector simples, baseado na transformada rápida de Fourier com filtro passa-altas, marca apitos suspeitos e os informa ao servidor.

Depois vem a parte principal. O servidor pede a um dos dispositivos que toque um chirp curto e solicita a cada ouvinte um trecho de gravação de aproximadamente 0,6 segundo antes do apito até 0,8 segundo depois do chirp. O chirp serve como ponto de referência comum: por ele as gravações de diferentes dispositivos são alinhadas, e fica visível quanto mais cedo o apito chegou a um microfone do que a outro. A partir dessa diferença de tempo calcula-se a posição no mapa.

A ideia o próprio Claude encontrou: um artigo de 2007, BeepBeep, sobre medir distâncias por som em celulares e PDAs comuns. Ele só precisa de um alto-falante, um microfone e um canal de comunicação. Na configuração, os dispositivos primeiro tocaram sons uns para os outros para determinar a posição relativa, mas o resultado foi ruim. Então foi adicionado um «modo aproximado»: os ícones são arrastados no mapa mais ou menos para onde estão os dispositivos, e o sistema depois refina as coordenadas.

Troca de código a quente e iterações com o agente

A solução mais prática aqui não tem a ver com acústica. Já na primeira etapa foi incluído nos ouvintes o método installModule(): via WebSocket, o servidor pode enviar a qualquer dispositivo um novo JavaScript, que é executado imediatamente. O motivo é prosaico: em alguns dispositivos o navegador pede novamente acesso ao microfone após cada recarga da página, e passar por todos os aparelhos manualmente a cada alteração seria um tormento.

Graças a isso, o agente podia mudar o comportamento dos «ouvidos» em tempo real, ler os registros de sons e reconfigurar o detector sem participação humana. O autor, em geral, ficava por perto e dava as tarefas em linguagem simples. Pediu para adicionar um modo de palmas para testar o sistema, marcações de tempo nos ícones, um registro com botão para reproduzir a gravação de cada dispositivo e um botão «Este é o apito misterioso». A marcação ajuda o sistema a reconhecer a frequência certa e a acompanhar justamente ela. Depois surgiram a função «Reposicionar dispositivos», sem reiniciar os ouvintes, e uma dica de onde colocar mais um microfone para refinar a posição em cerca de 12%.

O projeto foi iniciado num iPhone no Claude Code com o modelo Opus 5.5 e concluído num notebook com o novo Fable 5.2. É um bom exemplo de divisão de trabalho: a primeira sessão escreveu o problem.md e a base, e a segunda depurou o sistema já em ambiente real.

O que tirar disso

A ideia central do autor: é possível dar órgãos dos sentidos a um agente de programação mesmo que o modelo não os tenha. O Claude não tem entrada de áudio própria, mas sabe escrever e executar código que analisa o som de microfones alheios e ajustar esse código por conta própria. Um truque parecido foi contado no GitHub Universe: uma webcam era apontada para a tela de um dispositivo para que o agente visse se a atualização havia funcionado. Para o desenvolvedor, a conclusão é simples: se o agente é «cego», pense em que canal barato de retorno dar a ele (câmera, microfone, logs, capturas de tela), e ele começará a fechar sozinho o ciclo «alterei — verifiquei».

Há também ressalvas. É um experimento caseiro, não um instrumento de precisão: a precisão é de cerca de 40 cm numa única sala com cinco dispositivos, e sem esse resultado seria preciso revirar as caixas de qualquer forma. A calibração automática por sons funcionou mal, por isso foi necessária a disposição manual. Além disso, um mecanismo que executa código arbitrário nos clientes via WebSocket é conveniente para depuração, mas em rede alheia é uma brecha pronta. Só vale usar isso em ambiente confiável e durante o experimento.

História

Perguntas frequentes sobre a notícia

Como funciona o Beep Locator?

No notebook roda um servidor web em Python. Os demais dispositivos acessam a página por QR code ou link e se tornam ouvintes. No teste participaram dois iPads, um celular, um MacBook Pro e um Surface. Cada dispositivo obtém acesso ao microfone via WebAudio e mantém na memória os últimos 60 segundos de gravação. Um detector simples, baseado na transformada rápida de Fourier com filtro passa-altas, marca apitos suspeitos e os informa ao servidor. Depois vem a parte principal.

O que se sabe sobre Troca de código a quente e iterações com o agente?

A solução mais prática aqui não tem a ver com acústica. Já na primeira etapa foi incluído nos ouvintes o método installModule(): via WebSocket, o servidor pode enviar a qualquer dispositivo um novo JavaScript, que é executado imediatamente. O motivo é prosaico: em alguns dispositivos o navegador pede novamente acesso ao microfone após cada recarga da página, e passar por todos os aparelhos manualmente a cada alteração seria um tormento.

O que tirar disso?

A ideia central do autor: é possível dar órgãos dos sentidos a um agente de programação mesmo que o modelo não os tenha. O Claude não tem entrada de áudio própria, mas sabe escrever e executar código que analisa o som de microfones alheios e ajustar esse código por conta própria. Um truque parecido foi contado no GitHub Universe: uma webcam era apontada para a tela de um dispositivo para que o agente visse se a atualização havia funcionado.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
O que você acha?
Carregando comentários…