<?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: SRIRAM S</title>
    <description>The latest articles on DEV Community by SRIRAM S (@synchrnoattack).</description>
    <link>https://dev.to/synchrnoattack</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: SRIRAM S</title>
      <link>https://dev.to/synchrnoattack</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/synchrnoattack"/>
    <language>en</language>
    <item>
      <title>Lazy Mode: An Open-Weight Model That Renames and Sorts My Files Offline</title>
      <dc:creator>SRIRAM S</dc:creator>
      <pubDate>Wed, 21 Oct 2026 15:51:51 +0000</pubDate>
      <link>https://dev.to/synchrnoattack/lazy-mode-an-open-weight-model-that-renames-and-sorts-my-files-offline-3ioj</link>
      <guid>https://dev.to/synchrnoattack/lazy-mode-an-open-weight-model-that-renames-and-sorts-my-files-offline-3ioj</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/p&gt;

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

&lt;p&gt;sloth-sorter is a lazy, fully local tidier for your Downloads folder.&lt;/p&gt;

&lt;p&gt;When a new file lands, a small open-weight model reads the filename and the first bit of the content. It renames the file to something meaningful and files it into the right folder. scan0042 (3).pdf becomes Invoices/Invoice_Airtel_Oct2026.pdf. Every move is logged with a one-line summary, so a single command gives you a morning digest of what got sorted.&lt;/p&gt;

&lt;p&gt;It is built for people who know their Downloads folder is a disaster and keep putting off fixing it. You set it up once and never think about it again.&lt;/p&gt;

&lt;p&gt;Safety features, because nobody should trust an AI with their files on day one:&lt;/p&gt;

&lt;p&gt;Dry run by default. It prints what it would do and moves nothing until you pass --apply.&lt;br&gt;
Undo log. Every move is recorded, and undo --last N reverses the most recent moves.&lt;br&gt;
It never overwrites. Name collisions get _2, _3, and so on.&lt;br&gt;
It skips unfinished downloads (.crdownload, .part) and files that are still growing.&lt;br&gt;
If the model fails, the file is left alone.&lt;br&gt;
Demo&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
ollama pull qwen2.5:3b&lt;br&gt;
python sloth.py once --folder ~/Downloads # dry run, moves nothing&lt;br&gt;
python sloth.py watch --folder ~/Downloads --apply # lazy mode: runs forever&lt;br&gt;
python sloth.py digest # what got sorted overnight&lt;br&gt;
python sloth.py undo --last 5 # changed your mind&lt;br&gt;
How I Built It&lt;br&gt;
Model: a small open-weight model (default qwen2.5:3b) served locally by Ollama. The model is a command-line flag, so swapping in Gemma, Llama, or Phi is one flag.&lt;br&gt;
Structured output: the Ollama request uses a JSON schema, so the model must return {category, new_name, summary}, and category can only be one of a fixed list of folders. That keeps a small model from inventing folders or returning free-form text.&lt;br&gt;
Content reading: the standard library handles text, CSV, JSON, and .docx. pypdf is optional, for PDFs. Scanned PDFs and images fall back to the filename.&lt;br&gt;
Dependencies: there are none beyond Ollama. The folder watcher is a simple polling loop with a “has the file stopped growing?” check, so there is nothing to install or break.&lt;br&gt;
Cleanup layer: the model’s suggested name is sanitized in code (safe characters only, 60-character cap, original extension kept), so a bad model answer can’t produce an invalid filename.&lt;br&gt;
Why Does Open Innovation Matter?&lt;/p&gt;

&lt;p&gt;Downloads folders hold invoices, bank statements, ID scans, and medical reports. Sending those to a cloud API just to rename them is a bad trade.&lt;/p&gt;

&lt;p&gt;Privacy: the contents never leave the machine. With a closed API, the tool would have to upload your most sensitive documents.&lt;br&gt;
Cost: it costs nothing to run. Sorting thousands of old files would be a per-token bill on a hosted API. Here it only uses electricity.&lt;br&gt;
Offline: it works with no internet at all.&lt;br&gt;
Swappable models: I can pick the model that handles my own files best instead of whatever one vendor offers.&lt;br&gt;
Control: the categories, the naming style, and the prompt are all editable, so the behavior is yours to change.&lt;/p&gt;

