<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Nomily]]></title><description><![CDATA[Your recorder shouldn't decide your AI. Keep the recorder. Change the AI stack.]]></description><link>https://nomily.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 12:23:20 GMT</lastBuildDate><atom:link href="https://nomily.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Run your meeting transcriptions at home: faster-whisper + Ollama + Nomily (BYOK)]]></title><description><![CDATA[Your recordings stay on your LAN. Your key, your ASR, your AI — no forced Nomily subscription. Disclosure: I'm the developer behind Nomily, an independent…]]></description><link>https://nomily.hashnode.dev/run-your-meeting-transcriptions-at-home-faster-whisper-ollama-nomily-byok</link><guid isPermaLink="true">https://nomily.hashnode.dev/run-your-meeting-transcriptions-at-home-faster-whisper-ollama-nomily-byok</guid><category><![CDATA[#selfhosted]]></category><category><![CDATA[ollama]]></category><category><![CDATA[whisper]]></category><category><![CDATA[Transcription]]></category><dc:creator><![CDATA[nomily]]></dc:creator><pubDate>Mon, 09 Nov 2026 06:51:00 GMT</pubDate><content:encoded><![CDATA[<p><em>Your recordings stay on your LAN. Your key, your ASR, your AI — no forced Nomily subscription.</em></p>
<blockquote>
<p>Disclosure: I'm the developer behind Nomily, an independent BYOK companion app for AI recorders. Nomily is not the official Vobot app. This is a setup guide, not a sales post — everything below is verifiable from the public repo and the site.</p>
</blockquote>
<p><strong>Your recorder shouldn't decide your AI. Keep the recorder. Change the AI stack.</strong></p>
<h3>What this does</h3>
<p>Nomily turns recordings into transcripts, speaker-separated dialogue, summaries and to-dos. By default you can bring your own API key and your own ASR / AI provider. This guide goes one step further: run transcription and summarisation on your own machine, so audio doesn't have to go to a cloud transcription service.</p>
<p>The flow is: Recorder → Nomily → Your ASR (faster-whisper, on your LAN) → Your Key → Your AI (Ollama, on your LAN).</p>
<p>What Nomily does not do: Nomily runs no backend server that receives your recordings. Your recordings stay on your device unless you explicitly send them to an ASR or AI service you configured yourself. If you use a third-party cloud API instead of local, that provider still bills pay-as-you-go.</p>
<h3>What you need</h3>
<ul>
<li>A computer that stays on during meetings (macOS, Windows or Linux)</li>
<li>Your phone and that computer on the same Wi-Fi (same LAN) — this is required, not optional</li>
<li>Nomily AI installed (iOS App Store / Google Play, links at the end)</li>
<li>Ollama, and Python with <code>pip</code> for faster-whisper</li>
</ul>
<h3>The shortcut: give this prompt to an AI agent</h3>
<p>The full prompt below is the same one published on <a href="https://geekis.com/?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=nomily_byok_v05e_launch">geekis.com</a> (Agent deployment prompt section). Send it to ChatGPT, Claude Code or DeepSeek and it will set up local transcription (faster-whisper) and a local LLM (Ollama) on your computer.</p>
<blockquote>
<p>请帮我把这台电脑部署成 Nomily AI 录音 App 的本地语音服务，做完后把要填进 App 的信息打印给我。分三步：
第一步，安装并启动 Ollama，设置开机自启并允许局域网访问（OLLAMA_HOST=0.0.0.0），再拉一个适合本机内存的中文对话模型（内存 8G 用 qwen2.5:3b，16G 及以上用 qwen2.5:7b）。
第二步，用 pip 安装 faster-whisper，写一个 Python 服务（FastAPI + uvicorn + websockets）并在后台常驻（macOS 用 launchd，Windows/Linux 用 systemd 或任务计划），同时放行防火墙的 12300 和 12301 端口。它要实现两个接口：
· HTTP 批量转录：监听 12301 端口，POST /v1/transcribe，请求体是原始音频字节（Content-Type: application/octet-stream，一般是 Ogg-Opus 容器，用 faster-whisper 直接解码），返回 JSON：{"text": "完整文本", "segments": [{"start": 开始秒， "end": 结束秒， "text": "分段文本"}]}。
· WebSocket 实况流：监听 12300 端口，路径 /v1/listen。客户端会持续发来等长的 Opus 裸包（二进制帧，不带容器头，需要按固定包长拼接解码成 PCM 再喂给 faster-whisper 的 VAD 流式识别），服务器每识别出一段就用 JSON 文本帧回发 {"text": "这段文字", "is_final": true 或 false}；收到 {"type":"CloseStream"} 文本帧时冲刷剩余音频、补发最后一段，然后关闭连接。
第三步，全部跑通后打印四行信息：① 这台电脑的局域网 IP（用 ifconfig 或 ipconfig 查，192.168 或 10 开头的那个）；② Nomily AI「设置 → 转录 → 本地 ASR 服务」里要填的主机名（就是上面的局域网 IP）；③ 该页要填的端口（固定填 12300）；④ 「设置 → AI 服务 → Ollama」里要填的地址（http://局域网IP:11434）和模型名。最后提醒我：手机和电脑必须连同一个 Wi-Fi，App 两个页面里的验证按钮都通过才算部署成功。</p>
</blockquote>
<p>An English version of the same prompt is on geekis.com — switch the site language and the prompt text switches with it.</p>
<h3>The two endpoints, in plain terms</h3>
<ul>
<li><strong>Batch transcription — HTTP, port 12301:</strong> <code>POST /v1/transcribe</code>, raw audio bytes in, JSON with full <code>text</code> plus timestamped <code>segments</code> out.</li>
<li><strong>Live transcription — WebSocket, port 12300:</strong> path <code>/v1/listen</code>. The app streams Opus frames; the server replies per segment with <code>{"text": "...", "is_final": true/false}</code> and flushes on <code>{"type":"CloseStream"}</code>.</li>
</ul>
<h3>Finish in the app (the part people skip)</h3>
<ol>
<li>In Nomily, go to Settings → Transcription → Local ASR Service. Host = your computer's LAN IP (the 192.168.x.x or 10.x.x.x address). Port = <code>12300</code>.</li>
<li>Go to Settings → AI Service → Ollama. Address = <code>http://&lt;LAN-IP&gt;:11434</code>, plus the model name you pulled.</li>
<li>Press the Verify button on both pages. Both must pass — that is the definition of done in the prompt.</li>
<li>Keep phone and computer on the same Wi-Fi. If you switch networks, the LAN IP can change and verification will fail.</li>
</ol>
<h3>If it doesn't work, check in this order</h3>
<ol>
<li>Same Wi-Fi? Phone and computer on different networks is the most common failure.</li>
<li>Firewall: ports 12300 and 12301 open on the computer?</li>
<li>Ollama reachable at <code>http://&lt;LAN-IP&gt;:11434</code> from another device on the LAN?</li>
<li>Is the faster-whisper service actually still running in the background (launchd / systemd / Task Scheduler)?</li>
</ol>
<h3>What this setup is — and isn't</h3>
<ul>
<li>It is: your ASR, your LLM, your key. No forced Nomily subscription; third-party cloud APIs, if you use them instead, still bill pay-as-you-go.</li>
<li>It isn't: a claim that audio never leaves your device in every configuration. If you point Nomily at a cloud provider, audio goes to the provider you chose. The local setup above is the configuration where transcription stays on your LAN.</li>
<li>Already have your own ASR server? Skip the deployment entirely — just enter its address in the app.</li>
</ul>
<h3>Links (in context, not stacked)</h3>
<ul>
<li>Nomily site + deployment prompt: <a href="https://geekis.com/?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=nomily_byok_v05e_launch">https://geekis.com/?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=nomily_byok_v05e_launch</a></li>
<li>Public repo (README, demo): <a href="https://github.com/Nomily-Ai/nomily-app">https://github.com/Nomily-Ai/nomily-app</a></li>
<li>iOS: <a href="https://apps.apple.com/us/app/nomily-ai/id6811033606">https://apps.apple.com/us/app/nomily-ai/id6811033606</a></li>
<li>Android: <a href="https://play.google.com/store/apps/details?id=com.nomily.app">https://play.google.com/store/apps/details?id=com.nomily.app</a></li>
</ul>
<p>Questions welcome in the comments — especially if you self-host something different and got it working another way.</p>
]]></content:encoded></item></channel></rss>