<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nairitya Jai Singh</title>
    <description>The latest articles on DEV Community by Nairitya Jai Singh (@nairityajaisingh).</description>
    <link>https://dev.to/nairityajaisingh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Nairitya Jai Singh</title>
      <link>https://dev.to/nairityajaisingh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nairityajaisingh"/>
    <language>en</language>
    <item>
      <title>Birdsong Field Kit: Listen Closer, Look Up</title>
      <dc:creator>Nairitya Jai Singh</dc:creator>
      <pubDate>Sun, 11 Oct 2026 17:03:00 +0000</pubDate>
      <link>https://dev.to/nairityajaisingh/birdsong-field-kit-listen-closer-look-up-5hkp</link>
      <guid>https://dev.to/nairityajaisingh/birdsong-field-kit-listen-closer-look-up-5hkp</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Birdsong Field Kit is a small, phone-friendly birding companion. Tap &lt;strong&gt;Start listening&lt;/strong&gt; and it records six seconds of ambient sound, then runs an open audio model in the browser to suggest a broad sound category. You can also choose an existing recording. Observations stay in local browser storage, and the interface encourages you to look up and listen for yourself instead of staring at a results screen.&lt;/p&gt;

&lt;p&gt;This is for casual birders, curious walkers, and anyone who hears a call they cannot place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Run locally with &lt;code&gt;node server.mjs&lt;/code&gt;, then open &lt;code&gt;http://127.0.0.1:5173/&lt;/code&gt;. Microphone access requires localhost or HTTPS. The app shell and model need an online first visit; please verify model caching and offline behavior on your own phone before relying on it in the field.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/nairitya-singh" rel="noopener noreferrer"&gt;
        nairitya-singh
      &lt;/a&gt; / &lt;a href="https://github.com/nairitya-singh/Birdsong-Field-Kit-Hacktobestfest-2026" rel="noopener noreferrer"&gt;
        Birdsong-Field-Kit-Hacktobestfest-2026
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Birdsong Field Kit is a small, phone-friendly birding companion. Tap **Start listening** and it records six seconds of ambient sound, then runs an open audio model in the browser to suggest a broad sound category.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Birdsong — Field Kit&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A phone-friendly birding companion built around Google's open YAMNet audio event classifier. Record a short sound, run inference in the browser, and get a broad bird-call suggestion. Audio stays on-device; observation notes use localStorage.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run it&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Serve this folder from localhost or HTTPS (microphone access requires a secure context), for example &lt;code&gt;node server.mjs&lt;/code&gt;. Open the app online once so TensorFlow.js and the model assets can be cached. Tap &lt;strong&gt;Start listening&lt;/strong&gt; for a six-second recording or choose an audio file. Verify offline operation on the target browser before heading out.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Model and limits&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;YAMNet is a general AudioSet sound-event model, not a species classifier. Results are broad labels such as bird vocalization or chirping and can be wrong in wind or overlapping sound. First setup needs internet; cached assets enable repeat offline use.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Stack&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Vanilla JS/CSS/HTML, TensorFlow.js, open YAMNet, service-worker app shell, local observation history. The…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/nairitya-singh/Birdsong-Field-Kit-Hacktobestfest-2026" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The project files are in this repository. The main experience is &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;field-kit.css&lt;/code&gt;, and &lt;code&gt;app.js&lt;/code&gt;; &lt;code&gt;service-worker.js&lt;/code&gt; caches the app shell. The pre-existing arcade game remains in &lt;code&gt;game.js&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The app uses TensorFlow.js to run Google's open YAMNet audio event classifier in the browser. It resamples audio to 16 kHz, scores short chunks, then looks for bird-related AudioSet labels. The microphone recording is analyzed in memory and is not sent to a server. A service worker caches the app shell, and the browser's model asset cache supports later offline use after first loading the model.&lt;/p&gt;

&lt;p&gt;YAMNet is a general sound-event model, not a species identifier. Its output is intentionally presented as a clue such as “bird call” or “chirping bird,” not a definitive species. Wind, overlapping sounds, device microphones, and model label coverage can all affect the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;An open model that runs in the browser makes the core experience possible without sending location or audio to a birding service. Once the app and model have been cached, the inference path can work without a live API connection, which matters on trails with poor reception. The browser-based approach also keeps the project small and lets another developer inspect or replace the model and adjust the label mapping.&lt;/p&gt;

&lt;p&gt;The trade-off is that first-time setup still needs a connection to download TensorFlow.js and the model. I could not verify a full offline recording session on a phone in this build environment, so that remains a field check rather than a claim of tested performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;No partner prize category entered. This submission is for the overall challenge.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