&lt;p&gt;My Agent Session&lt;/p&gt;

&lt;p&gt;The Lazy Payoff&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built an Offline “Sales Analyst” for Small Shops with Ollama and DuckDB</title>
      <dc:creator>SRIRAM S</dc:creator>
      <pubDate>Sat, 17 Oct 2026 12:33:24 +0000</pubDate>
      <link>https://dev.to/synchrnoattack/i-built-an-offline-sales-analyst-for-small-shops-with-ollama-and-duckdb-p0l</link>
      <guid>https://dev.to/synchrnoattack/i-built-an-offline-sales-analyst-for-small-shops-with-ollama-and-duckdb-p0l</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/p&gt;

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

&lt;p&gt;AskMyShop is a local app that lets a small shop or restaurant owner ask questions about their sales in plain language and get a chart plus a one-line answer.&lt;/p&gt;

&lt;p&gt;Many small businesses keep sales in Excel or CSV exports from a billing app, but can’t afford an analyst. They’re left asking questions like “which dish is not selling?” or “which day is my busiest?” and guessing the answers.&lt;/p&gt;

&lt;p&gt;With AskMyShop, the owner uploads their sheet, types a question (e.g. “Which items sold least last month?”), and gets:&lt;/p&gt;

&lt;p&gt;a chart&lt;br&gt;
a one-line insight in simple words&lt;br&gt;
the SQL used, so they can see how the answer was found&lt;/p&gt;

&lt;p&gt;Who would pay: small restaurants, tiffin shops and grocery stores. Pricing idea: [₹499 one-time setup, or ₹199/month for monthly report templates].&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Tip: Show the Wi-Fi turned off in the video. It proves the “private and offline” claim in two seconds.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&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/AWT-SRIRAM" rel="noopener noreferrer"&gt;
        AWT-SRIRAM
      &lt;/a&gt; / &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT" rel="noopener noreferrer"&gt;
        SRM_AUTOSUB_BOT
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;
  🎬 SRM AUTOSUB BOT
&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/32e877cf7dd186864ea6401c40fe6db3b73ea0d1d278803ebff3c3d5f7bc186e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576656c6f7065722d53524952414d253230532d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/32e877cf7dd186864ea6401c40fe6db3b73ea0d1d278803ebff3c3d5f7bc186e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576656c6f7065722d53524952414d253230532d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465" alt="Developer"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/81a8a816ea3838a0dbae7e84abf187a136268e52342dece17bbc60c02f024bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322532422d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/81a8a816ea3838a0dbae7e84abf187a136268e52342dece17bbc60c02f024bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322532422d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python Version"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/19296567c09d84e5ea0833bea126e529eae6a4cb035d2716604b7705be0e1870/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6962726172792d5079726f6772616d2d79656c6c6f773f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/19296567c09d84e5ea0833bea126e529eae6a4cb035d2716604b7705be0e1870/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6962726172792d5079726f6772616d2d79656c6c6f773f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465" alt="Pyrogram"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ff2e78793c0ba68a17278b08107ac1fad4d2e39bce95061cffe83c4e2dc1ab0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456e67696e652d6661737465722d2d776869737065722d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/ff2e78793c0ba68a17278b08107ac1fad4d2e39bce95061cffe83c4e2dc1ab0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456e67696e652d6661737465722d2d776869737065722d6f72616e67653f7374796c653d666f722d7468652d6261646765" alt="Whisper"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3ef1082ed4e998c4377573ac24abacf58f4b13de32ff47c92d1a3ee302b5eef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d61742d2e4153532d627269676874677265656e3f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/3ef1082ed4e998c4377573ac24abacf58f4b13de32ff47c92d1a3ee302b5eef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d61742d2e4153532d627269676874677265656e3f7374796c653d666f722d7468652d6261646765" alt="Format"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;b&gt;An asynchronous, GPU-accelerated Telegram Bot engineered using Pyrogram and faster-whisper (&lt;code&gt;distil-large-v3&lt;/code&gt;). Automatically extracts English audio streams, transcribes multi-channel media, and generates mobile-optimized, styled Advanced SubStation Alpha (&lt;code&gt;.ass&lt;/code&gt;) English subtitles.&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-features" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/999aa523ec64085f0827e65cb8f7ad990381d78d4ec1a232cbafbb62a86b454b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46656174757265732d566965772d626c75653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-deployment--setup" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/51e72f61617e314b32bd1c3c94d7c19bf8431b5ab5856f257a2224cd5b6120d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d53657475702d627269676874677265656e3f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-bot-commands--interactive-menu" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c6dd251832caf24387276cc8e23ea77c0f7675ef3050faf9a75139794fb42935/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d6d616e64732d4c6973742d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://t.me/your_telegram_username" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a22f9e97845bc5eaa1ae394cef54ef14728214c0f4ea52f0c19b02060b5bec56/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d54656c656772616d2d3030383863633f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔗 Quick Links&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-key-features" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6cfcaf49db0af3210750962afbf70a4acc5e9733e3b58bbd2e7b73d7064a3285/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486967686c69676874732d496e666f2d696e666f726d6174696f6e616c3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-subtitle-formatting-rules" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e14374f2fc09e5149513ba3e4b7d2159462f9022f1f2db4f5dc37f02260844a0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d617474696e672d52756c65732d707572706c653f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-repository-structure" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/043509a77ece4f7c1f0cfd5e593912bdf3c3e7199c93497670205d8aa7f6370d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374727563747572652d46696c65732d626c756576696f6c65743f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-deployment--setup" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6be6aea0969966301950b043f0f807b5074917a43a53792ab7129b6daa3afcdf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d47756964652d737563636573733f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-bot-commands--interactive-menu" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5b6e175d8bf29d47eb77912c1eef317f05c405da686b53f0d59b18a4feaafe88/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d6d616e64732d4d656e752d6f72616e67653f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-license" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Key Features&lt;/h2&gt;
&lt;/div&gt;


