cd /news/artificial-intelligence/ecosound-using-open-source-ai-to-get… · home › topics › artificial-intelligence › article
[ARTICLE · art-149367] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

EcoSound: Using Open-Source AI to Get People Outside and Exploring Nature 🌿

A developer built EcoSound, an open-source AI application that identifies bird species from recorded audio and generates educational nature explanations, using the BirdNET acoustic model and the Qwen3 1.7B language model hosted on Modal. The Go backend forwards recordings to BirdNET for inference and grounds Qwen's output in curated species data, with the developer reporting that cold starts took roughly 185 seconds and required handling Modal redirects and extending request timeouts.

by read4 min views1 publishedOct 12, 2026

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass What if we used AI to get people off their screens instead of keeping them glued to them?

That question inspired me to build EcoSound, an open-source, AI-powered application that turns ordinary outdoor experiences into opportunities to discover wildlife.

We're surrounded by nature, but how often do we actually stop to notice it? You might hear a bird singing outside your window, while walking through a park, or on your way to work, without knowing what it is.

EcoSound makes those small moments of curiosity more meaningful.

Instead of endlessly scrolling, users can step outside, listen to their surroundings, identify possible bird species, learn about wildlife, and take part in outdoor challenges.

[https://ecosound-web.onrender.com/](https://ecosound-web.onrender.com/)

[https://github.com/Daniel-1600/hactoberfest-week-1](https://github.com/Daniel-1600/hactoberfest-week-1)

I wanted open-source AI to be central to EcoSound, rather than simply adding an AI chatbot to an otherwise unrelated application.

To achieve that, I integrated two complementary AI models.

BirdNET is an open-source acoustic machine learning system for bird identification.

Users record or upload audio. The Go backend processes the recording and forwards it to BirdNET for inference.

BirdNET returns candidate species, model scores, and the portions of the recording where calls were detected.

I deployed BirdNET on Modal using CPU inference, avoiding the need to run the model on users' devices.

Identifying a bird is useful, but I wanted EcoSound to do more than return a species name.

I integrated Qwen3 1.7B, an open-weight language model, to provide educational explanations and outdoor activity recommendations.

Before generation, the backend retrieves curated species information, including habitat, diet, ecological role, conservation references, and ethical observation guidance.

That information is passed to Qwen so its response can be grounded in the available species record.

The backend validates the generated JSON and requires exactly three outdoor activities.

Qwen runs on a Modal GPU, independently of BirdNET.

My technology stack:

Frontend :Next.js, React, TypeScript

Backend :Go

Database :SQLite

Bird identification : BirdNET 3.0

Nature explanations : Qwen3 1.7B

Model hosting : Modal

Web hosting : Render

Maps : MapLibre GL JS

Offline capabilities : PWA, IndexedDB, service worker

The Go backend connects the user-facing application to both AI services, manages stored discoveries, and handles validation and error responses.

One of the biggest challenges was getting reliable inference from the cloud-hosted models.

Qwen initially returned authentication errors because the Modal proxy credentials were incorrect.

After resolving authentication, requests still failed during model cold starts. A direct request eventually returned HTTP 200 after approximately 185 seconds, including an HTTP 303 redirect.

I updated the Go client to handle Modal redirects safely and extended the request timeouts.

Another issue appeared when Qwen returned an explanation that failed the backend's JSON and content validation.

I refined the generation instructions, added controlled validation logging and retry handling, and expanded the tests.

Eventually, the complete pipeline returned HTTP 200, with the predicted species, curated wildlife information, an AI-generated explanation, and three outdoor activities.

This was an important lesson: deploying a model is only part of building an AI application. Handling cold starts, unreliable responses, validation, and model uncertainty is equally important.

EcoSound would have been much harder to build as an independent project without accessible open-source AI.

First, open models give developers control.

I can inspect how BirdNET is integrated, build my own inference service, and choose where to run the model. With Qwen, I can control the prompts, generation settings, and validation behavior.

Second, open models make experimentation more accessible.

Instead of being tied entirely to proprietary AI APIs, I can deploy models on infrastructure I choose, compare inference options, and adapt the system as my requirements change.

Third, open innovation encourages reusable solutions.

EcoSound combines existing research and open technologies into a new experience focused on biodiversity discovery and outdoor exploration.

I didn't need to train a bird identification model or a language model from scratch. I could build on the work of open-source communities and focus on solving the user-facing problem.

That doesn't mean every component is free to run or that every model has identical licensing terms. EcoSound's application code is MIT-licensed, Qwen3 1.7B uses Apache 2.0, and BirdNET's model weights have separate noncommercial licensing restrictions.

For me, that's what makes open innovation exciting: it allows independent developers to turn existing research into useful experiences that might otherwise be out of reach. And sometimes, the best use of AI isn't keeping us online.

It's helping us appreciate what's happening outside.

Best Use of Render

I deployed the EcoSound web application using Render, making the project accessible through a public URL without requiring judges to install the application locally.

Render serves as the public entry point to an application powered by open-source AI models hosted independently on Modal.

Live application: https://ecosound-web.onrender.com/ EcoSound — Go Outside. Listen. Discover. 🌿

Instead of building another application designed to capture more screen time, I wanted to build something that makes the real world a little more interesting.

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @ecosound 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/ecosound-using-open-…] indexed:0 read:4min 2026-10-12 · —