HearWild란? 새소리로 종을 식별하는 오픈소스 AI, 로컬 AI로 동작하는 이유
- BirdNET V3 모델을 ONNX로 로컬 실행해 새소리 식별
- 신뢰도 70% 이상일 때만 Flock에 추가하고 XP 100점 부여
- Vue 3+Vite, FastAPI, SQLite로 구성된 오픈소스 스택
대부분의 AI 제품이 사용자를 화면 앞에 붙잡아두려 설계되는 것과 달리, 오픈소스 프로젝트 HearWild는 새 울음소리를 식별해준 뒤 사용자를 다시 밖으로 내보내는 것을 목표로 만들어졌습니다. 핵심은 외부 API 호출 없이 BirdNET V3 모델을 로컬에서 직접 구동한다는 점입니다.
HearWild는 어떻게 새소리를 식별하나
핵심: 사진이나 종 정보 없이 마이크로 몇 초만 녹음하면 AI가 새를 식별합니다.
HearWild는 Hacktoberfest Open-Source AI Challenge Week 1 'Touch Grass' 부문에 제출된 프로젝트로, 새 울음소리를 녹음하면 로컬 AI가 종을 식별하고 간단한 정보를 알려준 뒤 다시 밖으로 나가도록 권장하는 오픈소스 AI 자연 동반자입니다. 사용자는 사진을 찍거나 어떤 새인지 미리 알 필요 없이, 마이크를 소리 쪽으로 향하고 몇 초간 녹음하면 됩니다. 새가 확인되면 자동으로 사용자의 'Flock'(수집한 새 목록)에 추가되고 XP를 얻습니다.
XP 체계는 세 가지로 나뉩니다. 처음 발견한 새는 +100 XP, 이미 발견한 새를 다시 들으면 +25 XP를 얻으며, 더 많은 새를 발견할수록 레벨이 올라갑니다. 전체 소스코드는 GitHub에 공개되어 있습니다.
핵심 엔진은 BirdNET V3로, ONNX 형식으로 변환되어 로컬에서 추론을 수행합니다. 개발자는 폐쇄형 AI API를 단순 호출하는 대신 AI 자체를 오픈소스 스택의 일부로 포함시키고자 했다고 설명했습니다.
브라우저에서 녹음된 오디오는 로컬 FastAPI 백엔드로 전송되고, FFmpeg로 필요한 포맷으로 변환된 뒤 BirdNET V3에 전달됩니다. 모델은 예측된 종과 신뢰도(confidence)를 반환합니다.
| 신뢰도 | HearWild의 반응 |
|---|---|
| 70% 이상 | 확실한 식별 → Flock에 추가 + XP 획득 |
| 20~69% | 가능성 있는 식별 → 결과는 표시하지만 추가하지 않음 |
| 20% 미만 | 알 수 없음 → 아는 척하지 않음 |
개발자는 모델이 확신하지 못할 때 HearWild가 아는 척하지 않도록 만든 이 부분이 중요했다고 밝혔습니다.
아키텍처는 프런트엔드(Vue 3 + Vite)에서 새소리를 녹음하면 FastAPI 백엔드가 오디오를 처리하고, FFmpeg가 오디오를 변환한 뒤 BirdNET V3 ONNX 모델이 로컬에서 새를 식별하며, 결과는 SQLite에 저장되어 'My Flock'으로 누적되는 구조입니다. 프런트엔드는 Vue 3와 Vite로, 백엔드는 Python과 FastAPI로 구축되었고, SQLite는 발견한 새와 들은 횟수를 기록합니다.
정리: 오늘의 시사점
HearWild는 챗봇형 AI 제품과 달리 사용자의 체류 시간을 늘리는 것이 아니라 줄이는 방향으로 설계됐다는 점이 특징입니다. BirdNET V3를 ONNX로 로컬 구동해 외부 API 의존 없이 동작하도록 만든 구조는, 오픈소스 AI 프로젝트에서 모델 자체를 스택에 포함시키는 방식의 사례로 볼 수 있습니다.