&lt;b&gt;⚡ High-Performance ASR Engine&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;distil-large-v3 Architecture&lt;/strong&gt;: Utilises quantized &lt;code&gt;distil-large-v3&lt;/code&gt; running on CUDA &lt;code&gt;float16&lt;/code&gt; hardware acceleration, achieving &lt;strong&gt;5x–12x real-time transcription performance&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Word-Level Timestamping&lt;/strong&gt;: Generates exact word‑level timestamp alignments and applies &lt;strong&gt;centisecond rounding&lt;/strong&gt; (&lt;code&gt;round()&lt;/code&gt;‑based) to eliminate IEEE 754 drift on long files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FFmpeg Audio Extraction&lt;/strong&gt;: Automatically probes multi‑track containers (&lt;code&gt;.mkv&lt;/code&gt;, &lt;code&gt;.mp4&lt;/code&gt;, &lt;code&gt;.avi&lt;/code&gt;), prefers explicit English streams, and converts raw Audio to 16kHz mono PCM WAV with a &lt;strong&gt;3x volume boost&lt;/strong&gt; to capture quiet dialogue.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;b&gt;🎨 Styled .ASS Output (Custom Look)&lt;/b&gt;


&lt;ul&gt;

&lt;li&gt;

&lt;strong&gt;Embedded Styling&lt;/strong&gt;: Outputs Advanced SubStation Alpha (&lt;code&gt;.ass&lt;/code&gt;) files with a &lt;strong&gt;pre‑defined style&lt;/strong&gt; – Trebuchet MS Italic…&lt;/li&gt;

&lt;/ul&gt;&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;How I Built It&lt;br&gt;
Model: [Qwen2.5 7B / Qwen2.5-Coder] running locally through Ollama&lt;br&gt;
Query engine: DuckDB, which queries the uploaded CSV/Excel directly with no database setup&lt;br&gt;
Structured output: Instructor with a schema, so the model returns the SQL and the chart type in a predictable format&lt;br&gt;
UI and charts: Streamlit with Plotly&lt;br&gt;
Safety layer: only read-only SELECT queries are allowed, and if the SQL fails, the error is sent back to the model for one retry&lt;br&gt;
Prompt design: the prompt includes the table schema, sample rows, and a few example questions with correct SQL, tuned to the shop’s own column names&lt;br&gt;
(Optional) faster-whisper for asking questions by voice&lt;/p&gt;

