<?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: Fiza Naaz</title>
    <description>The latest articles on DEV Community by Fiza Naaz (@fizanaaz339).</description>
    <link>https://dev.to/fizanaaz339</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4163324%2Ff2b0adbd-6a60-43dd-aa70-135cf293267f.jpg</url>
      <title>DEV Community: Fiza Naaz</title>
      <link>https://dev.to/fizanaaz339</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fizanaaz339"/>
    <language>en</language>
    <item>
      <title>Trail Notebook: Birding Offline with BirdNET and Gemma</title>
      <dc:creator>Fiza Naaz</dc:creator>
      <pubDate>Tue, 06 Oct 2026 17:45:58 +0000</pubDate>
      <link>https://dev.to/fizanaaz339/trail-notebook-birding-offline-with-birdnet-and-gemma-24og</link>
      <guid>https://dev.to/fizanaaz339/trail-notebook-birding-offline-with-birdnet-and-gemma-24og</guid>
      <description>&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A local-first birding journal that turns trail recordings into BirdNET detections and AI-written notes, without uploading your audio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Post Content&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Trail Notebook is an offline field journal for people who want to remember the sounds of a walk without spending the walk looking at a screen.&lt;/p&gt;

&lt;p&gt;The idea is simple: record birdsong while outside, put the phone away, and analyze the recording afterward. BirdNET identifies candidate bird calls. Then a local language model turns those detections into a short journal entry, saved as Markdown with a species table, confidence scores, and timestamps.&lt;/p&gt;

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

&lt;p&gt;The video walkthrough is in the &lt;a href="https://github.com/Fiza-Naaz339/trail-notebook" rel="noopener noreferrer"&gt;project README&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BirdNET&lt;/strong&gt;, through &lt;code&gt;birdnetlib&lt;/code&gt;, analyzes the selected recording locally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; runs the journal-writing model locally. The default is &lt;code&gt;gemma3:4b&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The prompt grounds the journal in the species BirdNET detected instead of asking the model to invent observations.&lt;/li&gt;
&lt;li&gt;Recordings can be selected from a file picker, chosen from the &lt;code&gt;Recordings&lt;/code&gt; folder, or passed in batches. Journals are saved as Markdown files named from their recordings.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Bird recordings and location details can be personal. Processing them locally means I don’t have to upload them to a service I don’t control. After setup, the workflow can run without an internet connection or per-request API charges.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also gives me control over the writing step: I can change the model or prompt without replacing the bird-detection pipeline. The model helps organize the results; it does not determine what was actually present.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;BirdNET can misidentify calls, especially in noisy recordings. Confidence scores are useful context, not proof, so detections should be checked against the recording and the generated journal should be reviewed. The built-in demo uses sample detections to show the output format; they are not real field observations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;The setup instructions and source code are in the &lt;a href="https://github.com/Fiza-Naaz339/trail-notebook" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;. To try the sample journal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;trail_notebook.py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--demo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--no-llm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To choose a local recording:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;trail_notebook.py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--browse&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Trail Notebook: Birding Offline with BirdNET and Gemma</title>
      <dc:creator>Fiza Naaz</dc:creator>
      <pubDate>Tue, 06 Oct 2026 16:55:00 +0000</pubDate>
      <link>https://dev.to/fizanaaz339/trail-notebook-birding-offline-with-birdnet-and-gemma-27h</link>
      <guid>https://dev.to/fizanaaz339/trail-notebook-birding-offline-with-birdnet-and-gemma-27h</guid>
      <description>&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A local-first birding journal that turns trail recordings into BirdNET detections and AI-written notes, without uploading your audio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Post Content&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Trail Notebook is an offline field journal for people who want to remember the sounds of a walk without spending the walk looking at a screen.&lt;/p&gt;

&lt;p&gt;The idea is simple: record birdsong while outside, put the phone away, and analyze the recording afterward. BirdNET identifies candidate bird calls. Then a local language model turns those detections into a short journal entry, saved as Markdown with a species table, confidence scores, and timestamps.&lt;/p&gt;

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

&lt;p&gt;The video walkthrough is in the &lt;a href="https://github.com/Fiza-Naaz339/trail-notebook" rel="noopener noreferrer"&gt;project README&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BirdNET&lt;/strong&gt;, through &lt;code&gt;birdnetlib&lt;/code&gt;, analyzes the selected recording locally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; runs the journal-writing model locally. The default is &lt;code&gt;gemma3:4b&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The prompt grounds the journal in the species BirdNET detected instead of asking the model to invent observations.&lt;/li&gt;
&lt;li&gt;Recordings can be selected from a file picker, chosen from the &lt;code&gt;Recordings&lt;/code&gt; folder, or passed in batches. Journals are saved as Markdown files named from their recordings.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Bird recordings and location details can be personal. Processing them locally means I don’t have to upload them to a service I don’t control. After setup, the workflow can run without an internet connection or per-request API charges.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also gives me control over the writing step: I can change the model or prompt without replacing the bird-detection pipeline. The model helps organize the results; it does not determine what was actually present.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;BirdNET can misidentify calls, especially in noisy recordings. Confidence scores are useful context, not proof, so detections should be checked against the recording and the generated journal should be reviewed. The built-in demo uses sample detections to show the output format; they are not real field observations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;The setup instructions and source code are in the &lt;a href="https://github.com/Fiza-Naaz339/trail-notebook" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;. To try the sample journal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;trail_notebook.py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--demo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--no-llm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To choose a local recording:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;trail_notebook.py&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--browse&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;devchallenge&lt;/code&gt;, &lt;code&gt;hf26challenge&lt;/code&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devchallenge</category>
      <category>hacktoberfest</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
