🌿 HearWild — 새소리를 듣고 길을 비켜주는 AI
요약
HearWild는 사용자가 녹음한 새소리를 로컬 AI(BirdNET V3)로 분석하여 새를 식별하고, 이를 게임화된 방식으로 사용자에게 피드백합니다. 이 오픈소스 프로젝트는 사용자를 앱에 가두기보다 자연 탐험을 장려하는 것이 목표입니다.
핵심 포인트
- 새소리 녹음 및 로컬 AI(BirdNET V3) 기반의 새 식별 기능 구현
- ONNX 모델과 FastAPI를 활용한 로컬 추론 아키텍처 구축
- 사용자에게 게임화된 보상(XP, 레벨업)을 제공하여 참여 유도
- Vue 3 + Vite와 Python/FastAPI 스택으로 오픈소스 개발
이 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass에 제출하는 내용입니다.
제가 만든 것 (What I Built)
대부분의 AI 제품은 우리가 화면에 머물도록 설계되어 있습니다.
HearWild는 정반대의 목적으로 설계되었습니다.
HearWild는 사용자가 새소리를 녹음하면, 로컬 AI를 사용하여 새를 식별하고, 들린 소리에 대해 간략히 알려주며, 야외로 돌아가도록 장려하는 오픈소스 AI 자연 동반자입니다.
아이디어는 간단합니다:
듣고. 발견하고. 배우고. 밖에 나가기.
사진을 찍거나 보고 있는 새를 알 필요가 없습니다. 마이크를 소리가 나는 곳으로 향하게 하고, 몇 초 동안 녹음한 다음, AI가 듣도록 두기만 하면 됩니다.
새가 자신 있게 식별되면 자동으로 사용자의 Flock에 추가되고 XP를 얻게 됩니다:
- 🐦 새로운 새 → +100 XP
- 🔁 이미 발견한 새 → +25 XP
- ⭐ 더 많은 새 발견 → 레벨업(level up)
중요한 부분은 그 다음 일어나는 일입니다.
HearWild는 사용자를 앱 안에 가두려고 하지 않습니다.
새를 발견했다면, 목표는 화면을 내려놓고 계속 탐험하는 것입니다.
이것은 자연에 대해 궁금해하는 모든 사람, 특히 새에 대해 많이 알지 못하지만 밖에 나가 주변의 것에 주의를 기울일 이유를 원하는 사람들을 위해 만들어졌습니다.
데모 (Demo)
MVP는 현재 로컬에서 실행됩니다:
녹음된 새소리
↓
BirdNET V3가 식별함
...
코드 (Code)
전체 소스 코드는 GitHub에서 확인할 수 있습니다:
제작 과정 (How I Built It)
HearWild의 핵심은 ONNX 모델을 통해 로컬에서 실행되는 BirdNET V3입니다.
저는 AI 자체가 폐쇄된 AI API를 단순히 호출하는 것이 아니라 오픈소스 스택의 일부가 되기를 원했습니다.
🧠 AI
HearWild는 다음을 사용합니다:
BirdNET V3 → ONNX → 로컬 추론(local inference)
브라우저가 녹음한 오디오는 로컬 FastAPI 백엔드로 전송되고, FFmpeg을 사용하여 필요한 형식으로 변환된 후 BirdNET V3에 전달됩니다.
모델은 예측된 종과 신뢰도를 반환합니다.
저는 이 신뢰도 기반의 동작 방식을 사용했습니다:
| 신뢰도 | HearWild의 응답 |
|---|---|
| 70%+ | 확신 있는 식별 → 무리(Flock)에 추가 + XP 획득 |
| ... | |
| 그 마지막 부분이 저에게는 중요했습니다. |
만약 모델이 확신하지 못한다면, HearWild는 자신이 답을 안다고 가장하지 않습니다.
🏗️ 아키텍처
┌──────────────────────────┐
│ Vue 3 + Vite │
│ │
...
프론트엔드는 Vue 3 + Vite으로 구축되었고, 백엔드는 Python + FastAPI를 사용합니다.
SQLite는 제가 발견한 새들, 들었던 횟수, 그리고 제 XP 진행 상황을 추적합니다.
새 이미지와 짧은 설명의 경우 HearWild는 Wikimedia에서 사용할 수 있을 때 가져옵니다.
왜 오픈 이노베이션이 중요할까요?
이 프로젝트는 상용 새 식별 API를 호출하여 구축될 수도 있었습니다.
하지만 그렇게 한다면 저에게 가장 흥미로운 부분 중 하나를 놓쳤을 것입니다.
저는 AI 자체가 제가 로컬에서 실행하고 이해할 수 있는 무언가이기를 바랐습니다.
오픈 모델을 사용함으로써 다음이 가능해졌습니다:
- 로컬에서 새 식별 실행
- 새 녹음을 독점 AI 서비스에 전송하는 것 회피
- 모델 직접 실험
- 추론 파이프라인 제어
- AI API 구독에 의존하지 않고 구축
- 다른 개발자들을 위해 프로젝트 재현 가능하게 유지
더 중요하게는, 그것은 제가 제품에 대해 생각하는 방식을 바꿨습니다.
AI가 목적지가 될 필요는 없습니다.
단지 기술과 실제 세계 사이의 다리가 될 수 있습니다.
이것이 제가 여기서 오픈 이노베이션을 좋아하는 이유입니다. 모델은 누구나 실험하고 그 주변에 완전히 다른 것을 구축할 수 있는 빌딩 블록이 됩니다.
🌿 제가 배운 것
HearWild를 만들면서 얻은 가장 큰 교훈은 AI 프로젝트가 사용자에게 더 많은 볼거리를 제공할 필요는 없다는 것입니다.
이것은 그들이 주변에 이미 무엇이 있는지 알아차리는 데 도움을 줄 수 있습니다.
새소리는 항상 일어나고 있습니다.
하지만 우리 대부분은 그냥 멈춰서 듣지 않습니다.
그래서 저는 다음과 같이 말하는 또 다른 AI 비서를 만드는 대신:
"화면에서 할 수 있는 10가지가 여기 있어요..."
다음과 같이 말하는 것을 만들고 싶었습니다:
"새소리가 들렸어요. 이제 가서 찾아보세요."
이것이 HearWild입니다.
세상을 들어보세요. 그 안에 살아있는 것들을 발견하세요.
🔗 프로젝트
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기