&lt;p&gt;What I learned: [e.g. small models sometimes write wrong SQL, so showing the query under every answer built trust, and schema plus examples in the prompt improved accuracy.]&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Privacy: sales and customer data never leave the owner’s laptop. For a small shop, that data is the business.&lt;br&gt;
Cost: there’s no per-question API fee, so a low flat price still leaves a margin. With a paid API, every question the owner asks would eat into a ₹199/month plan.&lt;br&gt;
Works offline: many small shops have unreliable internet, and this works without it.&lt;br&gt;
Customization: I could tune the prompt with the shop’s own column names and item names (including Tamil names), which a generic tool handles poorly.&lt;br&gt;
No lock-in: if a better open model comes out, or the shop has an older laptop, I can swap the model without rewriting the app.&lt;/p&gt;

&lt;p&gt;[Add one honest comparison here, e.g. “I tried the same questions on a hosted model: accuracy was [X], but it required uploading the data and costs [Y] per query.”]&lt;/p&gt;

&lt;p&gt;My First User&lt;/p&gt;

&lt;p&gt;[Who they are: a shop owner, a relative who runs a business, a tea stall, a hotel.]&lt;/p&gt;

&lt;p&gt;What they asked first:&lt;br&gt;
What worked / what confused them:&lt;br&gt;
Would they pay, and how much:&lt;br&gt;
What they asked for next:&lt;/p&gt;

&lt;p&gt;If you haven’t shown it to anyone by the deadline, delete this section.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>grassfriend</title>
      <dc:creator>SRIRAM S</dc:creator>
      <pubDate>Sat, 10 Oct 2026 17:18:16 +0000</pubDate>
      <link>https://dev.to/synchrnoattack/grassfriend-p1i</link>
      <guid>https://dev.to/synchrnoattack/grassfriend-p1i</guid>
      <description>&lt;p&gt;the BirdNET*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;/p&gt;

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

&lt;p&gt;&lt;strong&gt;TrailCall&lt;/strong&gt; is an offline bird-call companion for walks. You record a short clip on the trail, and it identifies the birds singing around you, then turns the detections into a short field note and adds them to your personal life list.&lt;/p&gt;

&lt;p&gt;The screen is the shortest part of the experience: tap record, put the device away, and keep walking. The detail only appears once you're back or at a rest stop. The goal is to make people look up and listen instead of scrolling.&lt;/p&gt;

&lt;p&gt;It's for beginner birders, students, and anyone who hears a call and wonders "what is that?", especially in places with weak or no signal.&lt;/p&gt;

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

&lt;p&gt;[TODO: video link or screenshots]&lt;/p&gt;

&lt;p&gt;Field test: [TODO: where you went, how long, how many species it identified, what it got wrong. Write this from your real outing.]&lt;/p&gt;

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

&lt;p&gt;[TODO: embed your GitHub repo]&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detection:&lt;/strong&gt; BirdNET-Analyzer, an open-source bird sound classifier, runs fully locally on audio clips in Python.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field notes:&lt;/strong&gt; a small open-weight model (e.g. Qwen2.5 or Llama 3.2 via &lt;strong&gt;Ollama&lt;/strong&gt;) turns the raw detections (species, confidence, time) into a readable note with a short, plain-language fact about each bird.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; a local &lt;strong&gt;SQLite&lt;/strong&gt; life list with date, species, and confidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; a minimal &lt;strong&gt;Streamlit&lt;/strong&gt; page (or CLI) with a record/upload button and a life-list view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flow:&lt;/strong&gt; record clip → BirdNET detections → confidence filter → local LLM writes the note → save to SQLite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs on a laptop with no internet connection.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Works where there's no signal.&lt;/strong&gt; A cloud API is useless on a trail. Local models mean it works exactly where birds are.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your recordings and locations stay with you.&lt;/strong&gt; Sightings and GPS context are sensitive, and nothing is uploaded to a server you don't control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero running cost.&lt;/strong&gt; There's no per-call fee, so people can use it on every walk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable and tunable.&lt;/strong&gt; I can swap the language model, change the note style, or later fine-tune on local species without waiting on a vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Licensing note:&lt;/strong&gt; BirdNET's model weights are released under a non-commercial license, so this is a learning and community tool, not a commercial product.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;[TODO: DevRelay link or embed, or remove this section]&lt;/p&gt;

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

