EchoTrail: 보이지 않는 새 가이드 — 트레일용 오프라인 온디바이스 새소리 분류기
요약
EchoTrail은 오프라인 환경에 최적화된 온디바이스 AI 새소리 분류 앱입니다. 클라우드 연결 없이도 녹음된 소리를 현장에서 즉시 분석하고, 참고 호출과 비교하며 관찰 단서를 제공합니다. 사용자가 자연에 몰입할 수 있도록 설계되어 야외 활동의 경험을 개선하는 데 초점을 맞추었습니다.
핵심 포인트
- 완전 오프라인 작동: 백컨트리 환경에서 클라우드 의존성을 제거했습니다.
- 온디바이스 AI 분석: 녹음된 새소리를 현장에서 즉시 스펙트럼 및 하모닉 프로파일로 식별합니다.
- 자연 몰입형 워크플로우: 듣기-식별-비교의 5단계 과정을 통해 야외 활동 경험을 개선합니다.
_이 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass에 제출하는 내용입니다.
제가 만든 것
저는 EchoTrail: The Invisible Bird Guide를 만들었습니다. 이것은 완전히 오프라인 우선(offline-first)이며, 온디바이스 AI 새 소리 식별 및 관찰 동반자로서, 사용자가 화면에서 벗어나 숲속으로 들어갈 수 있도록 특별히 설계되었습니다.
새 관찰(Birdwatching)은 일상의 디지털 소음에서 벗어나 자연에 몰입하는 가장 보람 있는 방법 중 하나입니다. 하지만 숲길에 서 있는 초보자의 경우, 캐노피에서 들리는 낯선 울음소리는 종종 좌절감을 안겨줍니다.
- 들었지만 무엇인지, 어디를 봐야 할지 모릅니다.
- 백컨트리(Backcountry) 연결성은 존재하지 않습니다: 대부분의 상용 식별 앱은 오디오를 클라우드 서버로 스트리밍합니다. 주립 공원, 울창한 숲 또는 산길에 들어서는 순간 완전히 작동을 멈춥니다.
- 화면 고착이 야외 활동의 목적을 무색하게 만듭니다: 많은 자연 앱들이 야생동물을 게임 체크리스트처럼 다루어 사용자의 얼굴을 화면에 붙잡아 둡니다.
EchoTrail은 5단계의 자연 발견 워크플로우로 이 패러다임을 전환합니다:
flowchart LR
A["🌲 듣기
5–10초 트레일 녹음"] --> B["⚡ 식별
온디바이스 로컬 AI"]
B --> C["🎧 비교
네이티브 레퍼런스 콜"]
...
- 듣기 (Listen): 한 번의 탭으로 트레일에서 주변 새소리 5~10초를 직접 녹음합니다.
- 현지 식별 (Identify Locally): 장치 내 음향 분류기가 스펙트럼 및 하모닉 프로파일을 초당 1초 이내에 현지 분석합니다—인터넷 연결 없이 완전히 오프라인으로 작동합니다.
- 참고 호출과 비교 (Compare with Reference Calls): 각 후보 종의 실제 오디오 참고 호출을 장치 내에서 직접 들으며, 자신의 귀로 미묘한 음높이와 음색 차이를 확인합니다.
- 실행 가능한 관찰 단서 (Actionable Spotting Clues): EchoTrail은 실질적인 현장 관찰 지침을 제공합니다—종이 캐노피의 어느 곳에 앉는지, 활동이 가장 활발한 시간대, 진단적 행동 습관 등입니다.
- 개인 야외 일지 및 챌린지 (Private Field Journal & Challenges): 청각과 육안 확인을 기록하여 개인 로컬 SQLite 데이터베이스에 관찰 내용을 저장하고, 야외 챌린지(First Song Identified, Canopy Explorer, Morning Chorus)를 완료할 수 있습니다.
데모 (Demo)
- 직접 독립형 APK 다운로드: Download echoTrail.apk
- EAS 빌드 대시보드 및 QR 코드: Expo Build 4b6670a1
코드 (Code)
전체 프로젝트는 MIT 라이선스 하에 오픈 소스로 공개되었습니다:
GitHub logo Dev-Saurabh-K / echoTrail
Hacktoberfest dev challenge week 1
Expo 앱에 오신 것을 환영합니다 👋
이것은 create-expo-app으로 생성된 Expo 프로젝트입니다.
시작하기 (Get started)
-
종속성 설치
npm install
-
앱 실행
npx expo start
출력에서 앱을 열 수 있는 옵션을 찾을 수 있습니다.
- development build
- Android 에뮬레이터
- iOS 시뮬레이터
- Expo Go: Expo를 사용하여 앱 개발을 테스트할 수 있는 제한된 샌드박스
app 디렉토리 내부의 파일을 편집하여 개발을 시작할 수 있습니다. 이 프로젝트는 파일 기반 라우팅 (file-based routing)을 사용합니다.
새 프로젝트 받기
준비가 되면 다음 명령어를 실행하세요:
npm run reset-project
이 명령어는 시작 코드(starter code)를 app-example 디렉토리로 이동시키고, 개발을 시작할 수 있는 빈 app 디렉토리를 생성합니다.
기타 설정 단계
-
린팅(linting)을 위해 ESLint를 설정하려면
npx expo lint을 실행하거나 [ -
지속 시간 확인(Duration Checks): 충분한 음향 증거를 확보하기 위해 최소 2.0초 녹음 창을 강제합니다.
-
침묵 및 SNR 임계값 설정(Silence & SNR Thresholding): 들리지 않거나 임계값(-50dB SNR) 이하의 녹음은 환각(hallucinating)을 일으키는 대신 실행 가능한 안내와 함께 거부됩니다.
-
투명한 불확실성 표시(Transparent Uncertainty): 소음이 높거나 점수가 근접할 경우, EchoTrail은 추측하는 대신 설명 노트와 함께 예측을 투명하게 "불확실(Uncertain)"로 표시합니다.
2. 임베디드 데이터베이스 및 개인 정보 보호
관찰 기록은 expo-sqlite를 사용하여 로컬 SQLite 테이블(observations, challenges, species_metadata)에 저장됩니다. 사용자는 설정 탭에서 녹음된 모든 오디오 및 관찰 기록 전체를 검토, 내보내기 또는 영구적으로 삭제할 수 있는 완전한 제어권을 가집니다.
3. 자동화 검증 스위트(Automated Verification Suite)
저희는 다음을 검증하는 자동화된 테스트 스위트(npm test)를 설계했습니다:
- 종 목록 무결성 및 출처 명시
- 오디오 지속 시간 및 침묵 거부 기능
- 예측 순위 지정 및 후보 형식화
- 불리한 음향 조건 하에서의 불확실성 전달
- 반복 가능한(idempotent) 도전 진행 및 중복 수상 방지
오픈 혁신이 중요한 이유?
트레일 및 백컨트리 탐험을 위해 구축된 프로젝트의 경우, 오픈 소스(open-source), 온디바이스 AI(on-device AI)는 단순한 구현 선택이 아니라 가장 합리적인 아키텍처였습니다:
- 진정한 백컨트리 독립성 (True Backcountry Independence): 실제 트레일에는 셀 타워가 없습니다. 무압축 오디오를 클라우드 서버로 스트리밍해야 하는 폐쇄형 소스 API는 깊은 숲에 진입하는 순간 작동을 멈춥니다. EchoTrail은 추론(inference)을 온디바이스에서 로컬로 실행함으로써, 외딴 국립공원에서 깊은 산골짜기까지 지구 어디서든 작동합니다.
- 엄격한 위치 및 오디오 개인 정보 보호 (Strict Location & Audio Privacy): 자연 관찰 기록은 민감한 서식지나 개인의 이동 패턴을 노출할 수 있습니다. EchoTrail을 사용하면, 오디오 녹음, 위치 좌표 또는 장치 원격 측정 데이터(device telemetry)가 절대로 기기를 벗어나지 않습니다.
- 화면 최소화 (Screen Minimization): 상업용 앱들은 광고 노출과 참여 시간 극대화에 최적화되어 있습니다. 오픈 혁신을 통해 우리는 정반대의 목적을 가진 앱을 만들 수 있었습니다. 즉, 사용자의 시선이 캐노피(canopy)에 머물도록 휴대폰을 경험의 가장 짧은 부분으로 만드는 것입니다.
- 지속적인 인프라 비용 제로 (Zero Ongoing Infrastructure Costs): 추론이 사용자 휴대폰에서 실행되기 때문에, 이 앱을 운영하는 데 필요한 지속적인 API 토큰이나 클라우드 GPU 서버 비용이 전혀 들지 않습니다.
에이전트 세션 (My Agent Session)
우리는 온디바이스 음향 파이프라인을 설계하고, EAS를 이용해 Android APK로 패키징하며, 테스트 스위트를 검증하기 위해 Antigravity와 DevRelay를 활용했습니다:
EchoTrail 구축 및 패키징: EAS Android 빌드를 사용한 오프라인 AI 새 가이드
당신
android용 apk를 빌드하고 devrelay hacktoberfest week 1 dev challenge에 제출하세요.
에이전트
Android EAS 빌드 구성, 테스트 스위트 검증, EAS 클라우드 프로젝트 초기화 및 Hacktoberfest Week 1 제출 기사를 준비합니다.
▸ eas_build npx eas-cli build -p android --profile preview
입력
npx eas-cli build -p android --profile preview
출력
Build finished successfully: https://expo.dev/artifacts/eas/VDI8UsbhoH4rqVw1aV301HPV9fOnDO5NQU74smfohTg.apk
2 of 2 메시지
현장 테스트 성찰 (Field Test Reflection)
아침 공기 속에서 EchoTrail을 사용하니, 일상적인 산책이 인터랙티브한 야외 사파리로 변신했다. 참나무에서 들리는 선명하고 휘파람 같은 음열을 듣고, 6초 분량의 샘플을 녹음했으며, 온디바이스 엔진(on-device engine)이 참고 오디오를 통해 아메리칸 로빈(American Robin)을 즉시 분류하여 셀룰러 데이터(cell data) 잠금을 해제할 필요 없이 소리를 확인해 주었다. 무엇보다 좋았던 점은, 관찰 단서("로빈의 즐거운 노래를 듣고, 넓은 잔디밭이나 중간 캐노피 횃대에서 지면을 살펴보세요")를 읽어보는 것이었으며, 이를 통해 우리는 고개를 들어 쌍안경(binoculars)으로 새를 찾아내고 확인된 발견 기록을 저널에 남길 수 있었다.
이것이 바로 Touch Grass의 본질이다. 기술이 비켜나 자연이 무대의 중심을 차지하게 만드는 것이다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기