Um detector que não sabe dizer o que perdeu.
A baleia-fin canta num tom muito grave, um pulso em torno de 20 Hz, perto do limite do que o ouvido humano alcança. Para achar esses cantos em horas de gravação, o método padrão é comparar o registro com uma chamada modelo e guardar os trechos parecidos o bastante.
Funciona e é rápido. Mas é mudo sobre as próprias perdas. Se uma chamada ficou de fora porque o limite estava um degrau alto, porque a borda do filtro a cortou ou porque um ajuste de resolução a suavizou, nada na saída avisa.
Num estudo de população, isso se dilui nas estatísticas. Mas no monitoramento exigido durante levantamentos sísmicos no mar ou instalação de eólicas offshore, a pergunta do regulador é justamente a que o detector não responde: vocês deixaram passar alguma?
Numa festa barulhenta, escutar só a voz grave.
Imagine procurar a voz de um amigo muito grave numa festa cheia. Um jeito esperto é "tapar" os agudos e escutar só a faixa grave. Você ouve menos coisa, mas a voz dele continua lá inteira, porque ela nunca esteve nos agudos.
Filtrar a faixa de frequência de um sinal é exatamente isso. E tem uma propriedade matemática que torna o truque seguro: jogar fora uma parte do sinal só pode deixar dois trechos mais parecidos do que eram, nunca menos. Se um trecho já parece pouco com a chamada olhando só a faixa grave, ele parece menos ainda olhando tudo.
É isso que permite descartar trechos com segurança: se nem na faixa da chamada ele chega perto do modelo, pode ser descartado sem risco. Não com alta probabilidade. Sempre. A busca por parecido que faz isso com garantia é a nossa ferramenta SIEVE.
d² = ‖na faixa(q) − na faixa(x)‖² + ‖fora(q) − fora(x)‖²A segunda parcela não é conhecida, mas fica presa dos dois lados por um único número guardado por janela: quanto da energia daquela janela está fora da faixa. Com esse número, a distância na faixa vira um piso garantido da distância real.
Duas condições tornam isso verdade, e fora delas a garantia não vale: ela é sobre a distância no espectro declarado, não sobre a forma de onda crua; e só vale para selecionar faixas numa base de frequências bem comportada (ortonormal). Um filtro passa-faixa comum aplicado no tempo não tem essa propriedade.
928 mil janelas, 95% descartadas com prova.
O dado. Um conjunto público e rotulado de gravações de baleia-fin feitas por fibra óptica transformada em microfone (DAS) no cabo OOI South, na costa de Pacific City, Oregon. Pegamos 1.563 trechos do cabo entre 15 e 65 km da costa, cortamos em janelas de 0,70 segundo, 928.422 janelas ao todo, e usamos como consulta a chamada modelo dos próprios autores (14 a 24 Hz, 0,70 s).
O mesmo critério, com e sem prova. O critério dos autores é "parecido o bastante com a chamada" (correlação de pelo menos 0,2). Com janelas normalizadas, isso vira, sem aproximação nenhuma, uma busca por distância. Não é o nosso critério contra o deles: é o critério deles com prova de que nada ficou de fora.
O resultado. Escutando só a faixa da chamada, a busca descartou 95,26% das janelas em 27 milissegundos, e a resposta bateu exatamente com a varredura completa. Tínhamos declarado, antes de rodar, que abaixo de 95% a ideia não pagaria o próprio custo. Passou raspando, e dizemos isso assim. Com critérios mais exigentes, o descarte passa de 99,9%.
| Filtro (mesmas 14 dimensões) | Dado descartado | Tempo | Bate com a varredura completa |
|---|---|---|---|
| Faixa da chamada (a física) | 95,26% | 27 ms | sim |
| Subespaço escolhido por PCA | 8,54% | 145 ms | sim |
| 16 janelas de referência (pivôs) | 0,15% | 183 ms | sim |
A estatística escutou o navio, não a baleia.
A diferença entre escutar a faixa da chamada e deixar a PCA escolher foi de 11 vezes no descarte. O motivo merece ser dito sem rodeio.
A PCA é um método estatístico que acha as direções onde o sinal mais varia. Ela fez exatamente isso. Só que num registro de fibra no mar, o que mais varia é ruído de navio, do oceano e do próprio equipamento. O canto da baleia é fraco por natureza e quase não pesa na variação total. A PCA gastou 95% das suas dimensões em frequências onde o animal não está.
O aviso generaliza. Métodos que resumem o sinal sozinhos, sem saber o que se procura (PCA, autoencoders, representações aprendidas no registro cru), otimizam outra coisa que não a detecção. Com sinal forte, a diferença some. Com um canto fraco sob ruído largo, ela é de uma ordem de grandeza. Se o seu processo comprime o sinal antes de detectar, confira onde essas dimensões aprendidas caem em relação à faixa da sua espécie.
Onde a primeira versão estava errada.
Depois de publicar a primeira versão desta análise, rodamos duas medições que deveríamos ter rodado antes. As duas contradizem parte do que estava escrito, e por isso ficam aqui, ao lado do resultado.
O filtro sozinho teria falhado
Usando só a distância dentro da faixa (a técnica de livro-texto, de 1994), a busca descarta apenas 1,87% do dado no critério dos autores. O que faz o trabalho é o número extra guardado por janela, a energia fora da faixa: com ele, o descarte vai a 95,26%. O motivo é a assimetria: a chamada tem quase toda a energia dentro da faixa, e uma janela típica da fibra tem quase toda fora.
A garantia protege um passo que não sangrava
Comparamos o critério que certificamos com o que um bioacústico de fato roda (parecido na faixa já filtrada). O nosso conjunto é sempre um pedaço do dele: zero janelas só nossas, e o dele tem cerca de 13 vezes mais. Quem filtra a faixa não perdia chamadas nesse passo. As perdas acontecem depois: na escolha dos picos, no limite e em outros filtros. Sugerimos proteção num ponto que não sangrava, e isso estava errado.
| Limite de semelhança | Só a distância na faixa (1994) | Com a energia fora da faixa | Critério declarado | Critério do praticante | Só no nosso |
|---|---|---|---|---|---|
| 0,20 | 1,87% | 95,26% | 13.709 | 183.841 | 0 |
| 0,30 | 6,47% | 99,27% | – | – | – |
| 0,50 | 72,43% | 99,94% | 366 | 20.054 | 0 |
O que sobrevive é mais estreito e ainda vale dizer: filtrar a faixa pode ser tornado provadamente completo a custo desprezível, e o número extra por janela faz a busca descartar o bastante para valer a pena. Se isso importa para você depende de onde acontecem as perdas que o preocupam. Pela evidência que temos, elas acontecem depois deste passo.
Um termo a menos de incerteza.
O uso para o regulador é evidente. O que mais nos interessa é a estimativa de quantas baleias existem.
Estimar população a partir do som exige saber a chance de detectar um canto. Hoje essa chance mistura duas coisas diferentes: a física (como o som se propaga, a posição do animal, o ruído do mar) e o algoritmo (o que o detector deixou escapar). Elas costumam ser calibradas juntas.
Se a perda do algoritmo é provadamente zero em relação ao critério declarado, as duas se separam. Sobra só a parte física, que a comunidade de acústica já sabe modelar. Não é uma estimativa melhor: é uma fonte de incerteza a menos que ninguém precisava ter quantificado no escuro.
O intervalo de frequências em que o canto acontece: aqui, de 14 a 24 Hz. Filtrar é escutar só esse intervalo.
Uma busca por parecido que devolve todas as janelas que satisfazem o critério declarado, com garantia matemática, não com alta probabilidade.
Um pedaço curto do registro (aqui, 0,70 segundo de um trecho do cabo). A busca compara cada janela com a chamada modelo.
Onde isso pode estar errado.
Não validamos biologicamente
O limite de 0,2 é do processo dos autores, que inclui um filtro que não replicamos. No nosso preparo ele aceita 13.709 janelas pelo registro todo, enquanto a anotação marca uma chamada. Provamos completude em relação a um critério declarado, não acerto biológico.
Sem medida de acerto contra anotações
O conjunto foi feito para estimar volume de fonte e tem três anotações no total, uma por cabo. Ótimo para o propósito dele, insuficiente para avaliar detector.
Só o pulso de 20 Hz
Não testamos distinguir espécies, apenas a presença do pulso da baleia-fin.
Uma rodada que deu zero
Uma rodada anterior não achou janela nenhuma: o sinal cru da fibra é dominado por uma deriva muito lenta. Acrescentamos um filtro a partir de 5 Hz, bem abaixo da faixa da chamada, e declaramos isso antes de olhar o resultado.
O que falta para virar resultado de detecção, e não só de eficiência: um conjunto com muitas chamadas anotadas, contra o qual o acerto possa ser medido. Candidatos que olhamos: a biblioteca antártica de vocalizações de misticetos (~1.880 horas anotadas, incluindo o pulso de 20 Hz) e os conjuntos do DCLDE. Se você trabalha com monitoramento acústico, gostaríamos de saber qual usaria, e onde esta análise está errada: andrey@stickybit.com.br.
← Telemetria certificada · stickybit.com.br
- Fibra (DAS): Bouffaut et al., Distributed Acoustic Sensing fin whale labeled dataset for level estimations, Zenodo 10.5281/zenodo.15008561 (CC-BY-4.0).
- Cabo e registro: Wilcock et al., Distributed acoustic sensing recordings of low-frequency whale calls and ship noise offshore Central Oregon, JASA Express Letters 3, 026002 (2023).
- Chamada modelo, faixa e limite conforme documentado pelos autores do conjunto: 14–24 Hz, 0,70 s, correlação normalizada ≥ 0,2.
- Técnica de livro-texto para buscas com piso de distância: Faloutsos et al. (GEMINI, 1994).
- Busca: SIEVE. Toda configuração aqui foi conferida contra a varredura completa; a garantia é propriedade do programa, não estatística medida. Demonstrações: a faixa vira prova · onde a surpresa crua não basta.