&lt;p&gt;[TODO: list the partner categories you're entering, or remove this section]&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>AllergyShield (Edge Dietary Cross-Examiner)</title>
      <dc:creator>SRIRAM S</dc:creator>
      <pubDate>Sun, 04 Oct 2026 15:09:09 +0000</pubDate>
      <link>https://dev.to/synchrnoattack/allergyshield-edge-dietary-cross-examiner-2p6a</link>
      <guid>https://dev.to/synchrnoattack/allergyshield-edge-dietary-cross-examiner-2p6a</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
I built AllergyShield, an on-device OCR and ingredient verification tool for my roommate, who manages celiac disease along with severe sensitivities to common emulsifiers and hidden soy derivatives.&lt;/p&gt;

&lt;p&gt;Grocery stores and international markets are notorious cellular dead zones. When shopping, closed cloud-based vision apps fail due to dropped connectivity, leaving my roommate manually inspecting obscure chemical names and manufacturing disclaimers on physical packaging. AllergyShield processes ingredient labels locally on an edge device or laptop without an active internet connection, flagging dangerous additives and synonymized allergens in seconds.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
Live Demo / Screen Recording Link&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
&lt;/p&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/AWT-SRIRAM" rel="noopener noreferrer"&gt;
        AWT-SRIRAM
      &lt;/a&gt; / &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT" rel="noopener noreferrer"&gt;
        SRM_AUTOSUB_BOT
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;
  🎬 SRM AUTOSUB BOT
&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/32e877cf7dd186864ea6401c40fe6db3b73ea0d1d278803ebff3c3d5f7bc186e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576656c6f7065722d53524952414d253230532d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/32e877cf7dd186864ea6401c40fe6db3b73ea0d1d278803ebff3c3d5f7bc186e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576656c6f7065722d53524952414d253230532d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465" alt="Developer"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/81a8a816ea3838a0dbae7e84abf187a136268e52342dece17bbc60c02f024bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322532422d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/81a8a816ea3838a0dbae7e84abf187a136268e52342dece17bbc60c02f024bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322532422d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python Version"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/19296567c09d84e5ea0833bea126e529eae6a4cb035d2716604b7705be0e1870/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6962726172792d5079726f6772616d2d79656c6c6f773f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/19296567c09d84e5ea0833bea126e529eae6a4cb035d2716604b7705be0e1870/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6962726172792d5079726f6772616d2d79656c6c6f773f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465" alt="Pyrogram"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ff2e78793c0ba68a17278b08107ac1fad4d2e39bce95061cffe83c4e2dc1ab0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456e67696e652d6661737465722d2d776869737065722d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/ff2e78793c0ba68a17278b08107ac1fad4d2e39bce95061cffe83c4e2dc1ab0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456e67696e652d6661737465722d2d776869737065722d6f72616e67653f7374796c653d666f722d7468652d6261646765" alt="Whisper"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3ef1082ed4e998c4377573ac24abacf58f4b13de32ff47c92d1a3ee302b5eef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d61742d2e4153532d627269676874677265656e3f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/3ef1082ed4e998c4377573ac24abacf58f4b13de32ff47c92d1a3ee302b5eef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d61742d2e4153532d627269676874677265656e3f7374796c653d666f722d7468652d6261646765" alt="Format"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;b&gt;An asynchronous, GPU-accelerated Telegram Bot engineered using Pyrogram and faster-whisper (&lt;code&gt;distil-large-v3&lt;/code&gt;). Automatically extracts English audio streams, transcribes multi-channel media, and generates mobile-optimized, styled Advanced SubStation Alpha (&lt;code&gt;.ass&lt;/code&gt;) English subtitles.&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-features" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/999aa523ec64085f0827e65cb8f7ad990381d78d4ec1a232cbafbb62a86b454b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46656174757265732d566965772d626c75653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-deployment--setup" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/51e72f61617e314b32bd1c3c94d7c19bf8431b5ab5856f257a2224cd5b6120d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d53657475702d627269676874677265656e3f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-bot-commands--interactive-menu" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c6dd251832caf24387276cc8e23ea77c0f7675ef3050faf9a75139794fb42935/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d6d616e64732d4c6973742d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://t.me/your_telegram_username" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a22f9e97845bc5eaa1ae394cef54ef14728214c0f4ea52f0c19b02060b5bec56/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d54656c656772616d2d3030383863633f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔗 Quick Links&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-key-features" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6cfcaf49db0af3210750962afbf70a4acc5e9733e3b58bbd2e7b73d7064a3285/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486967686c69676874732d496e666f2d696e666f726d6174696f6e616c3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-subtitle-formatting-rules" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e14374f2fc09e5149513ba3e4b7d2159462f9022f1f2db4f5dc37f02260844a0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d617474696e672d52756c65732d707572706c653f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-repository-structure" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/043509a77ece4f7c1f0cfd5e593912bdf3c3e7199c93497670205d8aa7f6370d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374727563747572652d46696c65732d626c756576696f6c65743f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-deployment--setup" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6be6aea0969966301950b043f0f807b5074917a43a53792ab7129b6daa3afcdf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d47756964652d737563636573733f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-bot-commands--interactive-menu" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5b6e175d8bf29d47eb77912c1eef317f05c405da686b53f0d59b18a4feaafe88/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d6d616e64732d4d656e752d6f72616e67653f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-license" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Key Features&lt;/h2&gt;
&lt;/div&gt;


&lt;b&gt;⚡ High-Performance ASR Engine&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;distil-large-v3 Architecture&lt;/strong&gt;: Utilises quantized &lt;code&gt;distil-large-v3&lt;/code&gt; running on CUDA &lt;code&gt;float16&lt;/code&gt; hardware acceleration, achieving &lt;strong&gt;5x–12x real-time transcription performance&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Word-Level Timestamping&lt;/strong&gt;: Generates exact word‑level timestamp alignments and applies &lt;strong&gt;centisecond rounding&lt;/strong&gt; (&lt;code&gt;round()&lt;/code&gt;‑based) to eliminate IEEE 754 drift on long files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FFmpeg Audio Extraction&lt;/strong&gt;: Automatically probes multi‑track containers (&lt;code&gt;.mkv&lt;/code&gt;, &lt;code&gt;.mp4&lt;/code&gt;, &lt;code&gt;.avi&lt;/code&gt;), prefers explicit English streams, and converts raw Audio to 16kHz mono PCM WAV with a &lt;strong&gt;3x volume boost&lt;/strong&gt; to capture quiet dialogue.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;b&gt;🎨 Styled .ASS Output (Custom Look)&lt;/b&gt;


&lt;ul&gt;

&lt;li&gt;

&lt;strong&gt;Embedded Styling&lt;/strong&gt;: Outputs Advanced SubStation Alpha (&lt;code&gt;.ass&lt;/code&gt;) files with a &lt;strong&gt;pre‑defined style&lt;/strong&gt; – Trebuchet MS Italic…&lt;/li&gt;

&lt;/ul&gt;&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;How I Built It&lt;br&gt;
AllergyShield combines localized vision processing with a deterministic matching engine:&lt;/p&gt;

&lt;p&gt;Visual Label Processing: Built on Moondream2 (a lightweight 1.86B parameter vision-language model) running via llama.cpp to transcribe ingredient lists from camera snapshots.&lt;/p&gt;

&lt;p&gt;Allergen Verification Engine: Extracted text is tokenized and cross-examined using a local vector index in ChromaDB with BGE-small-en embeddings.&lt;/p&gt;

&lt;p&gt;Rule-Based Guardrails: Rather than relying solely on probabilistic model completions for health-critical checks, the system pairs semantic similarity with hard-coded regex dictionaries of known allergen derivatives (e.g., maltodextrin, textured vegetable protein).&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Air-Gapped Reliability: In-store shopping frequently happens in basement grocers or shielded supermarkets with no cell service. Open-source local inference operates without an internet dependency.&lt;/p&gt;

&lt;p&gt;Direct Architecture Control: Open models eliminate black-box behavioral drift. The extraction step is separated from deterministic rule validation, ensuring the tool never hallucinates dietary safety.&lt;/p&gt;

&lt;p&gt;Model Portability: Using open-weight GGUF models allows the inference pipeline to run on consumer hardware with minimal memory overhead (under 4GB RAM).&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Open Source AI / Local Inference&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
