Sobre o projeto

tanchō (探鳥) é um aplicativo Android de observação de aves, criado para o Mudita Kompakt, que identifica pássaros pelo canto. Ele escuta pelo microfone e nomeia o que ouve totalmente offline, sem enviar nada para identificação externa. O reconhecimento é feito pelo BirdNET, executado no próprio telefone. O arquivo do modelo tem cerca de 39 MB e é baixado uma vez na primeira execução; depois disso, o aplicativo funciona sem conexão com a internet. Um segundo modelo, bem menor, restringe os candidatos com base na localização e na semana do ano, para que espécies que não possam estar presentes naquele local e época não sejam sugeridas. É para isso que a permissão de localização é usada, e ela pode ser desativada nas configurações. Cada foto de ave detectada traz dois botões: um abre a página da espécie no eBird e o outro abre o artigo na Wikipédia, no idioma configurado para os nomes das aves. Ambos abrem no navegador do usuário, e o aplicativo não busca nem armazena essas páginas. As detecções são guardadas em um banco de dados no telefone e podem ser visualizadas, exportadas ou excluídas dentro do aplicativo. O README aponta para um PRIVACY.md separado, que detalha o que é gravado, armazenado e enviado. O projeto é um fork do whoBIRD, de woheller69. É licenciado sob GPLv3, com as partes do upstream mantendo essa licença. Ele se baseia no framework BirdNET, de @kahst (CC BY-NC-SA 4.0), baixa modelos TFLite do BirdNET a partir do whoBIRD-TFlite (também CC BY-NC-SA 4.0, sem uso comercial), usa arquivos de rótulos do BirdNET sob GPLv3 com permissão do autor, e inclui exemplos do TensorFlow Lite, Zip4j e iirj (Apache 2.0). O ícone do inicializador deriva de uma fotografia CC0. A compilação é feita com `./gradlew assembleRelease`. Builds de lançamento exigem um keystore em `signing/`, que está no gitignore; sem ele, o build de lançamento gera um APK não assinado que não instala. Builds de depuração funcionam com a chave padrão de debug do Android. A distribuição é feita por sideload do APK, a partir da URL da versão mais recente do projeto, com um `.sha256` publicado junto a cada release para verificação. As atualizações podem ser gerenciadas automaticamente adicionando o repositório ao Obtainium. O ID do aplicativo é descrito como estável, então as atualizações são instaladas sobre as existentes, preservando configurações e dados armazenados.